當你建立新的 Azure 開發者 CLI (azd) 範本或從現有範本開始後,你可以隨著需求變化擴充並演進其應用程式與基礎架構。 本教學示範如何在不依賴模板已提供的模組的情況下,新增 Azure 服務到範本中。
你會從hello-azd範本開始,建立一個定義 Azure 翻譯工具 資源的 Bicep 模組,從範本的基礎設施入口點參考該模組,並將輸出顯示為azd環境值。 教學著重於擴充基礎設施,並未修改應用程式程式碼。
Note
你可以直接或在 AI 程式助理的協助下做出以下修改。 不論用哪種製作方式,部署前都要檢視產生的檔案並驗證範本。
先決條件
若要完成本教學課程,您需要:
- Azure Developer CLI 安裝.
- Azure 訂用帳戶。
- 在訂閱中建立 Azure 資源的權限。
- 一個用於初始化範本的空目錄。
初始化範本
在空目錄中開啟終端機,然後在該目錄中初始化 hello-azd 範本:
azd init --template hello-azd .
該範本包括:
- 部署至
azure.yaml中 Azure 容器應用程式 的 C# 應用程式,作為aca服務。 - 應用程式由使用者指派的管理身份。
- 一個 Azure 儲存體 帳號,裡面有 blob 容器和表格。
- Azure Container Registry 和 Azure 容器應用程式 環境。
- 位於
infra/core下的可重複使用 Bicep 模組。
關於在初始化前選擇與審查範本的指引,請參見「 從現有範本開始」。
建立一個翻譯模組
建立一個名為 infra/translator.bicep的檔案,可以手動或在 AI 程式助理的協助下建立。 這個新模組是自成一體的,且不依賴起始範本中的模組:
@description('Name of the Azure Translator resource.')
param name string
@description('Azure region for the resource.')
param location string
@description('Tags to apply to the resource.')
param tags object = {}
@description('Pricing tier for Azure Translator.')
@allowed([
'F0'
'S1'
])
param sku string = 'F0'
resource translator 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
name: name
location: location
kind: 'TextTranslation'
sku: {
name: sku
}
properties: {
customSubDomainName: name
disableLocalAuth: true
publicNetworkAccess: 'Enabled'
}
tags: tags
}
output name string = translator.name
output endpoint string = translator.properties.endpoint
模組使用 resource TextTranslation 類型並關閉本地金鑰驗證。 此 F0 層級對評估有用,但每位訂閱僅允許一個免費翻譯資源。 如果訂閱已經包含資源F0,或專案需要付費層級,就使用S1。
Important
這個入門範例啟用了公共端點,讓你可以在不新增網路基礎設施的情況下配置資源。 在正式環境中使用此模式前,先評估私有端點、網路存取控制、監控及組織的安全需求。
從 main.bicep 引用該模組
該 hello-azd 範本定義 rg 了資源群組、 location、 tags及 resourceToken 中的 infra/main.bicep值。 你可以手動編輯,或是提示 AI 助理加入。 在資源 rg 宣告後加入以下模組:
module translator './translator.bicep' = {
name: 'translator'
scope: rg
params: {
name: 'translator-${resourceToken}'
location: location
tags: tags
}
}
屬性 scope 將模組部署到範本所建立的資源群組中。 現有 resourceToken 值使得每個環境的轉譯器資源名稱都不同。
匯出翻譯器輸出
在 infra/main.bicep 的末尾加入以下輸出:
output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint
配置完成後, azd 會擷取這些非秘密輸出於主動環境中。 後續的應用程式代碼變更可利用這些值來定位轉譯器資源。
配置與驗證基礎設施
在不部署其應用程式碼的情況下,配置範本的基礎架構:
azd provision
執行 azd env get-values 並確認輸出包含 AZURE_TRANSLATOR_NAME 和 AZURE_TRANSLATOR_ENDPOINT。 在 Azure 入口網站中,確認資源群組是否包含 Azure 翻譯工具 資源。
此時,範本會配置 AI 服務,但並未將範例應用程式連結到它。 為了完成這項整合,請設定應用程式的管理身份權限最低權限,將端點交給應用程式,並在應用程式程式碼中新增一個翻譯器用戶端。 欲了解更多資訊,請參閱 Azure 翻譯工具 文件。
清理資源
當你不再需要這些資源時,請刪除它們以避免持續收費:
azd down --purge
相關內容
請求幫助
如需了解如何提出錯誤、請求協助或建議Azure開發者 CLI 新功能,請造訪 troubleshooting and support 頁面。