【发布时间】:2022-01-17 08:45:28
【问题描述】:
有没有一种方法可以对存储桶使用 terraform 数据调用(可能已创建并存储在不同的状态文件中),然后如果数据中没有任何内容,则通过设置计数来创建资源?
我一直在做一些实验,并不断得到以下结果:
Error: Failed getting S3 bucket (example_random_bucket_name): NotFound: Not Found
status code: 404, request id: <ID here>, host id: <host ID here>
要测试的示例代码(已从产生此错误的原始代码修改):
variable "bucket_name" {
default = "example_random_bucket_name"
}
data "aws_s3_bucket" "new" {
bucket = var.bucket_name
}
resource "aws_s3_bucket" "s3_bucket" {
count = try(1, data.aws_s3_bucket.new.id == "" ? 1 : 0 )
bucket = var.bucket_name
}
我觉得我应该得到一个空结果,而不是产生错误,但事实并非如此。
【问题讨论】:
-
我重写了模块,这反过来又导致了问题。这只是我试图实现的一个例子。最后,我做到了,一旦命名空间将创建存储桶,所有其他命名空间都会将策略应用于它。我遇到了问题,它会检查存储桶是否存在,如果存在,计数会改变,这反过来会破坏存储桶(我基本上有两个模块;在应用策略和一个用于创建存储桶......非常乱)。
标签: amazon-web-services terraform terraform-provider