共用方式為


教學課程:以 Azure 佇列儲存體作為觸發程式的 Python 函式

在本教學課程中,您將了解如何完成下列工作,將 Python 函式設定為使用儲存體佇列作為觸發程序。

  • 使用 Visual Studio Code 建立 Python 函式專案。
  • 使用 Visual Studio Code 在本機執行函式。
  • 使用 Azure CLI 建立 Azure 函式與儲存體佇列與服務連接器之間的連線。
  • 使用 Visual Studio 部署函式。

本教學課程中函式專案元件的概觀:

專案元件 選取項目 / 解決方案
來源服務 Azure 函式
目標服務 Azure 儲存體佇列
函式繫結 儲存體佇列作為觸發程序
本機專案驗證類型 連接字串
雲端函式驗證類型 連接字串

警告

Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。

必要條件

建立 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 檔案中定義的函式繫結協助來取用連接字串。

在本機執行函式

請遵循教學課程在本機執行函式,並確認觸發程序。

  1. 如果系統提示您連線到儲存體,請選取您在建立 Azure 函式資源時所選擇的儲存體帳戶。 此值會用於 Azure 函式的執行階段,且它不一定與您用於觸發程序的儲存體帳戶相同。
  2. 若要在本機啟動函式,請按 <kbd>F5</kbd> 或選取左側 [活動] 列中的 [執行並偵錯] 圖示。
  3. 若要確認觸發程式正常運作,請讓函式在本機執行,並在 Azure 入口網站 中開啟 [記憶體佇列] 窗格,選取 [新增訊息],並提供測試訊息。 您應該會看到函式已觸發並處理為 Visual Studio Code 終端機中的佇列項目。

使用服務連接器建立連線

在最後一個步驟中,您已在本機驗證函式專案。 現在您將了解如何在雲端中設定 Azure 函式與 Azure 儲存體佇列之間的連線,以便在部署至雲端之後,由儲存體佇列觸發您的函式。

  1. 開啟本機專案中的 function.json 檔案,將 bindings 中的 connection 屬性值變更為 AZURE_STORAGEQUEUE_CONNECTIONSTRING
  2. 執行下列 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,並確認儲存體佇列觸發程序可正常運作。

  1. 請遵循此 Azure Functions 教學課程 ,將您的函式部署至 Azure。
  2. 在 Azure 入口網站 中開啟 [記憶體佇列] 窗格,選取 [新增訊息] 並提供測試訊息。 您應該會看到函式已觸發並處理為函式記錄中的佇列項目。

疑難排解

如果儲存體主機有任何相關錯誤,例如 No such host is known (<account-name>.queue.core.windows.net:443),請檢查您用來連線到 Azure 儲存體的連接字串是否包含佇列端點。 如果沒有,請移至 Azure 入口網站 中的 Azure 儲存體,從Access keys窗格中複製 連接字串,並取代值。

如果您在本機啟動專案時發生此錯誤,請檢查 local.settings.json 檔案。

如果您將函式部署至雲端時發生此錯誤 (在此情況下,函式部署通常會在 Syncing triggers 上失敗),請檢查函式的應用程式組態。

清除資源

如果您不打算繼續使用此專案,請刪除您稍早建立的函數應用程式資源。

  1. 在 Azure 入口網站中,開啟 [函數應用程式] 資源,然後選取 [刪除]
  2. 輸入應用程式名稱,然後選取 [刪除] 以確認。

下一步

請閱讀下列文章,以深入了解服務連接器概念,以及其如何協助 Azure Functions 連線到服務。