我需要创建一个使用现有存储桶(未在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:无法 验证以下目标配置
也许“数据”不是定义现有存储桶的正确方法... 有什么帮助吗? 谢谢!
答案 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的结尾。