Может ли задание Azure с триггером HTTP вернуть тело ответа http?

У меня есть лазурная функция, как это:

[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;
}

Он прослушивает URL-адрес https, десериализует тело запроса и отправляет тело в очередь. Могу ли я сделать так, чтобы он возвращал что-то (идентификатор транзакции в данном случае) как часть ответа http.

1 ответ

Могу ли я сделать так, чтобы он возвращал что-то (идентификатор транзакции в данном случае) как часть ответа 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);

        }

Для более подробной информации, вы можете обратиться к этой статье.

Другие вопросы по тегам