用于Azure资源管理的部署堆栈正式发布,取代蓝图

Azure Deployment Stacks 正式发布

Azure Deployment Stacks 是一种新的资源类型,用于将一组 Azure 资源作为一个单元进行管理。该功能现已正式发布(GA),支持更快的更新和删除操作,同时防止对这些资源进行不必要的更改。

背景与迁移

Deployment Stacks 的正式发布是继去年的公开预览之后,被视为 Azure Blueprints 的后续产品。Azure Blueprints 将于 2026 年 7 月停用,并且从未达到正式发布状态。微软建议客户将其蓝图定义和分配迁移到 Template Specs 和 Deployment Stacks。

主要功能

Deployment Stacks 提供以下主要功能:

  • ActionOnUnmanage:指定当受管资源变为非受管状态时采取的操作,可以是删除或分离资源。
  • DeleteResources:删除非受管资源,分离资源组和管理组。

其他设置包括:

  • DeleteAll:删除所有资源。
  • DetachAll:分离所有资源。
  • DenySettingsMode:拒绝设置模式,包括 DenyDeleteDenyWriteAndDeleteNone

创建 Deployment Stacks

Deployment Stacks 可以在不同范围内创建,如资源组、订阅和管理组。创建 Deployment Stacks 需要以下信息:

  • 主模板(main.bicep 或 azuredeploy.json),定义要由 Deployment Stacks 创建的“managedResources”。
  • 选择 ActionOnUnmanage 设置。
  • 设置 DenySettingsMode
  • 指定 Deployment Stacks 的范围及其部署的目标范围。

Azure CLI 示例

以下是创建订阅范围内 Deployment Stacks 的 Azure CLI 命令示例:

az deployment stack create --name <stack-name> --location <location> --template-file main.bicep --action-on-unmanage DeleteResources --deny-settings-mode DenyDelete --scope /subscriptions/<subscription-id>

在门户中查看

用户可以通过导航到指定范围 > 设置 > Deployment Stacks 来查看 Deployment Stacks 及其内容。

与其他云平台的比较

Google Cloud Platform (GCP) 和 Amazon Web Services (AWS) 提供类似的功能:

  • GCP:使用 Google Cloud Deployment Manager 和 Terraform。
  • AWS:使用 AWS CloudFormation、AWS CDK 和 Terraform。
  • Azure:Terraform 也是一个选项,因其具有云平台无关性。

技术专家的观点

微软高级云解决方案架构师 Itamar Hirosh 在技术博客中总结道:

通过利用 Azure Deployment Stacks,我们可以有效管理和保护 Terraform 后端状态存储账户,避免陷入无限状态文件循环的陷阱。这种方法不仅集中管理后端组件,还通过拒绝分配增加了一层安全性,防止未经授权的访问和修改。

更多资源

除了官方文档,更多关于 Deployment Stacks 的详细信息可以在 GitHub 上找到:Azure Deployment Stacks GitHub

阅读 66
0 条评论