AWS SAM YAML - 多次附加相同的策略,或在同一 DynamoDB 策略上附加多个表

spa*_*nky 2 yaml amazon-web-services aws-cloudformation aws-lambda aws-sam

无法让角色访问两个表。template.yaml 的 YAML 示例:

Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: path/to/something
      Handler: index.handler
      Runtime: nodejs10.x
      Events:
        Get:
          Type: Api
          Properties:
            RestApiId: !Ref MyApi
            Path: /path/to/other/thing
            Method: post
      Policies:
        DynamoDBCrudPolicy:
          TableName:
            table1
            table2
Run Code Online (Sandbox Code Playgroud)

我需要这个函数能够在 table1 和 table2 上读/写,但这不起作用。我试过:

- table1
- table2
Run Code Online (Sandbox Code Playgroud)

但这也行不通。还尝试过:

Policies:
  - DynamoDBCrudPolicy:
    TableName:
      table1
  - DynamoDBCrudPolicy:
    TableName:
      table2
Run Code Online (Sandbox Code Playgroud)

但这也会出错。我该如何正确地做到这一点?

Mad*_*deo 5

你有什么错误?看起来您错过了 的缩进TableName,请尝试以下操作:

Policies:
 - DynamoDBCrudPolicy: 
     TableName: table1
 - DynamoDBCrudPolicy: 
     TableName: table2
Run Code Online (Sandbox Code Playgroud)

PS:我可以将其写入注释中,但代码格式不正确

  • 这就是它所做的。我不是 YAML 专家。如果您编辑您的以将第一个“-DynamoDBCrudPolicy”一直向左对齐,我可以接受答案。所以基本上,我需要将“-”放在“策略”中的“P”下,然后将“TableName:”行缩进 4 个空格,这样就成功了。 (2认同)