Lambda 和 DynamoDB:无权执行:dynamodb:Scan

Lambda and DynamoDB : is not authorized to perform: dynamodb:Scan

在将 API 部署到 lambda 之后,我使用无服务器创建了 API,我们尝试通过网关中的 "Test" 按钮测试端点API,我收到错误:

"User: arn:aws:sts::245912153055:assumed-role/pets-service-dev-us-east-1-lambdaRole/pets-service-dev-listPets is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:us-east-1:245912153055:table/Pets"

我可能需要授予 Lambda 权限,但我有点迷路了......

如前所述,您需要将权限添加到您的无服务器定义中。

关于这个主题的文档非常广泛: serverless IAM guide

在您的情况下,您可能只需要向 serverless.yml 添加类似以下权限的内容。

provider:
  iamRoleStatements:
    -  Effect: "Allow"
       Action:
         - "dynamodb:Scan"
       Resource: "arn:aws:dynamodb:us-east-1:245912153055:table/Pets"

我来晚了一点,但它仍然可以帮助别人知道目前(2019 年 3 月)在创建 lambda 时使用 nodejs vs 8.10 似乎有问题。添加所有必要的权限仍然会导致上述错误。一个简单的解决方法是暂时使用较低的 nodejs 版本。希望问题尽快得到解决