我是Terraform的新手,我试图将两个不同的现有Azure存储帐户导入到我在Terraform中创建的两个“ azurerm_storage_account”模块中,即“ my_storage_account”和“ my_storage_account_2”。
我遵循了Terraform导入文档并运行:
terraform import azurerm_storage_account.my_storage_account /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount
...但是收到以下错误消息:
Error: resource address "azurerm_storage_account.my_storage_account" does not exist in the configuration.
Before importing this resource, please create its configuration in the root module. For example:
resource "azurerm_storage_account" "my_storage_account" {
# (resource arguments)
}
在根模块中,我有:
resource "azurerm_storage_account" "storage_account" {
# (resource arguments)
}
听起来错误消息告诉我写“ storage_account”而不是“ my_storage_account”,但是我如何才能导入该资源的特定模块?
答案 0 :(得分:1)
您已声明以下资源:
resource "azurerm_storage_account" "storage_account" {
# (resource arguments)
}
terrafrom在内部跟踪ID为azurerm_storage_account.storage_account
的资源。
如果您要导入一个存储帐户并告诉terraform您确切是指此资源,则必须在内部使用terraform使用的id。您现在可能会在以下几行中看到差异:
terraform import azurerm_storage_account.my_storage_account /subcriptions/...
terraform import azurerm_storage_account.storage_account /subcriptions/...
如果要由terraform管理多个存储帐户,则每个存储帐户都需要具有自己的唯一资源节。