如何将 Pulumi Azure 资源迁移到 Azure-Nextgen?

How do I migrate a Pulumi Azure resource to Azure-Nextgen?

我正在尝试将 Azure 存储帐户(最初是使用旧版 Azure 提供程序创建)的 pulumi 代码迁移到 Azure-Nextgen 提供程序。 Aliases 属性 没有按预期工作。这可能吗,还是我遗漏了一些明显的东西?:

原文:

var storageAccount = new Account($"storage_{storageName}", new AccountArgs
    {
        Name = $"{storageName}",
        ResourceGroupName = resourceGroup.Name,
        AccountReplicationType = "LRS",
        AccountTier = "Standard",
        Location = resourceGroup.Location,
        IsHnsEnabled = true,
        MinTlsVersion = "TLS1_2"
    },
    new CustomResourceOptions()
    {
        Protect = true
    });

新:

var storageAccount = new StorageAccount($"storage_{storageName}",
    new StorageAccountArgs()
    {
        AccountName = $"{storageName}",
        Location = location,
        ResourceGroupName = resourceGroup.Name,
        Kind = Kind.StorageV2,
        AccessTier = AccessTier.Hot,
        Sku = new SkuArgs()
        {
            Name = SkuName.Standard_LRS
        },
        IsHnsEnabled = true,
        MinimumTlsVersion = MinimumTlsVersion.TLS1_2
    },
    new CustomResourceOptions()
    {
        Protect = true,
        Aliases =
        {
            new Alias
            {
                Urn = "urn:pulumi:myEnvironment::myStack::azure:storage/account:Account::storage_storageName"
            }
        }
    });

控制台中的 Pulumi 预览:

azure:storage:Account (storage_storageName):
    error: Preview failed: refusing to delete protected resource 'urn:pulumi:myEnvironment::myStack::azure:storage/account:Account::storage_storageName'

别名不能跨提供商使用。 “经典”Azure 提供者的资源形态与下一代原生 Azure 提供者不同,因此状态不兼容。

您必须遵循以下手动过程:

  1. 使用 NextGen 将现有存储帐户导入为新资源

    pulumi import azure-nextgen:storage/latest:StorageAccount storage /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/my-rgca05c9f8/providers/Microsoft.Storage/storageAccounts/storagea791686
    
  2. 上面的命令将导入状态并为您打印出代码。将代码复制到您的程序中。

  3. 现在,从你的状态(不是从 Azure)中删除旧资源

    pulumi state delete urn:pulumi:dev::ts::azure:storage/account:Account::storage
    
  4. 从您的 Pulumi 程序中删除旧资源。

  5. 运行 pulumi up 以确保一切正常。您应该看不到任何变化。

迁移指南将在接下来的几周内发布,发布后我会用 link 更新此答案。