![](/img/trans.png)
[英]How to reference a zip file uploaded in an s3 bucket in your terraform lambda code?
[英]How to reference handler in Terraform for a Lambda on S3
我的 lambda 位于 S3 上的 zip 存档中,并且我已在 AWS 上部署了 lambda 和 ZDB974ZA 网关。
这是我的项目根文件夹中的内容:
index.js
(入口点)package.json
README.md
node_modules
build.sh
(执行npm install
和zip -r project-folder.
) index.js
是入口点,在文件中,我使用https://github.com/spring-media/aws-lambda-router来处理路由:
exports.handler = router.handler({
proxyIntegration: {
routes: [
<routes_defined>
]
}
})
在下面的 terraform 基础架构中(为简单起见,编辑了许多资源参数),我正在使用模块创建 lambda 资源,并将处理程序输入为index.handler
并引用我的 S3 存储桶。 所有其他资源都与 API 网关以及网关与 lambda 之间的权限相关:
module "module_name" {
handler = "index.handler"
s3_bucket = <references_s3_bucket>
}
resource "aws_api_gateway_rest_api" "api_gateway"
resource "aws_api_gateway_rest_api_policy" "api_gateway_policy"
resource "aws_api_gateway_resource" "proxy"
resource "aws_lambda_permission" "allow_api_gateway"
resource "aws_api_gateway_method" "proxy"
resource "aws_api_gateway_integration" "api_gateway_integration"
resource "aws_api_gateway_deployment" "api_gateway_deploy"
resource "aws_api_gateway_stage" "api_gateway_stage"
resource "aws_api_gateway_api_key" "api_gateway_key"
resource "aws_api_gateway_usage_plan" "api_gateway_usage_plan"
resource "aws_api_gateway_usage_plan_key" "api_gateway_usage_plan_key"
现在这在部署时并没有显示任何错误,直到我在我的 AWS 控制台上实际测试了 API 网关。 当我向 API 网关发出请求时,它响应错误index.js is undefined or not exported
exports 。 似乎是什么问题? 我已确保index.js
位于此问题中所述的根文件夹中: 索引处理程序未定义或未导出
哦,好吧,我认为index.handler
的设置是正确的,我只是错过了我们设置别名的部分,并且我的正确版本没有设置为活动。 一旦我将我的版本提升到活动版本,一切都会正常工作:D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.