如何在serverless.yml中将DynamoDB流引用为Lambda函数触发器事件?

6

我正在使用Serverless框架来部署我的AWS Lambda函数。我有一个serverless.yml文件,声明了我的所有资源和函数。

例如:


...
resources:
  Resources:
    MyTable:
      Type: AWS::DynamoDB::Table
      Properties:
        TableName: my-table
        AttributeDefinitions:
          -
            AttributeName: "id"
            AttributeType: "S"
        KeySchema:
          -
            AttributeName: "id"
            KeyType: "HASH"
        ProvisionedThroughput:
          ReadCapacityUnits: "5"
          WriteCapacityUnits: "5"
        StreamSpecification:
          StreamViewType: NEW_AND_OLD_IMAGES
    ...      
...
my-handler:
    ...
    events:
      - stream:
          type: dynamodb
          arn: ...

我的Lambda函数是从DynamoDB流触发的。那么在事件定义中,我如何引用"MyTable"的DynamoDB流而不是硬编码它的ARN?

1个回答

5

您可以像这样使用 AWS CloudFormation 内在函数:

events:
  - stream:
      type: dynamodb
      arn:
        Fn::GetAtt: [ MyTable, StreamArn ]

1
你在哪里定义 StreamArn? - Vingtoft
1
@Vingtoft,你不需要自己定义 StreamArn,它是 CloudFormation 的输出值。 - Ivan Borisov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接