第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python:如何檢查 Azure Function 是否仍在運行并有隊列

Python:如何檢查 Azure Function 是否仍在運行并有隊列

富國滬深 2022-12-20 16:23:43
我知道這篇文章(如何檢查 Azure Function 是否仍在運行)也有類似的問題。它并沒有真正的幫助。我有一個函數(shù)可以在一段時間內(nèi)分批接收輸入(例如:1000 批,每批 n 個樣本)。批次不會同時到達。該函數(shù)處理每個批次并將輸出寫入 blobstoragecontainer 中的 blob。我的問題是如何知道結(jié)果已全部寫入 blob 存儲以便觸發(fā)下載?我試圖查看 azure-mgmt-monitor 以檢查我是否可以監(jiān)控最后一分鐘的請求/函數(shù)調(diào)用數(shù)量并將其放入 while 循環(huán)直到某些指標(可能是其他指標)為 0。我可以調(diào)用一些一個時間跨度內(nèi)的指標有一些聚合,但出于某種原因,我一直將所有值都設為 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')結(jié)果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.0Requests | 2020-06-02 10:15:00+00:00 | 0.0Requests | 2020-06-02 10:30:00+00:00 | 0.0Requests | 2020-06-02 10:45:00+00:00 | 0.0RequestsInApplicationQueue | 2020-06-02 10:00:00+00:00 | 0.0RequestsInApplicationQueue | 2020-06-02 10:15:00+00:00 | 0.0RequestsInApplicationQueue | 2020-06-02 10:30:00+00:00 | 0.0RequestsInApplicationQueue | 2020-06-02 10:45:00+00:00 | 0.0FunctionExecutionCount | 2020-06-02 10:00:00+00:00 | 0.0FunctionExecutionCount | 2020-06-02 10:15:00+00:00 | 0.0FunctionExecutionCount | 2020-06-02 10:30:00+00:00 | 0.0FunctionExecutionCount | 2020-06-02 10:45:00+00:00 | 0.0以及那個時期的請求數(shù)圖表(來自洞察力資源)我最大膽的猜測告訴我,我應該傳遞的 id 可能不是 azure 函數(shù),而是另一個……我也不知道如何執(zhí)行此操作。我也一直在看 azure-mgmt-applicationinsights,但它比監(jiān)視器更晦澀......
查看完整描述

1 回答

?
largeQ

TA貢獻2039條經(jīng)驗 獲得超8個贊

因此,幾天后,我找到了一種從 azure insights 中閱讀的方法,盡管我沒有堅持使用該解決方案。

洞察法

對于任何感興趣的人,要從您需要使用azure-applicationinsights包(而不是 azure-mgmt-applicationinsights)的見解中讀取指標。然后,您使用 Azure 憑據(jù)實例化一個 ApplicationInsightsDataClient,您可以按如下方式發(fā)送查詢:

from azure.applicationinsights import ApplicationInsightsDataClient

client = ApplicationInsightsDataClient(<credentials>)
metric = client.metrics.get(<application_id>, <metric>, custom_headers=<custom_headers>, **<other_kwargs>)

現(xiàn)在,棘手的部分是這個“application_id”和“custom_headers”。首先,您可以從 azure 中的 API 訪問密鑰選項卡上的洞察力資源中檢索它。

對于自定義標頭,您需要將令牌指定為您需要在見解資源中創(chuàng)建的一個 API_key(與上述相同的位置)。格式應該是:

custom_headers = {'x-api-key': <api_key>}

要了解您可以從洞察資源中獲得哪些指標,您可以

available_metrics = client.metrics.get_metadata(<application_id>, custom_headers=custom_headers)

此外,如果您在 CI/CD 管道中進行部署,您還可以自動檢索 ApplicationID 和創(chuàng)建 api_key。

要在我剛剛創(chuàng)建的 gitlab 管道日志上獲取應用程序 ID 并在 terraform 中為其輸出(檢查關于輸出的 terraform 文檔)對于 api_key 創(chuàng)建,您需要使用azure-mgmt-applicationinsights包并實例化一個 ApplicationInsightsManagementClient(不確定這個名字現(xiàn)在)

傳遞憑據(jù)并在“api_keys”屬性中使用“create”方法。這可能有點棘手,因為您需要傳遞一些“l(fā)inked_read_properties”。

我的建議是首先在 azure 門戶中創(chuàng)建它,在 python 中讀取它,檢查您需要的屬性,然后嘗試通過 python 創(chuàng)建它。

至于我最終堅持的解決方案。

我創(chuàng)建了我的 azure 函數(shù),該函數(shù)將結(jié)果寫入 blob_storage 以同時寫入“元數(shù)據(jù)”鍵/值。

如果還有一些批處理尚未運行,它將把它寫為 False。如果是最后一批,則將其更改為 True。

然后我只讀取 python 中的 blob 屬性,直到值為 True。

希望這可以幫助任何有類似問題的人;)


查看完整回答
反對 回復 2022-12-20
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號