首页 > 解决方案 > 如何在 c# 中以编程方式获取 Azure 函数执行的计数?

问题描述

我有计时器触发天蓝色功能,每分钟运行一次。每次执行函数时,是否可以获得在我的 Azure 函数 c# 代码中执行的函数的次数?

PS:我需要这个计数来生成一个顺序计数器。也有HTTP触发功能!是否可以使用 Application Insights -> 带有函数计数过滤器的指标。在某种程度上,我们在代码中得到了这个计数?

标签: azureasp.net-coreazure-functionsazure-functions-runtimeazure-function-app

解决方案


也许你可以像下图那样实现它,变量将被共享。但是,如果您重新启动函数,它将重新加载变量时间。

在此处输入图像描述

在功能重启的情况下,假设你可以设置一个存储队列来实现它,每次将队列号加1并替换队列。

public static async void Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(Environment.GetEnvironmentVariable("AzureWebJobsStorage"));
            CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
            CloudQueue queue = queueClient.GetQueueReference("time");
            CloudQueueMessage message = queue.GetMessage();
            log.LogInformation(message.AsString);
            int num = int.Parse(message.AsString);
            num++;
            queue.DeleteMessage(message);
            queue.AddMessage(new CloudQueueMessage(num.ToString()));

        }

在此处输入图像描述

希望这可以帮助你,如果你还有其他问题,请随时让我知道。


推荐阅读