无服务器动态引擎流和触发器

jta*_*jta 4 amazon-dynamodb serverless-framework serverless

我已经搜寻了很多东西,无法在我的一生中陷入无服务器状态,无法设置一个dynamodb触发器。

我用过:

- stream:
        type: dynamodb
        batchSize: 100
        enabled: true
        arn: 
          Fn::GetAtt:
            - MyDynamoDbTable
            - StreamArn
Run Code Online (Sandbox Code Playgroud)

我尝试了一个硬编码的arn,但没有发生任何可以在aws控制台中看到的事件。我是无服务器新手。如果您有任何指针,请发表。

小智 8

有关如何在serverless.yml中配置dynamodb流的示例

   functions:  
      dynamodb-trigger:
        handler: yourfunction.handler
        events:
          - stream:
              type: dynamodb
              batchSize: 1
              startingPosition: LATEST
              arn:
                Fn::GetAtt:
                  - MyDynamoDbTable
                  - StreamArn
        iamRoleStatements:
          - Effect: Allow
            Action: 
              - dynamodb:ListStreams
              - dynamodb:DescribeTable
              - dynamodb:UpdateItem
              - dynamodb:GetItem
            Resource: 
            - "Fn::Join": ["", ["arn:aws:dynamodb:" , {"Ref": "AWS::Region"}, ":", {"Ref": "AWS::AccountId"} , ":table/${self:provider.environment.MFA_DYNAMODB_TABLE}"] ]

    resources:
      Resources:
        MyDynamoDbTable:
          Type: 'AWS::DynamoDB::Table'
          DeletionPolicy: Delete
          Properties:
            AttributeDefinitions:
              -
                AttributeName: id
                AttributeType: S
            KeySchema:
              -
                AttributeName: id
                KeyType: HASH
            ProvisionedThroughput:
              ReadCapacityUnits: 1
              WriteCapacityUnits: 1
            TableName: ${self:provider.environment.MFA_DYNAMODB_TABLE}
            StreamSpecification:
              StreamViewType: NEW_IMAGE
Run Code Online (Sandbox Code Playgroud)