Azure 開發者 CLI(azd)支援 Azure部署堆疊以進行範本部署。 Azure 部署堆疊是一種資源,讓你能將一組 Azure 資源作為一個統一的整體來管理。 透過使用部署堆疊,你可以對範本 azd 和應用程式相關的資源進行額外控制。
在本文中,您將學會如何:
- 啟用Azure部署堆疊支援
azd。 - 使用 Azure Deployment Stacks 部署
azd範本。 - 使用
azd配置來設定部署堆疊的行為。
啟用 Azure 部署堆疊支援
Azure部署堆疊支援必須透過 azd config 指令啟用:
azd config set alpha.deployment.stacks on
注意
Azure 部署堆疊支援目前仍為 alpha 版本,因此必須手動啟用。 然而,在未來的版本中,部署堆疊將成為azd的預設部署行為。
深入瞭解我們的版本控制策略。
請使用以下 azd config show 指令確認此功能是否成功啟用:
azd config show
使用部署組態部署範本
啟用部署堆疊功能後,無需再修改 azd 範本即可利用此功能的預設行為。
azd 在執行 azd up 時,會自動將已配置的範本資源包裝成 Azure 部署堆疊:
azd up
azd 使用範本中 main.bicep 檔案中定義的 Azure 部署堆疊範圍。 例如,如果您的範本範圍為訂閱或資源群組層級,您可以在相關訂閱或資源群組頁面的
選取部署堆疊以檢視其管理頁面:
刪除部署堆栈
預設情況下,您可以使用標準 azd down 指令刪除部署堆疊及其相關資源:
azd down
azd down 和部署堆疊的具體行為是透過 azure.yaml 檔案來設定的。
設定部署堆疊
azd 透過 infra 檔案的 azure.yaml 區段暴露各種設定,以影響Azure部署堆疊的行為。 這些設定對應到 部署堆疊 文件中詳細說明的標準選項。 請考慮以下 azure.yaml 範例:
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
infra:
provider: bicep
deploymentStacks:
actionOnUnmanage:
resources: delete
resourceGroups: delete
denySettings:
mode: denyDelete
excludedActions:
- Microsoft.Resources/subscriptions/resourceGroups/delete
excludedResources:
- <your-resource-id-1>
- <your-resource-id-2>
excludedPrincipals:
- <your-targeted-principal-id-1>
- <your-targeted-principal-id-2>
applyToChildScopes: true
# ...
# Remaining file contents omitted
# ...
在前述範例中,以下選項在節 deploymentStacks 中定義:
-
actionOnUnmanage:當部署堆疊被刪除時,相關的Azure資源被視為未管理。 這個設定決定了 Azure 如何處理非管理資源。 可能的值包括:
-
delete是預設值,並會銷毀由已刪除部署堆疊管理的任何資源。 -
detach資源會保持不變,但移除與已刪除部署堆疊的關聯。
-
-
denySettings:一個子章節,提供對部署堆疊資源的細緻控制。
-
模式:決定部署堆疊資源的高階限制。 可能的值包括:
-
none是預設值,允許刪除部署堆疊資源或新增資源。 -
denyDelete防止任何部署堆疊資源被刪除。 -
denyWriteAndDelete防止任何部署堆疊資源被刪除,也防止新增資源加入部署堆疊。
-
- excludedActions:列出部署堆疊資源中不允許的 Azure 基於角色的存取控制(RBAC)動作。
-
excludedResources:列出從
denySettings排除的資源 ID。 -
excludedPrincipals:列出不包括在
denySettings內的服務主体 ID。 - applyToChildScopes:一個布林值,用來設定 deny 設定是否適用於部署堆疊中資源的子資源。 例如,SQL Server 資源有子資料庫資源。
-
模式:決定部署堆疊資源的高階限制。 可能的值包括: