如何在 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()));
}
希望对您有所帮助,如果您还有其他问题,请随时告诉我。
我有定时器触发 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()));
}
希望对您有所帮助,如果您还有其他问题,请随时告诉我。