教學課程:以 Azure 佇列儲存體作為觸發程式的 Python 函式
在本教學課程中,您將了解如何完成下列工作,將 Python 函式設定為使用儲存體佇列作為觸發程序。
- 使用 Visual Studio Code 建立 Python 函式專案。
- 使用 Visual Studio Code 在本機執行函式。
- 使用 Azure CLI 建立 Azure 函式與儲存體佇列與服務連接器之間的連線。
- 使用 Visual Studio 部署函式。
本教學課程中函式專案元件的概觀:
專案元件 | 選取項目 / 解決方案 |
---|---|
來源服務 | Azure 函式 |
目標服務 | Azure 儲存體佇列 |
函式繫結 | 儲存體佇列作為觸發程序 |
本機專案驗證類型 | 連接字串 |
雲端函式驗證類型 | 連接字串 |
警告
Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。
必要條件
- 在其中一個支援的平台上安裝 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 儲存體。 最後,函式 __init__.py
檔案中的 main
函式可以使用 function.json
檔案中定義的函式繫結協助來取用連接字串。
在本機執行函式
請遵循教學課程在本機執行函式,並確認觸發程序。
- 如果系統提示您連線到儲存體,請選取您在建立 Azure 函式資源時所選擇的儲存體帳戶。 此值會用於 Azure 函式的執行階段,且它不一定與您用於觸發程序的儲存體帳戶相同。
- 若要在本機啟動函式,請按
<kbd>
F5</kbd>
或選取左側 [活動] 列中的 [執行並偵錯] 圖示。 - 若要確認觸發程式正常運作,請讓函式在本機執行,並在 Azure 入口網站 中開啟 [記憶體佇列] 窗格,選取 [新增訊息],並提供測試訊息。 您應該會看到函式已觸發並處理為 Visual Studio Code 終端機中的佇列項目。
使用服務連接器建立連線
在最後一個步驟中,您已在本機驗證函式專案。 現在您將了解如何在雲端中設定 Azure 函式與 Azure 儲存體佇列之間的連線,以便在部署至雲端之後,由儲存體佇列觸發您的函式。
- 開啟本機專案中的
function.json
檔案,將bindings
中的connection
屬性值變更為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}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
格式:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
此步驟會建立服務連接器資源,以在函式的應用程式組態中設定 AZURE_STORAGEQUEUE_CONNECTIONSTRING
變數。 函式繫結執行階段會使用它來連線到儲存體,讓函式可以接受來自儲存體佇列的觸發程序。 如需詳細資訊,請移至服務連接器如何協助 Azure Functions 連線到服務。
將函式部署至 Azure
現在您可以將函式部署至 Azure,並確認儲存體佇列觸發程序可正常運作。
- 請遵循此 Azure Functions 教學課程 ,將您的函式部署至 Azure。
- 在 Azure 入口網站 中開啟 [記憶體佇列] 窗格,選取 [新增訊息] 並提供測試訊息。 您應該會看到函式已觸發並處理為函式記錄中的佇列項目。
疑難排解
如果儲存體主機有任何相關錯誤,例如 No such host is known (<account-name>.queue.core.windows.net:443)
,請檢查您用來連線到 Azure 儲存體的連接字串是否包含佇列端點。 如果沒有,請移至 Azure 入口網站 中的 Azure 儲存體,從Access keys
窗格中複製 連接字串,並取代值。
如果您在本機啟動專案時發生此錯誤,請檢查 local.settings.json
檔案。
如果您將函式部署至雲端時發生此錯誤 (在此情況下,函式部署通常會在 Syncing triggers
上失敗),請檢查函式的應用程式組態。
清除資源
如果您不打算繼續使用此專案,請刪除您稍早建立的函數應用程式資源。
下一步
請閱讀下列文章,以深入了解服務連接器概念,以及其如何協助 Azure Functions 連線到服務。