Azure Функция с HTTP-триггером возвращает сообщение «получено» перед началом обработки - PullRequest
2 голосов
/ 29 апреля 2020

Я создаю Azure функцию для обработки файлов. Функция Azure будет активирована с помощью триггера HTTP, поэтому она должна выполняться всякий раз, когда страница сайта отправляет HTTP-запрос.

Функция займет некоторое время для завершения обработки sh файлы, но я не могу заставить сайт, ожидающий, пока Функция завершит sh, чтобы узнать, все ли в порядке. Поэтому я хочу получить какое-то «полученное» сообщение от функции Azure, чтобы узнать, что он получил HTTP-запрос, прежде чем он начнет обрабатывать.

Есть ли способ сделать это с помощью триггера HTTP ? Могу ли я сообщить вызывающему абоненту, что его запрос был получен правильно, и после этого начать выполнение функции Azure?

1 Ответ

2 голосов
/ 29 апреля 2020

Да, это очень легко сделать с помощью Durable Functions:

1 - установить пакет nuget для Microsoft. Azure .WebJobs.Extensions.DurableTask;

2-

   [FunctionName("Function1")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        [DurableClient] IDurableOrchestrationClient starter,
        ILogger log)
    {
        Guid instanceId = Guid.NewGuid();
        string x = await starter.StartNewAsync("Processor", instanceId.ToString(), null);

        log.LogInformation($"Started orchestration with ID = '{instanceId}'.");

        return starter.CreateCheckStatusResponse(req, x);
    }

3-

    [FunctionName("Processor")]
    public static async Task<string> Search([OrchestrationTrigger] IDurableOrchestrationContext context)
    {
        var output= await context.CallActivityAsync<string>("DoSomething", null);

        return output;
    }



   [FunctionName("DoSomething")]
    public static async Task<string> Execute([ActivityTrigger] string termo, ILogger log)
    {
        //do your work in here
    }

В предыдущем коде мы создали функцию Orchestrator (Processor) и запустили действие, которое будет выполнять функцию DoSomething процесса.

Подробнее: https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...