教學課程:以 Azure 佇列儲存體作為觸發程式的 Python 函式
在本教學課程中,您將瞭解如何完成下列工作,以儲存體佇列設定 Python 函式作為觸發程式。
- 使用 Visual Studio Code 建立 Python 函式專案。
- 使用 Visual Studio Code 在本機執行函式。
- 使用 Azure CLI 來建立 Azure 函式與具有服務連線or 之儲存體佇列之間的連線。
- 使用 Visual Studio 部署函式。
本教學課程中函式專案元件的概觀:
專案元件 | Selection / Solution |
---|---|
來源服務 | Azure Function |
目標服務 | Azure 儲存體佇列 |
函式系結 | 以觸發程式儲存體佇列 |
本機專案驗證類型 | 連接字串 |
雲端函式驗證類型 | 連接字串 |
必要條件
- 在其中 一個支援的平臺上 安裝 Visual Studio Code 。
- Azure CLI。 您可以在 Azure Cloud Shell 中使用 ,或 將其安裝在本機 。
- Azure 儲存體帳戶和儲存體佇列。 如果您沒有Azure 儲存體, 請建立一個 。
- 本指南假設您知道 Azure Functions 開發人員指南 中 呈現的基本概念,以及如何 連線到 Functions 中的服務。
建立 Python 函式專案
請遵循教學 課程來建立本機 Azure Functions 專案 ,並在提示中提供下列資訊:
提示 | 選取項目 |
---|---|
選取語言 | 選擇 Python 。 (v1 程式設計語言模型) |
選取 Python 解譯器以建立虛擬環境 | 選擇您慣用的 Python 解譯器。 如果未顯示選項,請輸入 Python 二進位檔的完整路徑。 |
選取專案第一個函式的範本 | 選擇 Azure Queue Storage trigger 。 |
提供函式名稱 | 輸入 QueueStorageTriggerFunc 。 |
從 「local.settings.json」 選取設定 | 選擇 Create new local app settings ,可讓您選取儲存體帳戶,並提供作為觸發程式的佇列名稱。 |
您已建立具有Azure 儲存體佇列作為觸發程式的 Python 函式專案。 本機專案會使用儲存至 local.settings.json
檔案中的連接字串連線到Azure 儲存體。 最後, main
函式檔案中的 __init__.py
函式可以使用 檔案中 function.json
定義的函式系結協助,取用連接字串。
在本機執行函式
請遵循教學課程 在 本機執行函式,並確認觸發程式。
- 如果系統提示您連線到儲存體,請選取您在建立 Azure 函式資源時所選擇的儲存體帳戶。 此值會用於 Azure 函式的執行時間,而且它不一定與您用於觸發程式的儲存體帳戶相同。
- 若要在本機啟動函式,請按
<kbd>
F5</kbd>
,或選取左側活動列中的 [執行] 和 [偵 錯] 圖示。 - 若要確認觸發程式正常運作,請讓函式在本機執行,並在Azure 入口網站中開啟 [儲存體佇列] 刀鋒視窗,選取 [新增訊息 ],並提供測試訊息。 您應該會看到函式已觸發並處理為 Visual Studio Code 終端機中的佇列專案。
使用服務連線or 建立連線
在最後一個步驟中,您已在本機驗證函式專案。 現在您將瞭解如何設定 Azure 函式與雲端中Azure 儲存體佇列之間的連線,以便在部署至雲端之後,由儲存體佇列觸發您的函式。
function.json
開啟本機專案中的connection
檔案,將 中的bindings
屬性值變更為AZURE_STORAGEQUEUE_CONNECTIONSTRING
。- 執行下列 Azure CLI 命令,以建立 Azure 函式與 Azure 儲存體帳戶之間的連線。
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
--source-id
格式:/subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
格式:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
此步驟會建立 Service 連線or 資源,以 AZURE_STORAGEQUEUE_CONNECTIONSTRING
在函式的應用程式設定中設定變數。 函式系結執行時間會使用它來連線到儲存體,讓函式可以接受來自儲存體佇列的觸發程式。 如需詳細資訊,請移至 Service 連線or 如何協助 Azure Functions 連線至服務 。
將函式部署至 Azure
現在您可以將函式部署至 Azure,並確認儲存體佇列觸發程式可運作。
- 請遵循此 Azure Functions 教學課程 ,將您的函式部署至 Azure。
- 在Azure 入口網站中開啟 [儲存體佇列] 刀鋒視窗,選取 [新增訊息 ],並提供測試訊息。 您應該會看到函式已觸發並處理為函式記錄中的佇列專案。
疑難排解
如果儲存體主機有任何相關錯誤,例如 No such host is known (<acount-name>.queue.core.windows.net:443)
,請檢查您用來連線到Azure 儲存體連接字串是否包含佇列端點。 如果沒有,請移至Azure 入口網站中的Azure 儲存體,從 Access keys
刀鋒視窗複製連接字串,並取代值。
如果您在本機啟動專案時發生此錯誤,請檢查 local.settings.json
檔案。
如果您將函式部署至雲端時發生此錯誤(在此情況下,函式部署通常會在 上 Syncing triggers
失敗),請檢查函式的應用程式設定。
清除資源
如果您不打算繼續使用此專案,請刪除您稍早建立的函式應用程式資源。
下一步
請閱讀下列文章,以深入瞭解服務連線或概念,以及其如何協助 Azure Functions 連線到服務。