【发布时间】:2020-09-04 15:04:20
【问题描述】:
尝试将 Express NodeJS 应用程序部署到 AWS Lambda 时出现以下错误。
ServerlessError: Forbidden
at /Users/name/.nvm/versions/node/v12.16.3/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:331:27
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
检测到问题的命令是SLS_DEBUG=1 serverless deploy
serverless.yml
service: mail-server
provider:
name: aws
runtime: nodejs12.16
stage: dev
region: ap-southeast-1
memorySize: 128
functions:
app:
handler: app/app.handler
events:
- http:
path: /
method: ANY
cors: true
- http:
path: /{proxy+}
method: ANY
cors: true
我一直在关注这个教程:https://bitbucket.org/blog/deploy-an-express-js-app-to-aws-lambda-using-the-serverless-framework
以下是分配的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1482712489000",
"Effect": "Allow",
"Action": [
"iam:CreateRole",
"iam:PutRolePolicy",
"lambda:CreateFunction",
"lambda:InvokeAsync",
"lambda:InvokeFunction",
"iam:PassRole",
"lambda:UpdateAlias",
"lambda:CreateAlias",
"lambda:GetFunctionConfiguration",
"lambda:AddPermission",
"lambda:UpdateFunctionCode",
"s3:ListBucket"
],
"Resource": [
"*"
]
}
]
}
【问题讨论】:
-
这看起来像是本地操作系统错误,而不是 Lambda 中的任何内容。该文件和父目录是否存在于本地文件系统上,如果存在,权限是什么?
标签: node.js aws-lambda serverless