我目前正在开发新的terraform模块,并面临一些问题,验证现有的资源,如资源组。
使用ARM模板可以在选项deploy不存在的情况下使用它。但我在Terraform代码中找不到类似的解决方案。
例如,在创建全新的资源组之前。我想检查订阅是否包含它,如果没有,请创建它。
resource "azurerm_resource_group" "mssql_server_resource_group" {
name = var.mssql_resource_group_name
location = "eastus"
# Check if resource group exists before creating
lifecycle {
ignore_changes = [tags] # Ignore tag changes to prevent unnecessary updates
create_before_destroy = true # Create a new resource before destroying the existing one
}
}
我找到了上面的例子,但它不起作用。
1条答案
按热度按时间wkyowqbh1#
要检查资源组是否已经存在,你可以尝试下面的代码为我工作.
我尝试使用
count
操作符来检查条件,如下所示:terraform init
:运行Terraform计划后,它提示我输入
resource group
变量。我使用了现有的一个,输出如下。为了再次验证,我使用新的资源组名运行
terraform plan
,它返回状态"resource not found"
。然后,您可以检查状态并相应地继续。或者,您可以使用以下命令查看
Terraform state
文件,包括resource ID
。如果资源存在,则检索以下资源信息。