在本快速入門中,您會使用 Visual Studio Code 來建置應用程式,以回應 Azure Cosmos DB 中「無 SQL」資料庫中的資料庫變更。 在本機測試程式碼之後,您會將其部署到您在 Azure Functions 的彈性使用量方案中執行的新無伺服器函數應用程式。
專案來源會使用 Azure 開發人員 CLI (azd) 延伸模組搭配 Visual Studio Code,以簡化在本機初始化和驗證專案程式碼,以及將程式碼部署至 Azure。 此部署遵循目前安全且可調整的 Azure Functions 部署最佳做法。
這很重要
雖然在 Azure Cosmos DB NoSQL 資料庫 中回應變更是所有語言都支持的功能,但此快速入門情境目前僅提供 C#、Python 和 TypeScript 的範例。 要完成此快速入門,請在文章頂端選擇其中一種支援語言。
先決條件
具有有效訂閱的 Azure 帳戶。 免費建立帳戶。
其中一個支援的平台上有 Visual Studio Code。
適用於 Visual Studio Code 的 Azure Functions 擴充功能。 此延伸模組需要 Azure Functions 核心工具。 當此工具在本機無法使用時,延伸模組會嘗試使用套件型安裝程式來安裝它。 您也可以從命令選項板執行
Azure Functions: Install or Update Azure Functions Core Tools來安裝或更新核心工具套件。 如果您沒有在本機電腦上安裝 npm 或 Homebrew,您必須改為手動安裝或更新 Core Tools。
適用於 Visual Studio Code 的 C# 擴充功能 (英文)。
-
Node.js 18.x 或更高版本。 請使用
node --version命令來檢查您的版本。
Azure Functions 支援的 Python 版本。 如需詳細資訊,請參閱如何安裝 Python。
適用於 Visual Studio Code 的 Python 擴充功能。
- 適用於 Visual Studio Code 的 Azure 開發人員 CLI 延伸模組 。
初始化專案
您可以使用命令選項板中的 azd init 命令,從範本建立本機 Azure Functions 程式碼專案。
在 Visual Studio Code 中,開啟您要在其中建立專案的資料夾或工作區。
按 F1 開啟命令選項板,搜尋並執行命令
Azure Developer CLI (azd): Initialize App (init),然後選擇 [ 選取範本]。初始化目前資料夾或工作區時
azd可能會有輕微的延遲。
出現提示時,選擇 選取範本,然後搜尋並選取
Azure Functions with Cosmos DB Bindings (.NET)。出現提示時,請輸入唯一的環境名稱,例如
cosmosdbchanges-dotnet。此命令會從 範本存放庫 提取專案檔,並在目前資料夾或工作區中初始化專案。 在
azd中,環境可用來維護應用程式的唯一部署內容,且您可以定義一個以上的部署內容。 它也是您在 Azure 中建立的資源群組名稱的一部分。
出現提示時,選擇 選取範本,然後搜尋並選取
Azure Functions TypeScript CosmosDB trigger。出現提示時,請輸入唯一的環境名稱,例如
cosmosdbchanges-ts。此命令會從 範本存放庫 提取專案檔,並在目前資料夾或工作區中初始化專案。 在
azd中,環境可用來維護應用程式的唯一部署內容,且您可以定義一個以上的部署內容。 它也是您在 Azure 中建立的資源群組名稱的一部分。
出現提示時,選擇 選取範本,然後搜尋並選取
Azure Functions Python with CosmosDB triggers and bindings...。出現提示時,請輸入唯一的環境名稱,例如
cosmosdbchanges-py。此命令會從 範本存放庫 提取專案檔,並在目前資料夾或工作區中初始化專案。 在
azd中,環境可用來維護應用程式的唯一部署內容,且您可以定義一個以上的部署內容。 它也是您在 Azure 中建立的資源群組名稱的一部分。
根據您的本機作業系統,執行此命令,以授與組態指令碼所需的許可權:
以足夠的權限執行此命令:
chmod +x ./infra/scripts/*.sh
您必須先在 Azure 中建立資源,才能在本機執行應用程式。 此專案不會使用 Azure Cosmos DB 的本機模擬。
建立 Azure 資源
此專案已設定為使用 azd provision 命令,在彈性使用量方案中建立函數應用程式,以及遵循目前最佳做法的其他必要 Azure 資源。
在 Visual Studio Code 中,按 F1 開啟命令選項板,搜尋並執行命令
Azure Developer CLI (azd): Sign In with Azure Developer CLI,然後使用您的 Azure 帳戶登入。按 F1 開啟命令選項板,搜尋並執行命令
Azure Developer CLI (azd): Provision Azure resources (provision)以建立必要的 Azure 資源:當「終端機」視窗中出現提示時,請提供以下必要的部署引數:
Prompt Description 選取要使用的 Azure 訂用帳戶 選擇您要在其中建立資源的訂用帳戶。 位置 部署參數 要在其中建立包含新 Azure 資源之資源群組所在的 Azure 區域。 只會顯示目前支援彈性使用量方案的區域。 vnetEnabled 部署參數 雖然範本支援在虛擬網路內建立資源,但若要簡化部署和測試,請選擇 False。此
azd provision命令會使用您對這些提示的回應搭配 Bicep 組態檔,來建立和設定這些必要的 Azure 資源,並遵循最新的最佳做法:- 彈性使用量方案和函數應用程式
- Azure Cosmos DB 帳戶
- Azure 儲存體 (必要) 和 Application Insights (建議)
- 存取帳戶的原則和角色
- 使用受控識別的服務對服務連線 (而不是預存的連接字串)
佈建後掛勾也會產生在本機執行時所需的 local.settings.json 檔案。 此檔案也包含連線到 Azure 中 Azure Cosmos DB 資料庫所需的設定。
小提示
如果在佈建期間任何步驟失敗,您可以在解決任何問題後再次執行
azd provision命令。命令成功完成之後,您可以在本機執行專案程式碼,並在 Azure 中的 Azure Cosmos DB 資料庫上觸發。
在本機執行函式
Visual Studio Code 與 Azure Functions 核心工具 整合,可讓您在本機開發電腦上執行此專案,再發佈至 Azure 中的新函式應用程式。
按 F1 ,然後在命令選項板中搜尋並執行命令
Azurite: Start。若要在本機啟動函式,請按 F5 或左側 [活動] 列中的 [執行並偵錯] 圖示。 「終端機」面板會顯示「核心工具」的輸出。 您的應用程式會在 「終端機」 面板中啟動,您可以看到在本機執行的函式名稱。
如果在 Windows 上執行時遇到問題,請確定 Visual Studio Code 的預設終端機未設定為 WSL Bash。
當核心工具仍在 終端機中執行時,請按 F1 ,然後在命令選項板中搜尋並執行命令
NoSQL: Create Item...,然後選取document-db資料庫和documents容器。將 新 Item.json 檔案的內容取代為此 JSON 資料,然後選取 儲存:
{ "id": "doc1", "title": "Sample document", "content": "This is a sample document for testing my Azure Cosmos DB trigger in Azure Functions." }選取儲存之後,您會在終端機中看到函數的執行,且本機文件會更新,以包含服務所新增的中繼資料。
當您完成時,請在終端機視窗中按 Ctrl+C 以停止
func.exe主機程序。
檢閱程式碼 (選用)
函式會根據 Azure Cosmos DB NoSQL 資料庫中的變更摘要觸發。 這些環境變數會設定觸發程式監視變更摘要的方式:
-
COSMOS_CONNECTION__accountEndpoint:Cosmos DB 帳戶端點 -
COSMOS_DATABASE_NAME:要監控的資料庫名稱 -
COSMOS_CONTAINER_NAME:要監控的容器名稱
在 azd provision 作業期間,系統會在 Azure (函式應用程式設定) 和本機 (local.settings.json) 中為您建立這些環境變數。
您可以在 CosmosTrigger.cs 專案檔中檢閱定義 Azure Cosmos DB 觸發程式的程式碼。
您可以在 cosmos_trigger.ts專案檔中檢閱定義 Azure Cosmos DB 觸發程式的程式碼。
您可以在 function_app.py 專案檔中檢閱定義 Azure Cosmos DB 觸發程式的程式碼。
在本機檢閱並驗證函式程式碼之後,就可以將專案發佈至 Azure。
部署至 Azure
您可以從 Visual Studio Code 執行 azd deploy 命令,將專案程式碼部署至 Azure 中已佈建的資源。
按 F1 開啟指令選項板,搜尋並執行指令
Azure Developer CLI (azd): Deploy to Azure (deploy)。azd deploy指令會對程式碼進行封裝並將其部署到部署容器中。 然後,應用程式會啟動並在已部署的套件中執行。命令成功完成之後,您的應用程式會在 Azure 中執行。
在 Azure 上叫用函式
在 Visual Studio Code 中,按 F1,然後在命令選項板中搜尋並執行命令
Azure: Open in portal,選取Function app並選擇您的新應用程式。 如有必要,請使用您的 Azure 帳戶登入。此命令會在 Azure 入口網站中開啟新的函式應用程式。
在主頁面的 [ 概觀 ] 索引標籤中,選取您的函式應用程式名稱,然後選取 [記錄] 索引標籤。
使用 Visual Studio Code 中的命令
NoSQL: Create Item,像以前一樣再次將文件新增至容器。再次驗證函式是否由受監視容器中的更新觸發。
重新部署程式碼
您可以視需要執行 azd deploy 命令多次,將程式碼更新部署至函式應用程式。
備註
最新的部署套件一律會覆寫已部署的程式碼檔案。
您對 azd 提示的初始回應,以及 azd 所產生的任何環境變數都會儲存在本機的具名環境中。 使用 azd env get-values 命令來檢閱您環境中建立 Azure 資源時所使用的所有變數。
清理資源
當您使用函數應用程式和相關資源時,您可以使用此命令從 Azure 刪除函數應用程式及其相關資源,並避免產生任何進一步的成本:
azd down --no-prompt
備註
--no-prompt 選項會指示 azd 刪除您的資源群組,而不需要您確認。
此命令不會影響您的本機程式碼專案。