使用HTTP触发器的azure作业是否可以返回http响应正文?

时间:2018-03-19 15:25:38

标签: azure azure-webjobssdk

我有这样的天蓝色功能:

[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网址,反序列化请求正文,并将正文发送到队列。我可以让它返回一些东西(在这种情况下是事务id)作为http响应的一部分。

1 个答案:

答案 0 :(得分:0)

  

我可以让它返回一些东西(在这种情况下是事务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);

        }

有关详细信息,请参阅此article