terraform aws_s3_bucket_notification现有存储桶

时间:2019-02-25 14:10:26

标签: terraform

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

我正在尝试此配置:

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:无法   验证以下目标配置

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

1 个答案:

答案 0 :(得分:1)

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

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未列出任何更改,则您的代码与实际情况相符。

请参见documentation的结尾。