繁体   English   中英

使用 CDK 使 DynamoDB 表成为 Kinesis Data Stream 的消费者

[英]Make DynamoDB table a consumer for Kinesis Data Stream using CDK

我想在 Kinesis Data Stream 上启用增强型扇出,并使用 CDK 使 DynamoDB 成为消费者。 我发现CfnStreamConsumer构造可以使用 Kinesis 数据 stream 注册消费者,但我不知道如何连接 dynamodb 表,因为该构造只接受 kinesis stream arn。

我看过有人将 CfnStreamConsumer 与EventSourceMapping一起使用的帖子,但目标是 lambda。

有谁知道如何使 DynamoDB 表成为 Kinesis Data Stream 的使用者?

代码:

const eventStream = new kinesis.Stream(...)

new dynamoDb.Table(this, 'table', {
  tableName: `event-lease`,
  billingMode: dynamoDb.BillingMode.PROVISIONED,
  readCapacity: 10,
  writeCapacity: 10,
  partitionKey: { name: 'leaseKey', type: dynamoDb.AttributeType.STRING }
});

const streamConsumer = new kinesis.CfnStreamConsumer(this, 'stream-consumer', {
  consumerName: `event-lease`,
  streamArn: eventStream.streamArn
});

const kinesisConsumerPolicyStmt = new PolicyStatement({
  resources: [streamConsumer.attrConsumerArn],
  actions: ['kinesis:SubscribeToShard'],
});

DynamoDB 不能是 Kinesis Data Stream 的消费者,它只能是生产者。

如果您希望您的事件进入 DynamoDB,那么您应该从 stream 到 Lambda 并从那里插入事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM