共用方式為


教學課程:使用 Azure 數據表記憶體輸出設定 Python 函式

在本教學課程中,您將瞭解如何完成下列工作,將 Python 函式設定為使用 Azure 數據表記憶體作為輸出系結。

  • 使用 Visual Studio Code 建立 Python 函式專案。
  • 新增儲存體資料表輸出函式繫結。
  • 使用 Visual Studio Code 在本機執行函式。
  • 使用 Azure CLI 透過服務連接器在 Azure 函式和儲存體資料表之間建立連線。
  • 使用 Visual Studio 部署函式。

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

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

警告

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

必要條件

建立 Python 函式專案

請遵循教學課程來建立本機 Azure Functions 專案,並在提示中提供下列資訊:

提示 選取項目
選取語言 選擇 Python。 (v1 程式設計語言模型)
選取 Python 解譯器來建立虛擬環境 選擇您慣用的 Python 解譯器。 如果選項未顯示,請輸入 Python 二進位檔的完整路徑。
為專案的第一個函式選取範本 選擇 HTTP trigger
提供函式名稱 輸入 TableStorageOutputFunc
授權等級 選擇 Anonymous,讓任何人都能呼叫您的函式端點。 

您已使用 HTTP 觸發程序建立 Python 函式專案。

新增儲存體資料表輸出繫結

繫結屬性定義於 function.json 檔案的特定函式中。 若要建立繫結,請以滑鼠右鍵按一下 (在 macOS 上則按一下 Ctrl+) 函式資料夾中的 function.json 檔案,然後選擇 [新增繫結...]。 遵循提示來針對新繫結定義下列繫結屬性:

提示 Description
選取繫結方向 out 此繫結為輸出繫結。
選取具有下列方向的繫結 Azure Table Storage 此繫結為 Azure 儲存體資料表繫結。
用以在程式碼中識別此繫結的名稱 outMessage 識別您的程式碼中參考之繫結參數的名稱。
寫入資料的儲存體帳戶中的資料表名稱 testTable 您的函式作為輸出寫入的資料表名稱。 如果資料表不存在,請在您的儲存體帳戶中建立名為 testTable 的資料表。
"local.setting.json" 選取設定 Create new local app settings 選取您的函式作為輸出寫入的 [儲存體帳戶]。 Visual Studio Code 會擷取其本機專案連線的連接字串。

若要檢查是否已成功新增繫結:

  1. 開啟 TableStorageOutputFunc/function.json 檔案,確認已將具有 type: tabledirection: out 的新繫結新增至此檔案。
  2. 開啟 local.settings.json 檔案,檢查包含儲存體帳戶連接字串的新機碼值組 <your-storage-account-name>_STORAGE: <your-storage-account-connection-string> 是否已新增至此檔案。

新增繫結之後,請在這裡以 Python 檔案取代 TableStorageOutputFunc/__init__.py,即可更新您的函式程式碼以取用繫結。

import logging
import uuid
import json
import azure.functions as func

def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:

    rowKey = str(uuid.uuid4())
    data = {
        "Name": "Output binding message",
        "PartitionKey": "message",
        "RowKey": rowKey
    }

    outMessage.set(json.dumps(data))
    return func.HttpResponse(f"Message created with the rowKey: {rowKey}")

在本機執行函式

請遵循教學課程在本機執行函式,並確認資料表輸出。

  1. 如果系統提示您連線到儲存體帳戶,請選取您在建立 Azure 函式資源時所選擇的 [儲存體帳戶]。 此值會用於 Azure Function 執行階段。 它不一定與您用於輸出的儲存體帳戶相同。
  2. 若要在本機啟動函式,請按 <kbd>F5</kbd> 或選取左側 [活動] 列中的 [執行並偵錯] 圖示。
  3. 若要確認函式可以寫入資料表,請在 Visual Studio Code WORKSPACE 檢視中的函式上以滑鼠右鍵按一下 [Execute Function Now...],然後檢查函式回應。 回應訊息應該包含寫入資料表的 rowKey

使用服務連接器建立連線

在最後一個步驟中,您已在本機驗證函式專案。 現在您會了解如何在雲端中設定 Azure Function 與 Azure 儲存體資料表之間的連線,以便您的函式在部署到雲端後可以寫入儲存體 Blob。

  1. 開啟本機專案中的 function.json 檔案,將 bindings 中的 connection 屬性值變更為 AZURE_STORAGETABLE_CONNECTIONSTRING
  2. 執行下列 Azure CLI 命令,以建立 Azure Function 與 Azure 儲存體帳戶之間的連線。
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-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}/tableServices/default

您已建立服務連接器資源,可在函式的應用程式設定中設定 AZURE_STORAGETABLE_CONNECTIONSTRING 變數。 此應用程式設定接著會由函式繫結取用以連線到儲存體,以便函式可以寫入儲存體資料表。 您可以深入了解服務連接器如何協助 Azure Functions 連線至服務

將函式部署至 Azure

現在您可以將函式部署至 Azure,並確認儲存體資料表輸出繫結可正常運作。

  1. 請遵循此 Azure Functions 教學課程,將您的函式部署至 Azure。
  2. 若要確認函式可以寫入資料表,請在 Visual Studio Code RESOURCES 檢視中的函式上以滑鼠右鍵按一下 [Execute Function Now...],然後檢查函式回應。 回應訊息應該包含函式剛寫入資料表的 rowKey

疑難排解

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

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

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

清除資源

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

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

下一步

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