使用 Terraform v0.12.9,azurerm 提供程序 v1.36.1
设想:
- 您已基于第三方市场映像创建了映像。
- 您已将此图像发布到共享图像库。
- 您已经能够使用 Terraform 和 Azure Devops 管道以自动化方式执行此操作。(例如 CIS 硬化图像)
对于上述每个步骤,您都提供了计划信息数据。否则,您将无法从此映像创建 VM,因为使用市场映像会产生额外费用。
现在,您希望其他团队能够通过 Terraform 自动化使用来自共享图像库的图像。
如何在不进行硬编码的情况下从共享图像中获取计划信息?
好吧,我想只使用以下数据源检索数据:
data "azurerm_shared_image" "image" {
name = var.image_name
gallery_name = var.gallery_name
resource_group_name = var.rsg_name
}
并在 virtual_machine 资源中使用必要的块,如下所示:
storage_image_reference {
id = data.azurerm_shared_image.image.id
}
plan {
name = data.azurerm_shared_image.image.sku
publisher = data.azurerm_shared_image.image.publisher
product = data.azurerm_shared_image.image.offer
}
但是,我收到一条错误消息:
Error: Unsupported attribute
This object has no argument, nested block, or exported attribute named "sku".
对于每个 sku、出版商和报价。