Skip to content

Commit d7e6a10

Browse files
authored
fix(events_targets): kinesisfirehosestream not accepting ideliverystream for imported deliverystream (#30189)
### Issue # (if applicable) Closes #25451 ### Reason for this change Current events targets implementation only support L1 Delivery Stream as the input. We should support L2 IDeliveryStream as well for imported kinesis firehose stream. ### Description of changes Add a V2 class to support kinesis firehose stream. ### Description of how you validated changes New tests and existing tests pass. ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
1 parent c7c75f8 commit d7e6a10

12 files changed

+1150
-0
lines changed

packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"devDependencies": {
8484
"@aws-cdk/cdk-build-tools": "0.0.0",
8585
"@aws-cdk/integ-runner": "0.0.0",
86+
"@aws-cdk/integ-tests-alpha": "0.0.0",
8687
"@aws-cdk/pkglint": "0.0.0",
8788
"@types/jest": "^29.5.12",
8889
"aws-cdk-lib": "0.0.0",

packages/@aws-cdk/aws-kinesisfirehose-alpha/test/delivery-stream.test.ts

+37
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import * as ec2 from 'aws-cdk-lib/aws-ec2';
44
import * as iam from 'aws-cdk-lib/aws-iam';
55
import * as kinesis from 'aws-cdk-lib/aws-kinesis';
66
import * as kms from 'aws-cdk-lib/aws-kms';
7+
import * as events from 'aws-cdk-lib/aws-events';
8+
import * as targets from 'aws-cdk-lib/aws-events-targets';
79
import * as cdk from 'aws-cdk-lib';
810
import { Construct, Node } from 'constructs';
911
import * as firehose from '../lib';
@@ -58,6 +60,41 @@ describe('delivery stream', () => {
5860
});
5961
});
6062

63+
test('creates stream with events target V2 class', () => {
64+
const stream = new firehose.DeliveryStream(stack, 'DeliveryStream', {
65+
destinations: [mockS3Destination],
66+
});
67+
68+
new events.Rule(stack, 'rule', {
69+
eventPattern: {
70+
source: ['aws.s3'],
71+
detail: {
72+
eventName: ['PutObject'],
73+
},
74+
},
75+
}).addTarget(new targets.KinesisFirehoseStreamV2(firehose.DeliveryStream.fromDeliveryStreamArn(stack, 'firehose', stream.deliveryStreamArn)));
76+
77+
Template.fromStack(stack).hasResourceProperties('AWS::Events::Rule', {
78+
Targets: [
79+
{
80+
Arn: {
81+
'Fn::GetAtt': [
82+
'DeliveryStream58CF96DB',
83+
'Arn',
84+
],
85+
},
86+
Id: 'Target0',
87+
RoleArn: {
88+
'Fn::GetAtt': [
89+
'firehoseEventsRole71BC7157',
90+
'Arn',
91+
],
92+
},
93+
},
94+
],
95+
});
96+
});
97+
6198
test('provided role is set as grant principal', () => {
6299
const role = new iam.Role(stack, 'Role', {
63100
assumedBy: new iam.ServicePrincipal('firehose.amazonaws.com'),

packages/@aws-cdk/aws-kinesisfirehose-alpha/test/integ.kinesis-stream-events-target.js.snapshot/aws-cdk-firehose-delivery-stream.assets.json

+19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)