Amazon web services S3未能触发aws lambda,无错误
嗨,我想在任何*.csv文件上传上从s3存储桶触发lambda函数。 我的lambda很好,我可以运行它。 但似乎当我上传csv到s3时,lambda没有被触发。 下面是我的s3 bucket通知的代码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
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}"
}