Amazon s3 Terraform s3事件通知错误

Amazon s3 Terraform s3事件通知错误,amazon-s3,amazon-sns,terraform,Amazon S3,Amazon Sns,Terraform,我在尝试创建s3事件通知时遇到问题。有人知道这件事的解决方案吗 错误是: *Error applying plan: 1 error(s) occurred: * module.Test-S3-Bucket.aws_s3_bucket_notification.s3-notification: 1 error(s) occurred: * aws_s3_bucket_notification.s3-notification: Error putting S3 notification confi

我在尝试创建s3事件通知时遇到问题。有人知道这件事的解决方案吗

错误是:

*Error applying plan:
1 error(s) occurred:
* module.Test-S3-Bucket.aws_s3_bucket_notification.s3-notification: 1 error(s) occurred:
* aws_s3_bucket_notification.s3-notification: Error putting S3 notification configuration: InvalidArgument: Unable to validate the following destination configurations
status code: 400, request id: AD9B5BF2FF84A6CB, host id: ShUVJ+TdkpqAZfpeDM3grkF9Vue3Q/AF0LydchperKTF6XdQyDM6BisZi/38pGAh/ZqS+gNyrSM=*
下面是给出错误的代码:

resource "aws_s3_bucket" "s3-bucket" {
  bucket = "${var.bucket_name}"
  acl    = ""

  lifecycle_rule {
    enabled = true
    prefix  = ""

    expiration {
      days = 45
    }
  }

  tags {
    CostC = "${var.tag}"
  }
}


resource "aws_s3_bucket_notification" "s3-notification" {

  bucket = "${var.bucket_name}"

  topic {
    topic_arn     = "arn:aws:sns:us-east-1:1223445555:Test"
    events        = [ "s3:ObjectCreated:*", "s3:ObjectRemoved:*" ]
    filter_prefix = "test1/"
  }
}

如果您还没有这样做,您需要在主题上指定一个策略,将
SNS:Publish
权限授予S3(仅从
条件
属性中指定的bucket)-如果您也通过Terraform设置主题,那么类似的操作应该可以完成(我们知道,就在几天前,它还把我们抓了出来!):

资源“aws\U sns\U主题”“我的sns主题”{
name=“测试”

policy=好吧,我知道这不是你的真实情况,但我也犯了同样的错误,我没有在这里找到答案,因为这篇文章是谷歌给我的第一篇文章,我将把我的案例的答案留在这里,希望它能帮助其他人

因此,我注意到Terraform应用后,我出现了这个错误,我去UI查看发生了什么,并发现了以下消息:

Lambda控制台无法验证此触发器的一个或多个事件源。最常见的原因是源ARN包含通配符(*)字符。您可以使用AWS CLI或AWS SDK管理未验证的触发器

你猜怎么着?我在ARN中确实有一个通配符(*)字符,如下所示:

source_arn = "{aws_s3_bucket.bucket.arn}/*"
所以我把它改成:

source_arn = aws_s3_bucket.bucket.arn

因此,如果您阅读本文,您的案例中可能会出现相同的错误。

正如我在您的另一个问题中所解释的,错误与中描述的问题有关,如果您无法按照该文档中的解决方案进行操作,请联系AWS寻求帮助。
source_arn = aws_s3_bucket.bucket.arn