AWS CDK中哪个类可配置Kinesis Delivery Stream动态分区
解决方案
AWS CDK 的 CfnDeliveryStream 原生支持S3目标端的动态分区配置,你需要在现有s3DestinationConfiguration配置基础上补充动态分区开关、数据处理规则、动态分区前缀规则三个部分即可,完整实现示例如下:
new CfnDeliveryStream(this, `Export-delivery-stream`, { s3DestinationConfiguration: { bucketArn: bucket.bucketArn, roleArn: kinesisFirehoseRole.roleArn, // 前缀加入动态分区键,格式为 !{自定义分区键名} prefix: `test/!{timestamp:yyyy/MM/dd}/!{event_source}/!{event_region}/`, errorOutputPrefix: `firehose-error/!{timestamp:yyyy/MM/dd}/`, // 开启动态分区 dynamicPartitioningConfiguration: { enabled: true, retryOptions: { durationInSeconds: 300 } }, // 配置数据处理,从EventBridge事件中提取分区键 processingConfiguration: { enabled: true, processors: [ { type: "JQ", parameters: [ { parameterName: "Expression", // 示例:从EventBridge事件中提取source和region字段作为分区键,根据你的实际事件结构调整 parameterValue: "{partitionKeyFromQuery: {event_source: .source, event_region: .region}}" } ] } ] } } });
关键配置说明
- 动态分区开关:
dynamicPartitioningConfiguration.enabled设为true即可启用动态分区功能,可通过retryOptions配置分区失败的重试时长 - 分区键提取规则:
processingConfiguration中使用内置JQ处理器(无需额外部署Lambda)从EventBridge事件载荷提取字段作为分区键,你可以根据自身业务的事件结构调整JQ表达式 - 分区前缀规则:前缀中使用
!{partitionKey名称}的格式引用你提取的分区键,同时支持保留原有的时间戳内置变量 - 权限注意:你使用的kinesisFirehoseRole需要附加Firehose基础操作权限,若使用自定义Lambda做分区键提取还需要附加Lambda调用权限
内容的提问来源于stack exchange,提问作者saif
相关产品推荐
相关产品推荐

