Vip*_*rma 4 amazon-web-services node.js amazon-dynamodb aws-lambda serverless
我正在使用nodejs,无服务器和AWS dynamodb。我试图创建一个lambda,在其中调用API,获取数据(1000条记录),现在,我想将此数据插入我的dynamodb中。
我为此使用batchWrite并通过创建每个25个json对象的存储桶来使用它。但我收到一个错误:
AccessDeniedException: <Username> is not authorized to perform dynamodb BatchWriteItem on resource <table-name>
当我不使用batchWrite和单独的PUT操作执行相同操作时,它可以正常工作(但我需要使用批处理,因为这会导致吞吐量超出错误)。
我已将AWS中的所有管理权限授予了我与无服务器一起使用的用户。
在serverless.yml文件中,您应该添加一个新角色
- Effect: Allow
Action:
- dynamodb:DescribeTable
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
- dynamodb:BatchWriteItem
Resource: "arn:aws:dynamodb:${self:custom.region}:*:table/*"
Run Code Online (Sandbox Code Playgroud)
以下是我在使用 Amplify CLI 项目时的设置方式:
{
"Effect": "Allow",
"Action": [
"dynamodb:PutItem",
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:UpdateItem",
"dynamodb:BatchWriteItem",
"dynamodb:Scan"
],
"Resource": "arn:aws:dynamodb:*:*:table/*"
},
{
"Effect": "Allow",
"Action": "dynamodb:Query",
"Resource": "arn:aws:dynamodb:*:*:table/*/index/*"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |