如何在 C# 中以编程方式获取 Azure 函数执行的计数?

How can I get the count of Azure function execution programmatically in c#?

我有定时器触发 azure 功能,每分钟运行一次。每次函数执行时,是否可以计算我的 Azure 函数 c# 代码中函数执行了多少次?

PS:我也需要这个计数来生成具有 HTTP 触发功能的顺序 counter.Also! Application Insights -> metrics with function count filter是否有可能。在某种程度上,我们在代码中得到了这个计数 ?

无法获取执行时间,也没有 API 可以做到这一点,您需要在数据存储中手动维护计数并使用自定义逻辑获取它。

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

如果函数重启,假设可以设置一个存储队列来实现,每次队列号加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()));

        }

希望对您有所帮助,如果您还有其他问题,请随时告诉我。