我正在尝试与Netlify和AWS接触。我已经从official serverless site here下载了一个示例REST API预设。
该网站在serverless deploy
(包括create
路由)之后在本地工作,用于向数据库中添加新的todo元素(Amazon上的API网关未显示任何问题)
我想测试一下它在netlify上如何工作,所以我从文件创建了一个bitbucket存储库,并将其上传到netlify服务器中。
从一开始,就存在一些小问题。例如错误,声称没有提供从TableName
创建代码的process.env.DYNAMODB_TABLE
。
将值替换为字段的值后,出现错误消息
{用户:arxxxx:assumed-role / aws-lambda-execute / xxx未经授权执行:dynamodb:PutItem在资源上: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}"
当数据是本地数据时,一切似乎都可以正常工作。
有人遇到过这样的问题吗?