【发布时间】:2019-02-26 03:47:29
【问题描述】:
我正在尝试编写要使用 S3 触发的 lambda 函数。 Lambda 函数创建成功,但“aws_s3_bucket_notification”资源在terraform:apply 失败,MethodNotAllowed 错误,status code 405:
Error: Error applying plan:
20-Sep-2018 15:23:53 1 error(s) occurred:
20-Sep-2018 15:23:53 * aws_s3_bucket_notification.my-trigger: 1 error(s) occurred:
20-Sep-2018 15:23:53 * aws_s3_bucket_notification.my-trigger: Error putting S3 notification configuration: MethodNotAllowed: The specified method is not allowed against this resource.
20-Sep-2018 15:23:53 status code: 405, request id:<hidden>, host id:<hidden>
这是我设置通知触发器的代码:
resource "aws_s3_bucket_notification" "my-trigger" {
bucket = "my-bucket"
lambda_function {
lambda_function_arn = "${aws_lambda_function.my-function.arn}"
events = ["s3:ObjectCreated:*"]
filter_prefix = "file-prefix"
filter_suffix = "file-extension"
}
}
这是从 S3 触发 Lambda 的权限:
resource "aws_lambda_permission" "s3-lambda-permission" {
statement_id = "AllowExecutionFromS3Bucket"
action = "lambda:InvokeFunction"
function_name = "${aws_lambda_function.my-function.arn}"
principal = "s3.amazonaws.com"
source_arn = "arn:aws:s3:::my-bucket"
}
提前致谢!
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda terraform