【发布时间】:2021-01-14 03:01:05
【问题描述】:
我在TerraForm 中有以下 lambda 函数配置:
resource "aws_lambda_function" "test_lambda" {
# filename = "crawler/dist/deploy.zip"
s3_bucket = "${var.s3-bucket}"
s3_key = "${aws_s3_bucket_object.file_upload.key}"
# source_code_hash = "${filebase64sha256("file.zip")}"
function_name = "quote-crawler"
role = "arn:aws:iam::773592622512:role/LambdaRole"
handler = "handler.handler"
source_code_hash = "${data.archive_file.zipit.output_base64sha256}"
runtime = "${var.runtime}"
timeout = 180
environment {
variables = {
foo = "bar"
}
}
}
当我运行 lambda 时,当它尝试将文件上传到 s3 存储桶时出现错误 "errorMessage": "An error occurred (AccessDenied) when calling the PutObject operation: Access Denied",。似乎 lambda 函数没有访问 s3 的权限。 TerraForm doc 不清楚如何配置它们。权限配置面板也不会出现在lambda console 上。 TerraForm 创建的 lambda 似乎对我的使用配置有限。那么如何将 s3 权限授予 lambda?
【问题讨论】:
标签: amazon-s3 aws-lambda terraform