typescript 在aws-cdk TS文件中创建一个documentDB集群,并使用EventSourceMapping将其作为事件源

wwodge7n  于 2023-03-31  发布在  TypeScript
关注(0)|答案(1)|浏览(148)

我有一个cdk(2.61版本)应用程序与CRUD Lambdas,一个documentDB集群和一个appsync API。我必须在同一个documentDB数据库中注册来自lambdas正在执行的CRUD操作的流事件。我从documentDB数据库中启用了流事件,但现在我我必须将集群配置为lambda的事件源,lambda将接受这些流并注册它的事件。lambda库的构造EventSource没有DocumentDB选项,所以我我使用EventSourceMapping,如果我理解得很好,它允许使用任何AWS服务作为事件源。

const lambdaRecordChangeStreams = new lambda.Function(this, `lambda-record_change_stream`, {
      code: lambda.Code.fromAsset(
        path.join(__dirname, '../backend/controllers/lambda-record_change_stream'),
      ),
      functionName: `lambda-record_change_stream`,
      layers: [mongooseLayer],
    }); 

const clusterStreamEventSource = new lambda.EventSourceMapping(this, `stream_event_source`,     {
       eventSourceArn: `arn:aws:rds:${region}:${env?.account}:cluster:${cluster.clusterIdentifier}`,
        target: lambdaRecordChangeStreams,
      },
    );

当我尝试部署它时,我得到了错误:“提供的请求无效:无效参数:databaseName,documentDBEventSourceConfig”。
我看到在cdk文档中有一个对象:“CfnEventSourceMapping”,它可以将集群docdb配置为props中的事件源,属性DocumentDbEventSourceConfig,但当我尝试实现它时,我得到了一个错误,该属性不存在。所以我现在卡住了。
如果你能帮我,那就太好了!

fkaflof6

fkaflof61#

看起来L1 CfnEventSourceMapping构造是您目前唯一的选择。请参阅documentDbEventSourceConfig prop。
有关先决条件和权限的信息,请参阅Lambda文档。DocumentDB文档列出了其他considerations
将️CDK更新到最新版本。您的CDK v2.61是在1月份发布的,比Lambda支持DocumentDB变更流的事件源announced早一个月。

相关问题