SuperAPI AI 工具集

pulumi-arm-to-pulumi

部署与运维

查看项目

更新于 10-16 04:53

技能介绍

用途:把 Azure ARM(Azure Resource Manager)模板、Bicep 模板或代码转换为 Pulumi 程序,并可选地将已部署的现有 Azure 资源导入 Pulumi 管理。资料明确说明 ARM 到 Pulumi 没有自动转换工具,需人工逐项翻译。

主要能力:验证 Azure 凭据并确认订阅;分析 ARM 模板的资源、参数、变量、依赖、嵌套模板、copy 循环与条件;按工作流完成转换,保留条件、循环与依赖;支持导入现有资源并校验零差异;完成 Pulumi 配置与验证;输出 PR 可用的迁移报告。

关键要求:ARM 模板中每个资源都必须在 Pulumi 程序中体现,或在报告中说明理由;生成的程序需结构有效且可成功执行 pulumi preview;若导入现有资源,导入后 pulumi preview 不应出现 update、replace、create、delete,差异需按 Preview Resolution Workflow 解决;始终输出正式迁移报告,含资源映射、提供商选择、行为差异、缺失步骤与验证说明。

使用方式:先收集信息,可结合 ESC 登录 Azure,例如 pulumi env run {org}/{project}/{environment} -- bash -c 'az login --service-principal -u "$ARM_CLIENT_ID" --tenant "$ARM_TENANT_ID" --federated-token "$ARM_OIDC_TOKEN"',再用 az account show 验证;用 cat template.json | jq '.resources[] | {type: .type, name: .name}' 查看资源,用 az resource list、az resource show 盘点现有资源。转换默认使用 @pulumi/azure-native,必要时回退 @pulumi/azure;支持 TypeScript、Python、C#、Go、Java、YAML。导入使用内联 import 与 Azure 资源 ID,资源 ID 形如 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}。配置示例:pulumi config set azure-native:location eastus --stack dev、pulumi config set --secret adminPassword MyS3cr3tP@ssw0rd --stack dev。验证可用 pulumi stack output、pulumi stack graph。

适用场景:Azure ARM/Bicep 向 Pulumi 迁移、将已有 Azure 资源纳入 Pulumi 管理、生成可提交 PR 的迁移报告。

限制与缺失:无自动转换工具;若 ARM 模板不完整、有歧义或缺少产物,需先提出针对性问题;导入属性有歧义时也应先询问。资料未提供具体收费、价格、性能或效果数据。