Skip to content

Commit 3012ed3

Browse files
Merge pull request #263446 from ggailey777/filipe
[Functions] Move public commit of SB C# example code to the private repo
2 parents 23cefcf + b14aaef commit 3012ed3

File tree

1 file changed

+58
-2
lines changed

1 file changed

+58
-2
lines changed

articles/azure-functions/functions-bindings-service-bus-output.md

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Service Bus output bindings for Azure Functions
33
description: Learn to send Azure Service Bus messages from Azure Functions.
44
ms.assetid: daedacf0-6546-4355-a65c-50873e74f66b
55
ms.topic: reference
6-
ms.date: 03/06/2023
6+
ms.date: 01/15/2024
77
ms.devlang: csharp
88
# ms.devlang: csharp, java, javascript, powershell, python
99
ms.custom: devx-track-csharp, devx-track-python, ignite-2022, devx-track-extended-java, devx-track-js
@@ -50,11 +50,45 @@ This example shows a [C# function](dotnet-isolated-process-guide.md) that receiv
5050

5151
:::code language="csharp" source="~/azure-functions-dotnet-worker/samples/Extensions/ServiceBus/ServiceBusReceivedMessageFunctions.cs" id="docsnippet_servicebus_readmessage":::
5252

53+
 
54+
<hr/>
55+
56+
This example uses an HTTP trigger with an `OutputType` object to both send an HTTP response and write the output message.
57+
58+
```csharp
59+
[Function("HttpSendMsg")]
60+
public async Task<OutputType> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req, FunctionContext context)
61+
{
62+
_logger.LogInformation($"C# HTTP trigger function processed a request for {context.InvocationId}.");
63+
64+
HttpResponseData response = req.CreateResponse(HttpStatusCode.OK);
65+
await response.WriteStringAsync("HTTP response: Message sent");
66+
67+
return new OutputType()
68+
{
69+
OutputEvent = "MyMessage",
70+
HttpResponse = response
71+
};
72+
}
73+
```
74+
75+
This code defines the multiple output type `OutputType`, which includes the Service Bus output binding definition on `OutputEvent`:
76+
77+
```csharp
78+
public class OutputType
79+
{
80+
[ServiceBusOutput("TopicOrQueueName", Connection = "ServiceBusConnection")]
81+
public string OutputEvent { get; set; }
82+
83+
public HttpResponseData HttpResponse { get; set; }
84+
}
85+
```
86+
5387
# [In-process model](#tab/in-process)
5488

5589
The following example shows a [C# function](functions-dotnet-class-library.md) that sends a Service Bus queue message:
5690

57-
```cs
91+
```csharp
5892
[FunctionName("ServiceBusOutput")]
5993
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
6094
public static string ServiceBusOutput([HttpTrigger] dynamic input, ILogger log)
@@ -63,6 +97,28 @@ public static string ServiceBusOutput([HttpTrigger] dynamic input, ILogger log)
6397
return input.Text;
6498
}
6599
```
100+
&nbsp;
101+
<hr/>
102+
103+
Instead of using the return statement to send the message, this HTTP trigger function returns an HTTP response that is different from the output message.
104+
105+
```csharp
106+
[FunctionName("HttpTrigger1")]
107+
public static async Task<IActionResult> Run(
108+
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
109+
[ServiceBus("TopicOrQueueName", Connection = "ServiceBusConnection")] IAsyncCollector<string> message, ILogger log)
110+
{
111+
log.LogInformation("C# HTTP trigger function processed a request.");
112+
113+
await message.AddAsync("MyMessage");
114+
await message.AddAsync("MyMessage2");
115+
116+
string responseMessage = "This HTTP triggered sent a message to Service Bus.";
117+
118+
return new OkObjectResult(responseMessage);
119+
}
120+
```
121+
66122
---
67123

68124
::: zone-end

0 commit comments

Comments
 (0)