Azure 函数中非常简单的状态变量

Very simple state variable in Azure function

我正在尝试找到最直接的方法来在 Azure 函数中使用单个持久变量。使用案例如下:

1) 检查网站上的号码(例如 76);

2) 如果号码大于当前号码(例如 72),则针对每个新号码(例如 73、74、75、76)向用户发送电子邮件;

3) 运行 以上每小时一次。

函数运行后保存新号码的最佳方式是什么?

谢谢,我感谢您对最佳做法的任何想法。

兆瓦

你可以使用队列存储来实现它,将变量num设置为一个队列(例如72),在函数中检索它并将它与你发送的数字进行比较(我用HTTP触发器测试)。使 queue(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();

    }