我知道这篇文章(如何检查 Azure Function 是否仍在运行)也有类似的问题。它并没有真正的帮助。
我有一个函数可以在一段时间内分批接收输入(例如:1000 批,每批 n 个样本)。批次不会同时到达。该函数处理每个批次并将输出写入 blobstoragecontainer 中的 blob。
我的问题是如何知道结果已全部写入 blob 存储以便触发下载?
我试图查看 azure-mgmt-monitor 以检查我是否可以监控最后一分钟的请求/函数调用数量并将其放入 while 循环直到某些指标(可能是其他指标)为 0。我可以调用一些一个时间跨度内的指标有一些聚合,但出于某种原因,我一直将所有值都设为 0(当我知道有呼叫时)。
在一些代码下面(azure_mngr.monitor 是 azure.mgmt.monitor.MonitorManagementClient 的一个实例:
start_date = datetime.datetime(2020, 6, 2, 10, 0, 0)
end_date = datetime.datetime(2020, 6, 2, 11, 0, 0)
azure_mngr.monitor.metrics.list(azure_function_id, metricnames='Requests,RequestsInApplicationQueue,FunctionExecutionCount', interval='PT1M', timespan=f'{start_date}/{end_date}', aggregation='Count,Average,Maximum,Minimum')
结果
for metric in a.value:
for datapoint in metric.timeseries[0].data:
print(f'{metric.name.value} | {datapoint.time_stamp} | {datapoint.count}')
Requests | 2020-06-02 10:00:00+00:00 | 0.0
Requests | 2020-06-02 10:15:00+00:00 | 0.0
Requests | 2020-06-02 10:30:00+00:00 | 0.0
Requests | 2020-06-02 10:45:00+00:00 | 0.0
RequestsInApplicationQueue | 2020-06-02 10:00:00+00:00 | 0.0
RequestsInApplicationQueue | 2020-06-02 10:15:00+00:00 | 0.0
RequestsInApplicationQueue | 2020-06-02 10:30:00+00:00 | 0.0
RequestsInApplicationQueue | 2020-06-02 10:45:00+00:00 | 0.0
FunctionExecutionCount | 2020-06-02 10:00:00+00:00 | 0.0
FunctionExecutionCount | 2020-06-02 10:15:00+00:00 | 0.0
FunctionExecutionCount | 2020-06-02 10:30:00+00:00 | 0.0
FunctionExecutionCount | 2020-06-02 10:45:00+00:00 | 0.0
以及那个时期的请求数图表(来自洞察力资源)
我最大胆的猜测告诉我,我应该传递的 id 可能不是 azure 函数,而是另一个……我也不知道如何执行此操作。我也一直在看 azure-mgmt-applicationinsights,但它比监视器更晦涩......
largeQ
相关分类