Очень простая переменная состояния в функции Azure - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь найти самый простой способ иметь одну постоянную переменную в функции Azure. Вариант использования следующий:

1) проверить номер на веб-сайте (например, 76);

2) Если номер больше текущего (например, 72), отправьтепо электронной почте пользователям для каждого нового номера (например, 73, 74, 75, 76);

3) Запускайте выше каждый час.

Какой будет лучший способ сохранить новый номерпосле запуска функции?

Спасибо, я ценю любые мысли о лучших методах.

МВт

1 Ответ

0 голосов
/ 09 октября 2019

Вы можете использовать Хранилище очередей для его реализации, установить переменную num как очередь (например, 72), в функции получить ее и сравнить с числом, которое вы отправляете (я проверяю с помощью триггера HTTP). Заблокируйте очередь (72) и добавьте новое сообщение с максимальным значением. Ниже приведен мой тестовый код.

 [FunctionName("Function1")]
    [return: Queue("number")]
    public static async Task<string> RunAsync(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");

        // Parse the connection string and return a reference to the storage account.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(Environment.GetEnvironmentVariable("AzureWebJobsStorage"));

        CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

        // Retrieve a reference to a queue
        CloudQueue queue = queueClient.GetQueueReference("number");

        // Async dequeue the message
        CloudQueueMessage retrievedMessage = await queue.GetMessageAsync();
        await queue.DeleteMessageAsync(retrievedMessage);

        int numval = Convert.ToInt32(retrievedMessage.AsString);

        int num = Convert.ToInt32(req.Query["num"]);

        num = Math.Max(num, numval);

        return num.ToString();

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