Azure 开发者 CLI(azd)支持 Azure 部署堆栈用于模板部署。 Azure部署堆栈是一种资源,可用于将一组Azure资源作为一个统一单元进行管理。 通过使用部署堆栈,可以更好地控制与 azd 模板和应用关联的资源集。
在本文中,你将学习如何:
- 在
azd中启用Azure部署堆栈支持。 - 使用Azure部署堆栈部署
azd模板。 - 使用
azd配置部署堆栈行为。
启用Azure部署堆栈支持
必须通过 azd config 命令启用Azure部署堆栈支持:
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部署堆栈。 例如,如果模板的范围限定为订阅或资源组级别,则可以在关联订阅或资源组页的 Deployment 堆栈页上的 Azure 门户中查看关联的部署堆栈。
选择部署堆栈以查看其管理页:
删除部署堆栈
默认情况下,可以使用标准 azd down 命令删除部署堆栈及其关联的资源:
azd down
使用azure.yaml文件来配置azd down和部署堆栈的确切行为。
配置部署堆栈
azd通过 infra 文件的 azure.yaml 节公开各种配置设置,以影响Azure部署堆栈的行为。 这些设置映射到 部署堆栈 文档中详述的标准选项。 请考虑以下示例 azure.yaml :
name: todo-nodejs-mongo-aca
metadata:
template: [email protected]
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:一个布尔值,用于设置拒绝规则是否应用于部署堆栈中资源的子资源。 例如,SQL Server资源具有子数据库资源。
-
模式:确定部署堆栈资源的高级别限制。 可能的值包括: