azure - 使用 Terraform 创建增量 Azure 托管磁盘快照

标签 azure terraform terraform-provider-azure azure-rm

我在 Terraform 中使用 PremiumV2_LRS 托管磁盘,并在其最新版本 (3.48.0) 上使用 azurerm 提供程序。

此类磁盘仅支持增量快照。我可以使用 az 命令行工具创建快照,没有任何问题(我也可以使用 Azure 门户创建快照):

$ az snapshot create \
  --name metadata-disk-snapshot \
  --resource-group storage-resources \
  --source "/subscriptions/0000(...)/disks/metadata-disk" \
  --incremental true

但是,使用 Terraform 我无法创建此类快照。这就是我定义磁盘和快照的方式:

resource "azurerm_managed_disk" "storage_metadata_disk" {
  name                 = "metadata-disk"
  location             = azurerm_resource_group.storage_resource_group.location
  resource_group_name  = azurerm_resource_group.storage_resource_group.name
  zone                 = var.disks_configuration.azure_availability_zone
  storage_account_type = "PremiumV2_LRS"
  create_option        = "Empty"
  disk_size_gb         = var.disks_configuration.metadata_disk.size_gb
  disk_iops_read_write = var.disks_configuration.metadata_disk.iops
  disk_mbps_read_write = var.disks_configuration.metadata_disk.mbps
}

resource "azurerm_snapshot" "storage_metadata_disk_snapshot" {
  name                = "metadata-disk-snapshot"
  location            = azurerm_resource_group.storage_resource_group.location
  resource_group_name = azurerm_resource_group.storage_resource_group.name
  source_uri          = azurerm_managed_disk.storage_metadata_disk.id
  create_option       = "Import"
}

azurerm_snapshot.create_option 仅接受ImportCopy,两者都不起作用。 “复制”似乎意味着“复制已经存在的快照”,“导入”可能意味着“增量”,但情况似乎并非如此。

但是,这两个选项都失败了。当使用“复制”时,错误很明显 - 仅增量:

**Error: creating/updating Snapshot (Subscription: "(...)" Resource Group Name: "storage-resources" Snapshot Name: "metadata-disk-snapshot"): performing CreateOrUpdate: snapshots.SnapshotsClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: Code="OperationNotAllowed" Message="Only incremental snapshots are supported for disks of Sku PremiumV2\_LRS."**
with module.(...)\_metadata\_disk\_snapshot
on .terraform/modules/(...)/main.tf line 30, in resource "azurerm\_snapshot" "storage\_metadata\_disk\_snapshot":

当使用“导入”(唯一的其他有效选项)时:

**Error: creating/updating Snapshot (Subscription: "(...)" Resource Group Name: "storage-resources" Snapshot Name: "metadata-disk-snapshot"): performing CreateOrUpdate: snapshots.SnapshotsClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: Code="InvalidParameter" Message="Uri not of expected kind" Target="sourceUri"**
with module.(...)\_metadata\_disk\_snapshot
on .terraform/modules/(...)/main.tf line 30, in resource "azurerm\_snapshot" "storage\_metadata\_disk\_snapshot":

如果我尝试使用未记录的选项(例如虚构值),则错误消息是它期望 create_optionCopyImport .

有什么建议吗?

最佳答案

目前不支持。我来这里是建议您在 Terraform 提供商的 github 存储库中提出一个问题,但您已经这样做了。干得好!

https://github.com/hashicorp/terraform-provider-azurerm/issues/21099

关于azure - 使用 Terraform 创建增量 Azure 托管磁盘快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75814205/

相关文章:

azure - 使用 Azure 数据工厂从 REST API 提取传入数据

azure - Windows Azure Blob 存储和 URL 重写

terraform - 从数据源在 Terraform 中构建列表

amazon-web-services - 如何使用 Terraform 部署和重新部署应用程序?

foreach - 重构后如何保留 terraform 资源以使用 for_each?

python - 限制 Azure 机器学习管道使用的节点数量

python - 如何从python API azure sdk获取azure规模集实例的公共(public)IP?

azure - 错误 "GroupsClient.BaseClient.Post() An invalid operation was included in the following modified references: ' Members'"是什么意思?

azure - 使用本地值定义 Azure Databricks 用户 block

azure - 使用 Terraform 更新服务主体密码