尝试向Lambda函数添加多个角色时,“ iamRoleStatements应该是对象的数组”

时间:2018-12-21 13:02:47

标签: amazon-web-services serverless-framework

我正尝试为我的Lambda函数添加2个角色,但出现此错误:

iamRoleStatements应该是一个对象数组,其中每个对象都有“效果”,“操作”和“资源”字段。具体来说,语句1缺少以下属性:资源

我的代码:

InsertImageDB:
  handler: index.lambda_handler
  module: InsertImageDB
  iamRoleStatements:
    - Effect: "Allow"
      Action:
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:UpdateItem
        - dynamodb:GetItem
        - dynamodb:PutItem
      Resource:
        Fn::GetAtt:
          - imageLibraryTable
          - Arn

    - Effect: "Allow"
      Action:
        - sns:*
      Ressource:
        Ref: DetectLabelTopic

请注意,我正在使用 serverless-iam-roles-per-function ,该功能可以向每个功能添加单独的角色。

1 个答案:

答案 0 :(得分:0)

我相信您的问题是,您正在无服务器框架intrinsic functions中使用Cloudformation function section

特别是:

Resource:
    Fn::GetAtt:
      - imageLibraryTable
      - Arn

Ressource:
    Ref: DetectLabelTopic

您不想在这里使用intrinsic functions,而是使用无服务器variables的ARN

role names中检出serverless-iam-roles-per-function docs