pulumi-arm-to-pulumi
pulumi/agent-skills
将 Azure ARM(Azure Resource Manager)模板、Bicep 模板或代码转换或迁移至 Pulumi,包括导入现有的 Azure 资源。每当用户请求将 ARM 模板、Bicep 模板、ARM 代码、Bicep 代码或 Azure 资源迁移、转换或导入至 Pulumi 时,都必须加载此技能。
...展开全部关于pulumi-arm-to-pulumi
一套用于将 Azure ARM(Azure 资源管理器)模板、Bicep 或 Azure 代码转换或迁移至 Pulumi 的结构化工作流,包括将现有的 Azure 资源导入 Pulumi 管理环境。 该技能旨在在需要进行此类迁移、转换或导入时加载,并会修订在加载该技能之前已起草的任何迁移计划,使其符合该技能的要求。
成功标准非常严格:每个 ARM 资源必须出现在 Pulumi 程序中,或在报告中明确说明其存在理由; 输出在结构上必须有效,且能够成功进行 Pulumi 预览;以及在导入现有资源时,预览必须显示零差异(无创建、更新、替换或删除操作),且任何差异均需通过“预览解决工作流”予以解决。 系统始终会生成一份适用于拉取请求的正式迁移报告,涵盖 ARM 到 Pulumi 的资源映射、提供商选择、行为差异以及手动步骤。
该工作流按顺序进行。信息收集阶段会验证 Azure 凭据(使用 ESC 环境和 az login 命令),并使用 jq 分析 ARM 模板以提取资源类型、参数、变量、dependsOn 数组、复制循环和条件语句,可选地使用 az resource list 和 show 命令构建资源清单。 由于没有自动的 ARM 转换器,代码转换需手动完成,默认使用 azure-native 提供商,经典 Azure 提供商作为备用方案,并保留用户所选语言中的所有条件语句、循环和依赖关系。 可选的资源导入功能使用内联 import resource 选项,其中 Azure 资源 ID 遵循可预测的订阅、资源组和提供商路径,随后验证是否为零差异。 最后,堆栈配置将设置为与 ARM 参数相匹配。配套文档 arm-conversion-patterns.md 和 arm-import.md 提供了详细的映射模式以及导入和零差异调试流程。
常见问题
是否有用于转换 ARM 模板的自动化工具?
没有。该技能说明,ARM 到 Pulumi 的转换需要手动转换,且您需负责整个转换过程,尽管参考模式会指导映射操作。
我应该使用哪个 Pulumi 提供程序?
默认使用 @pulumi/azure-native 以全面支持 Azure Resource Manager API;当 azure-native 缺少某项功能或需要更简单的抽象时,则回退到经典的 @pulumi/azure 提供程序。
“零差异导入验证”是什么意思?
导入现有资源后,Pulumi 预览界面中不应显示任何创建、更新、替换或删除操作。任何差异均通过 arm-import.md 中描述的“预览解决工作流”进行处理。
如何配置 Azure 凭据?
通过提供凭据的 ESC 环境,使用 `pulumi env run` 配合 `az login`(服务主体和联合令牌),然后通过 `az account show` 进行验证。如果未指定 ESC 环境,该技能会询问应使用哪个环境。
迁移完成后将交付什么?
一份适用于拉取请求的正式迁移报告,其中包括 ARM 到 Pulumi 的资源映射、提供商决策、行为差异、任何缺失或手动步骤以及验证说明。





首页
