Amazon web services S3未能触发aws lambda,无错误

Amazon web services S3未能触发aws lambda,无错误,amazon-web-services,amazon-s3,aws-lambda,terraform,Amazon Web Services,Amazon S3,Aws Lambda,Terraform,嗨,我想在任何*.csv文件上传上从s3存储桶触发lambda函数。 我的lambda很好,我可以运行它。 但似乎当我上传csv到s3时,lambda没有被触发。 下面是我的s3 bucket通知的代码 resource "aws_s3_bucket" "myfirst-s3-bucket" { bucket = "myfirst-s3-bucket" } resource "aws_s3_bucket_notification" "bucket_notification" { buc

嗨,我想在任何*.csv文件上传上从s3存储桶触发lambda函数。 我的lambda很好,我可以运行它。 但似乎当我上传csv到s3时,lambda没有被触发。 下面是我的s3 bucket通知的代码

resource "aws_s3_bucket" "myfirst-s3-bucket" {
  bucket = "myfirst-s3-bucket"
}

resource "aws_s3_bucket_notification" "bucket_notification" {
  bucket = "${aws_s3_bucket.myfirst-s3-bucket.id}"

  lambda_function {
    lambda_function_arn = "${aws_lambda_function.lambda.arn}"
    events              = ["s3:ObjectCreated:*"]
    filter_suffix       = ".jpg"
  }
}
resource "aws_lambda_permission" "perme_bucket" {
  statement_id  = "AllowExecutionFromCloudWatch"
  action        = "lambda:InvokeFunction"
  function_name = "${aws_lambda_function.lambda.arn}"
  principal     = "s3.amazonaws.com"
  source_arn    = "${aws_s3_bucket.myfirst-s3-bucket.arn}"
}
  • 我认为如果您想从S3 bucket触发它,您应该使用
    AllowExecutionFromS3Bucket
    ,而不是
    AllowExecutionFromCloudWatch
  • 另外,
    filter\u后缀
    用于
    jpg
    ,我想您需要
    .csv

  • 请在github上找到有用的代码


语句\u id
只是一个描述性字段,它与它的功能无关。其他字段都是重要的位,都很好,所以这不是这里的问题,即使乍看起来很混乱。
resource "aws_lambda_permission" "perme_bucket" {
 statement_id  = "AllowExecutionFromS3Bucket"
 action        = "lambda:InvokeFunction"
 function_name = "${aws_lambda_function.lambda.arn}"
 principal     = "s3.amazonaws.com"
 source_arn    = "${aws_s3_bucket.myfirst-s3-bucket.arn}"
}