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

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

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

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

專案元件 Selection / Solution
來源服務 Azure Function
目標服務 Azure 儲存體佇列
函式系結 以觸發程式儲存體佇列
本機專案驗證類型 連接字串
雲端函式驗證類型 連接字串

必要條件

建立 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 定義的函式系結協助,取用連接字串。

在本機執行函式

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

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

使用服務連線or 建立連線

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

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

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

疑難排解

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

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

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

清除資源

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

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

下一步

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