我正在尝试使用 Netlify 和 AWS。我已从此处的官方无服务器站点下载了一个示例 REST API 预设。serverless deploy
该站点在包含路由后在本地工作create
,用于将新的 todo 元素添加到数据库中(亚马逊上的 API 网关显示没有问题)
我想测试它如何在 netlify 上工作,所以我从文件中创建了一个 bitbucket 存储库并将其上传到 netlify 服务器。从一开始,就有一些小问题。例如,未提供声称TableName
在代码中创建的错误process.env.DYNAMODB_TABLE
。将值替换为字段的值后,我收到一条错误消息
{用户:arxxxx:assumed-role/aws-lambda-execute/xxx 无权执行:dynamodb:PutItem on resource:arn:aws:dynamodb:us-xxx-1:xxx:table/serverless-rest-api- with-dynamodb-dev","code":"AccessDeniedException","time":"xxx","requestId":"xxx","statusCode":400,"retryable":false,"retryDelay":30.76949318814495}
该问题表明我的无服务器参数错误,但是我确实设置了权限:
provider:
name: aws
runtime: nodejs6.10
environment:
DYNAMODB_TABLE: ${self:service}-${opt:stage, self:provider.stage}
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.DYNAMODB_TABLE}"
当数据是本地的时,一切似乎都可以正常工作。
有没有人遇到过这样的问题?