【问题标题】:How can I reference to DynamoDB stream as Lambda function trigger event in the serverless.yml?如何在 serverless.yml 中将 DynamoDB 流引用为 Lambda 函数触发事件?
【发布时间】:2020-01-11 06:57:11
【问题描述】:

我正在使用无服务器框架来部署我的 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 流触发的。那么在事件定义中,如何在不对其 ARN 进行硬编码的情况下引用“MyTable”的 DynamoDB 流?

【问题讨论】:

    标签: amazon-web-services lambda amazon-dynamodb serverless-framework


    【解决方案1】:

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

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

    【讨论】:

    • 你在哪里定义 StreamArn?
    • @Vingtoft 您没有自己定义 StreamArn,它是 CloudFormation 输出值。
    猜你喜欢
    • 2020-02-27
    • 2018-11-11
    • 2019-08-02
    • 2018-08-29
    • 2020-09-11
    • 1970-01-01
    • 2021-12-28
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多