我有一个这样的 azure 函数:
[FunctionName("DoStuff")]
[return: Queue("stuff-queue")]
public static async Task<StuffContext> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
var context = await req.Content.ReadAsAsync<StuffContext>();
context.TransactionId = Guid.NewGuid();
return context;
}
它侦听 https url,反序列化请求正文,并将正文发送到队列。我也可以让它返回一些东西(在这种情况下是交易 ID(作为 http 响应的一部分吗?
我也可以让它返回一些东西(在这种情况下是交易 ID(作为 http 响应的一部分吗?
使用 [return: Queue("stuff-queue")]
会将信息返回到队列。但它无法返回响应并同时将信息添加到队列中。
如果你想做,你可以参考我的代码。它对我来说工作正常。
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post")]HttpRequestMessage req,
TraceWriter log,
[Queue("stuff-queue")] IAsyncCollector<string> outputQueue)
{
log.Info("C# HTTP trigger function processed a request.");
string yourinfo = "yourinfo";
await outputQueue.AddAsync(yourinfo);
return req.CreateResponse(HttpStatusCode.OK, yourinfo);
}
有关更多详细信息,您可以参考本文。