Terraform AWS_S3_Bucket_notification现有存储桶



我需要创建一个使用现有存储桶的AWS_S3_BUCKET_NOTIFITICY(未在Terraform脚本中定义)

我正在尝试这种配置:

data "aws_s3_bucket" "terraform-bucket-name" {
    bucket = "account-bucket-name"
}
resource "aws_s3_bucket_notification" "bucket_notification" {
   bucket = "${data.aws_s3_bucket.terraform-bucket-name.id}"
   lambda_function {
       lambda_function_arn = "${aws_lambda_function.something.arn}"
       events              = ["s3:ObjectCreated:*"]
   }
   depends_on = ["aws_lambda_function.something", "data.aws_s3_bucket.terraform-bucket-name"]
}

但是我有一个错误:

错误放置S3通知配置:InvalidArgument:无法 验证以下目标配置

也许"数据"不是定义现有存储桶的正确方法...有帮助吗?谢谢!

您必须将其定义为常规资源:

resource "aws_s3_bucket" "my_bucket" {
  bucket = "terraform-bucket-name"

然后,您必须将其导入Terraform的状态:

terraform import aws_s3_bucket.my_bucket terraform-bucket-name

之后,terraform plan将向您展示现实世界和您的代码之间的区别,您应该解决。如果terraform plan列出没有更改,则您的代码与现实匹配。

请参阅文档的结尾。

最新更新