当前位置: 首页 > 知识库问答 >
问题:

如何使用serverless.yml使用通用DynamoDB流触发aws lambda函数

漆雕彬彬
2023-03-14

我试图触发一个lambda函数,在多个表上使用无服务器的dynamodb流。yml配置。可以在aws serverless.yml的触发器上配置通用arn吗。

有dynamodb表req\u tnt1、req\u tnt2、req\u tnt2…等等。每当req\u tnt*表更新时,我都会触发lambda并将信息存储在elasticsearch中以进行自由文本搜索。我能够处理触发lambda和更新弹性搜索的单个表,但我在为所有表启用lambda触发器(req\u tnt*)时面临问题。

共有1个答案

从烈
2023-03-14

不幸的是,这里不可能使用通配符。

在Serverless中将流定义为Lambda输入会导致如下的CloudFormation:

"MyLambdaEventSourceMappingDynamodbOrdersTable": {
      "Type": "AWS::Lambda::EventSourceMapping",
      "DependsOn": "MyLambdaIamRoleLambdaExecution",
      "Properties": {
        "BatchSize": 10,
        "EventSourceArn": {
          "Fn::GetAtt": [
            "OrdersTable",
            "StreamArn"
          ]
        },
        "FunctionName": {
          "Fn::GetAtt": [
            "MyLambdaLambdaFunction",
            "Arn"
          ]
        },
        "StartingPosition": "TRIM_HORIZON",
        "Enabled": "True",
        "MaximumBatchingWindowInSeconds": 60
      }
    },

类型为AWS::Lambda::EventSourceMapping的资源根据文档使用属性EventSourceArn指定单个源。

您可以通过编写另一个Lambda函数以编程方式添加新的事件源映射,该函数在创建新表时将CloudWatch事件作为其输入,然后将该表的EventSourceMapping添加到Lambda函数中。

这可能会有缩放限制,因为每个Lambda的事件源映射的数量很可能是有限的(尽管我找不到这个数字)。

 类似资料:
  • 我目前有一个AWS DynamoDB流触发一个Lambda函数。 Lambda函数由DynamoDB中的插入和更新事件触发。是否有办法更改配置,使Lambda函数仅由“insert”触发?

  • 我已经启用了我的表的DynamoDB Streaming,并且有两个lambda与之关联。每当DynamoDB表中发生变化时,这两个触发器都通过Dynamo触发器。 问题:两个Lambda相应地将数据插入到两个RDS表中。就像λ1插入表1和λ2插入表2一样。表1主键是表2中的外键。 因此,每当两个lambda都触发lambda two首先完成执行时,它会显示外键约束错误,因为lambda two试

  • 我正在尝试使用DynamoDB流和AWS Lambda创建DynamoDB触发器。我做了很多研究,但在Java 8中找不到任何读取和处理DynamoDB流事件的方法。我对这两种技术都是新手,所以不知道如何使用它。 本质上,我想做的是每当在表A中创建记录时,都在表B中创建一条记录。 你们谁能给我指出一个在Java中处理这个用例的代码或帖子吗? 谢谢:)

  • 我已经使用以下serverless.yml创建了Dynamodb表: 但我有一个问题: 出现错误:myTable-一个或多个参数值无效:KeySchema中的属性数与AttributeDefinitions中定义的属性数不完全匹配(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求ID:PEI9OT7E72HQN4N5MQUOIUQ18

  • 是否存在防止DynamoDB流在每次DynamoDB更改时触发λ的方法? 这些数字并不准确,但是假设step函数将连续运行10次,那么它将更新DynamoDB 3次。在step函数触发lambda之前,这是调用lambda的30倍。有什么方法可以阻止这些lambda调用吗?

  • 这是我的模板名为admin的代码。html: 如前所述,我得到了10个函数,这些函数可以读取多个。csv报告并将数据上传到模型中,我使用URL部分触发它们。在我看来。py我将展示两个示例: