Terraform 地形aws_s3_bucket_通知现有bucket
我需要创建一个aws_s3_bucket_通知,该通知使用现有bucket(未在terraform脚本中定义) 我正在尝试以下配置:Terraform 地形aws_s3_bucket_通知现有bucket,terraform,Terraform,我需要创建一个aws_s3_bucket_通知,该通知使用现有bucket(未在terraform脚本中定义) 我正在尝试以下配置: data "aws_s3_bucket" "terraform-bucket-name" { bucket = "account-bucket-name" } resource "aws_s3_bucket_notification" "bucket_notification" { bucket = "${data.aws_s3_bucket.te
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:无法
验证以下目标配置的步骤
也许“数据”不是定义现有bucket的正确方法。。。
有什么帮助吗?
谢谢 您必须将其定义为常规资源:
resource "aws_s3_bucket" "my_bucket" {
bucket = "terraform-bucket-name"
然后您必须将其导入Terraform的状态:
terraform import aws_s3_bucket.my_bucket terraform-bucket-name
之后,TerraformPlan
将向您展示真实世界与您的代码之间的差异,您应该解决这些差异。如果terraformplan
未列出任何更改,则您的代码符合实际情况
请参见..的末尾,您必须将其定义为常规资源:
resource "aws_s3_bucket" "my_bucket" {
bucket = "terraform-bucket-name"
然后您必须将其导入Terraform的状态:
terraform import aws_s3_bucket.my_bucket terraform-bucket-name
之后,TerraformPlan
将向您展示真实世界与您的代码之间的差异,您应该解决这些差异。如果terraformplan
未列出任何更改,则您的代码符合实际情况
请看..的结尾。下面的答案是解决问题的正确方法。下面的答案是解决问题的正确方法。嗨,谢谢你的回答。你的解决方案是有效的。问题是,我需要为不同的环境实现自动化,所以我需要一些可以多次启动的东西。在使用terraform导入之前,我可以验证资源是否存在。编写一些为您生成代码的包装器?否则您可以尝试,它可以根据现有资源生成TF代码。好的,我试试。谢谢嗨,谢谢你的回复。你的解决方案是有效的。问题是,我需要为不同的环境实现自动化,所以我需要一些可以多次启动的东西。在使用terraform导入之前,我可以验证资源是否存在。编写一些为您生成代码的包装器?否则您可以尝试,它可以根据现有资源生成TF代码。好的,我试试。谢谢