我有一个要求,只有当某个文件存在于某个位置时,我才必须部署资源,否则它将跳过该资源。
就像这里是在某些 AWS 账户中部署某个身份提供商的代码。除了这个身份提供者(比如 abc),许多其他身份提供者也从同一个 main.tf 文件部署,所以所有的都必须在这里。abc-${var.aws_account}.xml
唯一的挑战是,在为任何帐户部署 IAM 层时,我们仅在文件部分存在于文件路径中时才会部署此特定资源
saml_metadata_document
。如果它不存在于路径中,它将简单地忽略资源创建并继续执行其余代码。
resource "aws_iam_saml_provider" "xyz" {
name = "abc-${var.aws_account}"
saml_metadata_document = "${file("${path.module}/metadata/abc-${var.aws_account}.xml")}"
}
文件夹结构
IAM-Module
|
main.tf
variables.tf
metadata
|
abc-127367223.xml
abc-983297832.xml
abc-342374384.xml
如何在 Terraform 0.11 中进行条件检查以检查文件是否存在?