@aws-solutions-constructs/aws-lambda-kinesisstreams 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/.eslintignore +5 -0
  2. package/.jsii +3655 -0
  3. package/README.md +121 -0
  4. package/architecture.png +0 -0
  5. package/lib/index.d.ts +90 -0
  6. package/lib/index.js +64 -0
  7. package/package.json +92 -0
  8. package/test/integ.existingLambda.d.ts +13 -0
  9. package/test/integ.existingLambda.expected.json +232 -0
  10. package/test/integ.existingLambda.js +31 -0
  11. package/test/integ.existingStream.d.ts +13 -0
  12. package/test/integ.existingStream.expected.json +231 -0
  13. package/test/integ.existingStream.js +37 -0
  14. package/test/integ.existingStreamWithCmk.d.ts +13 -0
  15. package/test/integ.existingStreamWithCmk.expected.json +300 -0
  16. package/test/integ.existingStreamWithCmk.js +39 -0
  17. package/test/integ.existingVpc.d.ts +13 -0
  18. package/test/integ.existingVpc.expected.json +1068 -0
  19. package/test/integ.existingVpc.js +34 -0
  20. package/test/integ.newStreamFromProps.d.ts +13 -0
  21. package/test/integ.newStreamFromProps.expected.json +231 -0
  22. package/test/integ.newStreamFromProps.js +34 -0
  23. package/test/integ.newVpc.d.ts +13 -0
  24. package/test/integ.newVpc.expected.json +674 -0
  25. package/test/integ.newVpc.js +31 -0
  26. package/test/integ.newVpcFromProps.d.ts +13 -0
  27. package/test/integ.newVpcFromProps.expected.json +560 -0
  28. package/test/integ.newVpcFromProps.js +34 -0
  29. package/test/integ.noArguments.d.ts +13 -0
  30. package/test/integ.noArguments.expected.json +232 -0
  31. package/test/integ.noArguments.js +30 -0
  32. package/test/lambda/index.mjs +15 -0
  33. package/test/lambda-kinesisstream.test.d.ts +13 -0
  34. package/test/lambda-kinesisstream.test.js +472 -0
@@ -0,0 +1,674 @@
1
+ {
2
+ "Resources": {
3
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3": {
4
+ "Type": "AWS::IAM::Role",
5
+ "Properties": {
6
+ "AssumeRolePolicyDocument": {
7
+ "Statement": [
8
+ {
9
+ "Action": "sts:AssumeRole",
10
+ "Effect": "Allow",
11
+ "Principal": {
12
+ "Service": "lambda.amazonaws.com"
13
+ }
14
+ }
15
+ ],
16
+ "Version": "2012-10-17"
17
+ },
18
+ "Policies": [
19
+ {
20
+ "PolicyDocument": {
21
+ "Statement": [
22
+ {
23
+ "Action": [
24
+ "logs:CreateLogGroup",
25
+ "logs:CreateLogStream",
26
+ "logs:PutLogEvents"
27
+ ],
28
+ "Effect": "Allow",
29
+ "Resource": {
30
+ "Fn::Join": [
31
+ "",
32
+ [
33
+ "arn:",
34
+ {
35
+ "Ref": "AWS::Partition"
36
+ },
37
+ ":logs:",
38
+ {
39
+ "Ref": "AWS::Region"
40
+ },
41
+ ":",
42
+ {
43
+ "Ref": "AWS::AccountId"
44
+ },
45
+ ":log-group:/aws/lambda/*"
46
+ ]
47
+ ]
48
+ }
49
+ }
50
+ ],
51
+ "Version": "2012-10-17"
52
+ },
53
+ "PolicyName": "LambdaFunctionServiceRolePolicy"
54
+ }
55
+ ]
56
+ }
57
+ },
58
+ "testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043": {
59
+ "Type": "AWS::IAM::Policy",
60
+ "Properties": {
61
+ "PolicyDocument": {
62
+ "Statement": [
63
+ {
64
+ "Action": [
65
+ "ec2:CreateNetworkInterface",
66
+ "ec2:DescribeNetworkInterfaces",
67
+ "ec2:DeleteNetworkInterface",
68
+ "ec2:AssignPrivateIpAddresses",
69
+ "ec2:UnassignPrivateIpAddresses"
70
+ ],
71
+ "Effect": "Allow",
72
+ "Resource": "*"
73
+ },
74
+ {
75
+ "Action": [
76
+ "xray:PutTraceSegments",
77
+ "xray:PutTelemetryRecords"
78
+ ],
79
+ "Effect": "Allow",
80
+ "Resource": "*"
81
+ },
82
+ {
83
+ "Action": [
84
+ "kinesis:ListShards",
85
+ "kinesis:PutRecord",
86
+ "kinesis:PutRecords"
87
+ ],
88
+ "Effect": "Allow",
89
+ "Resource": {
90
+ "Fn::GetAtt": [
91
+ "testlambdakinesisstreamsKinesisStream11A82116",
92
+ "Arn"
93
+ ]
94
+ }
95
+ }
96
+ ],
97
+ "Version": "2012-10-17"
98
+ },
99
+ "PolicyName": "testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043",
100
+ "Roles": [
101
+ {
102
+ "Ref": "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"
103
+ }
104
+ ]
105
+ },
106
+ "Metadata": {
107
+ "cfn_nag": {
108
+ "rules_to_suppress": [
109
+ {
110
+ "id": "W12",
111
+ "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC."
112
+ }
113
+ ]
114
+ }
115
+ }
116
+ },
117
+ "testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C": {
118
+ "Type": "AWS::EC2::SecurityGroup",
119
+ "Properties": {
120
+ "GroupDescription": "newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group",
121
+ "SecurityGroupEgress": [
122
+ {
123
+ "CidrIp": "0.0.0.0/0",
124
+ "Description": "Allow all outbound traffic by default",
125
+ "IpProtocol": "-1"
126
+ }
127
+ ],
128
+ "VpcId": {
129
+ "Ref": "Vpc8378EB38"
130
+ }
131
+ },
132
+ "Metadata": {
133
+ "cfn_nag": {
134
+ "rules_to_suppress": [
135
+ {
136
+ "id": "W5",
137
+ "reason": "Egress of 0.0.0.0/0 is default and generally considered OK"
138
+ },
139
+ {
140
+ "id": "W40",
141
+ "reason": "Egress IPProtocol of -1 is default and generally considered OK"
142
+ }
143
+ ]
144
+ }
145
+ }
146
+ },
147
+ "testlambdakinesisstreamsLambdaFunction4348B6E4": {
148
+ "Type": "AWS::Lambda::Function",
149
+ "Properties": {
150
+ "Code": {
151
+ "S3Bucket": {
152
+ "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
153
+ },
154
+ "S3Key": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"
155
+ },
156
+ "Role": {
157
+ "Fn::GetAtt": [
158
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
159
+ "Arn"
160
+ ]
161
+ },
162
+ "Environment": {
163
+ "Variables": {
164
+ "KINESIS_DATASTREAM_NAME": {
165
+ "Ref": "testlambdakinesisstreamsKinesisStream11A82116"
166
+ }
167
+ }
168
+ },
169
+ "Handler": "index.handler",
170
+ "Runtime": "nodejs18.x",
171
+ "TracingConfig": {
172
+ "Mode": "Active"
173
+ },
174
+ "VpcConfig": {
175
+ "SecurityGroupIds": [
176
+ {
177
+ "Fn::GetAtt": [
178
+ "testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C",
179
+ "GroupId"
180
+ ]
181
+ }
182
+ ],
183
+ "SubnetIds": [
184
+ {
185
+ "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
186
+ },
187
+ {
188
+ "Ref": "VpcisolatedSubnet2Subnet39217055"
189
+ },
190
+ {
191
+ "Ref": "VpcisolatedSubnet3Subnet44F2537D"
192
+ }
193
+ ]
194
+ }
195
+ },
196
+ "DependsOn": [
197
+ "testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043",
198
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
199
+ "VpcisolatedSubnet1RouteTableAssociationD259E31A",
200
+ "VpcisolatedSubnet2RouteTableAssociation25A4716F",
201
+ "VpcisolatedSubnet3RouteTableAssociationDC010BEB"
202
+ ],
203
+ "Metadata": {
204
+ "cfn_nag": {
205
+ "rules_to_suppress": [
206
+ {
207
+ "id": "W58",
208
+ "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions."
209
+ },
210
+ {
211
+ "id": "W89",
212
+ "reason": "This is not a rule for the general case, just for specific use cases/industries"
213
+ },
214
+ {
215
+ "id": "W92",
216
+ "reason": "Impossible for us to define the correct concurrency for clients"
217
+ }
218
+ ]
219
+ }
220
+ }
221
+ },
222
+ "testlambdakinesisstreamsKinesisStream11A82116": {
223
+ "Type": "AWS::Kinesis::Stream",
224
+ "Properties": {
225
+ "RetentionPeriodHours": 24,
226
+ "ShardCount": 1,
227
+ "StreamEncryption": {
228
+ "EncryptionType": "KMS",
229
+ "KeyId": "alias/aws/kinesis"
230
+ },
231
+ "StreamModeDetails": {
232
+ "StreamMode": "PROVISIONED"
233
+ }
234
+ }
235
+ },
236
+ "testlambdakinesisstreamsKinesisStreamGetRecordsIteratorAgeAlarmC4A0FF00": {
237
+ "Type": "AWS::CloudWatch::Alarm",
238
+ "Properties": {
239
+ "ComparisonOperator": "GreaterThanOrEqualToThreshold",
240
+ "EvaluationPeriods": 1,
241
+ "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
242
+ "MetricName": "GetRecords.IteratorAgeMilliseconds",
243
+ "Namespace": "AWS/Kinesis",
244
+ "Period": 300,
245
+ "Statistic": "Maximum",
246
+ "Threshold": 43200000
247
+ }
248
+ },
249
+ "testlambdakinesisstreamsKinesisStreamReadProvisionedThroughputExceededAlarm9732E188": {
250
+ "Type": "AWS::CloudWatch::Alarm",
251
+ "Properties": {
252
+ "ComparisonOperator": "GreaterThanThreshold",
253
+ "EvaluationPeriods": 1,
254
+ "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
255
+ "MetricName": "ReadProvisionedThroughputExceeded",
256
+ "Namespace": "AWS/Kinesis",
257
+ "Period": 300,
258
+ "Statistic": "Average",
259
+ "Threshold": 0
260
+ }
261
+ },
262
+ "Vpc8378EB38": {
263
+ "Type": "AWS::EC2::VPC",
264
+ "Properties": {
265
+ "CidrBlock": "10.0.0.0/16",
266
+ "EnableDnsHostnames": true,
267
+ "EnableDnsSupport": true,
268
+ "InstanceTenancy": "default",
269
+ "Tags": [
270
+ {
271
+ "Key": "Name",
272
+ "Value": "newVpc/Vpc"
273
+ }
274
+ ]
275
+ }
276
+ },
277
+ "VpcisolatedSubnet1SubnetE62B1B9B": {
278
+ "Type": "AWS::EC2::Subnet",
279
+ "Properties": {
280
+ "VpcId": {
281
+ "Ref": "Vpc8378EB38"
282
+ },
283
+ "AvailabilityZone": "test-region-1a",
284
+ "CidrBlock": "10.0.0.0/18",
285
+ "MapPublicIpOnLaunch": false,
286
+ "Tags": [
287
+ {
288
+ "Key": "aws-cdk:subnet-name",
289
+ "Value": "isolated"
290
+ },
291
+ {
292
+ "Key": "aws-cdk:subnet-type",
293
+ "Value": "Isolated"
294
+ },
295
+ {
296
+ "Key": "Name",
297
+ "Value": "newVpc/Vpc/isolatedSubnet1"
298
+ }
299
+ ]
300
+ }
301
+ },
302
+ "VpcisolatedSubnet1RouteTableE442650B": {
303
+ "Type": "AWS::EC2::RouteTable",
304
+ "Properties": {
305
+ "VpcId": {
306
+ "Ref": "Vpc8378EB38"
307
+ },
308
+ "Tags": [
309
+ {
310
+ "Key": "Name",
311
+ "Value": "newVpc/Vpc/isolatedSubnet1"
312
+ }
313
+ ]
314
+ }
315
+ },
316
+ "VpcisolatedSubnet1RouteTableAssociationD259E31A": {
317
+ "Type": "AWS::EC2::SubnetRouteTableAssociation",
318
+ "Properties": {
319
+ "RouteTableId": {
320
+ "Ref": "VpcisolatedSubnet1RouteTableE442650B"
321
+ },
322
+ "SubnetId": {
323
+ "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
324
+ }
325
+ }
326
+ },
327
+ "VpcisolatedSubnet2Subnet39217055": {
328
+ "Type": "AWS::EC2::Subnet",
329
+ "Properties": {
330
+ "VpcId": {
331
+ "Ref": "Vpc8378EB38"
332
+ },
333
+ "AvailabilityZone": "test-region-1b",
334
+ "CidrBlock": "10.0.64.0/18",
335
+ "MapPublicIpOnLaunch": false,
336
+ "Tags": [
337
+ {
338
+ "Key": "aws-cdk:subnet-name",
339
+ "Value": "isolated"
340
+ },
341
+ {
342
+ "Key": "aws-cdk:subnet-type",
343
+ "Value": "Isolated"
344
+ },
345
+ {
346
+ "Key": "Name",
347
+ "Value": "newVpc/Vpc/isolatedSubnet2"
348
+ }
349
+ ]
350
+ }
351
+ },
352
+ "VpcisolatedSubnet2RouteTable334F9764": {
353
+ "Type": "AWS::EC2::RouteTable",
354
+ "Properties": {
355
+ "VpcId": {
356
+ "Ref": "Vpc8378EB38"
357
+ },
358
+ "Tags": [
359
+ {
360
+ "Key": "Name",
361
+ "Value": "newVpc/Vpc/isolatedSubnet2"
362
+ }
363
+ ]
364
+ }
365
+ },
366
+ "VpcisolatedSubnet2RouteTableAssociation25A4716F": {
367
+ "Type": "AWS::EC2::SubnetRouteTableAssociation",
368
+ "Properties": {
369
+ "RouteTableId": {
370
+ "Ref": "VpcisolatedSubnet2RouteTable334F9764"
371
+ },
372
+ "SubnetId": {
373
+ "Ref": "VpcisolatedSubnet2Subnet39217055"
374
+ }
375
+ }
376
+ },
377
+ "VpcisolatedSubnet3Subnet44F2537D": {
378
+ "Type": "AWS::EC2::Subnet",
379
+ "Properties": {
380
+ "VpcId": {
381
+ "Ref": "Vpc8378EB38"
382
+ },
383
+ "AvailabilityZone": "test-region-1c",
384
+ "CidrBlock": "10.0.128.0/18",
385
+ "MapPublicIpOnLaunch": false,
386
+ "Tags": [
387
+ {
388
+ "Key": "aws-cdk:subnet-name",
389
+ "Value": "isolated"
390
+ },
391
+ {
392
+ "Key": "aws-cdk:subnet-type",
393
+ "Value": "Isolated"
394
+ },
395
+ {
396
+ "Key": "Name",
397
+ "Value": "newVpc/Vpc/isolatedSubnet3"
398
+ }
399
+ ]
400
+ }
401
+ },
402
+ "VpcisolatedSubnet3RouteTableA2F6BBC0": {
403
+ "Type": "AWS::EC2::RouteTable",
404
+ "Properties": {
405
+ "VpcId": {
406
+ "Ref": "Vpc8378EB38"
407
+ },
408
+ "Tags": [
409
+ {
410
+ "Key": "Name",
411
+ "Value": "newVpc/Vpc/isolatedSubnet3"
412
+ }
413
+ ]
414
+ }
415
+ },
416
+ "VpcisolatedSubnet3RouteTableAssociationDC010BEB": {
417
+ "Type": "AWS::EC2::SubnetRouteTableAssociation",
418
+ "Properties": {
419
+ "RouteTableId": {
420
+ "Ref": "VpcisolatedSubnet3RouteTableA2F6BBC0"
421
+ },
422
+ "SubnetId": {
423
+ "Ref": "VpcisolatedSubnet3Subnet44F2537D"
424
+ }
425
+ }
426
+ },
427
+ "VpcFlowLogIAMRole6A475D41": {
428
+ "Type": "AWS::IAM::Role",
429
+ "Properties": {
430
+ "AssumeRolePolicyDocument": {
431
+ "Statement": [
432
+ {
433
+ "Action": "sts:AssumeRole",
434
+ "Effect": "Allow",
435
+ "Principal": {
436
+ "Service": "vpc-flow-logs.amazonaws.com"
437
+ }
438
+ }
439
+ ],
440
+ "Version": "2012-10-17"
441
+ },
442
+ "Tags": [
443
+ {
444
+ "Key": "Name",
445
+ "Value": "newVpc/Vpc"
446
+ }
447
+ ]
448
+ }
449
+ },
450
+ "VpcFlowLogIAMRoleDefaultPolicy406FB995": {
451
+ "Type": "AWS::IAM::Policy",
452
+ "Properties": {
453
+ "PolicyDocument": {
454
+ "Statement": [
455
+ {
456
+ "Action": [
457
+ "logs:CreateLogStream",
458
+ "logs:PutLogEvents",
459
+ "logs:DescribeLogStreams"
460
+ ],
461
+ "Effect": "Allow",
462
+ "Resource": {
463
+ "Fn::GetAtt": [
464
+ "VpcFlowLogLogGroup7B5C56B9",
465
+ "Arn"
466
+ ]
467
+ }
468
+ },
469
+ {
470
+ "Action": "iam:PassRole",
471
+ "Effect": "Allow",
472
+ "Resource": {
473
+ "Fn::GetAtt": [
474
+ "VpcFlowLogIAMRole6A475D41",
475
+ "Arn"
476
+ ]
477
+ }
478
+ }
479
+ ],
480
+ "Version": "2012-10-17"
481
+ },
482
+ "PolicyName": "VpcFlowLogIAMRoleDefaultPolicy406FB995",
483
+ "Roles": [
484
+ {
485
+ "Ref": "VpcFlowLogIAMRole6A475D41"
486
+ }
487
+ ]
488
+ }
489
+ },
490
+ "VpcFlowLogLogGroup7B5C56B9": {
491
+ "Type": "AWS::Logs::LogGroup",
492
+ "Properties": {
493
+ "RetentionInDays": 731,
494
+ "Tags": [
495
+ {
496
+ "Key": "Name",
497
+ "Value": "newVpc/Vpc"
498
+ }
499
+ ]
500
+ },
501
+ "UpdateReplacePolicy": "Retain",
502
+ "DeletionPolicy": "Retain",
503
+ "Metadata": {
504
+ "cfn_nag": {
505
+ "rules_to_suppress": [
506
+ {
507
+ "id": "W84",
508
+ "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)"
509
+ }
510
+ ]
511
+ }
512
+ }
513
+ },
514
+ "VpcFlowLog8FF33A73": {
515
+ "Type": "AWS::EC2::FlowLog",
516
+ "Properties": {
517
+ "ResourceId": {
518
+ "Ref": "Vpc8378EB38"
519
+ },
520
+ "ResourceType": "VPC",
521
+ "DeliverLogsPermissionArn": {
522
+ "Fn::GetAtt": [
523
+ "VpcFlowLogIAMRole6A475D41",
524
+ "Arn"
525
+ ]
526
+ },
527
+ "LogDestinationType": "cloud-watch-logs",
528
+ "LogGroupName": {
529
+ "Ref": "VpcFlowLogLogGroup7B5C56B9"
530
+ },
531
+ "Tags": [
532
+ {
533
+ "Key": "Name",
534
+ "Value": "newVpc/Vpc"
535
+ }
536
+ ],
537
+ "TrafficType": "ALL"
538
+ }
539
+ },
540
+ "VpcKINESISSTREAMSC07D91B5": {
541
+ "Type": "AWS::EC2::VPCEndpoint",
542
+ "Properties": {
543
+ "ServiceName": {
544
+ "Fn::Join": [
545
+ "",
546
+ [
547
+ "com.amazonaws.",
548
+ {
549
+ "Ref": "AWS::Region"
550
+ },
551
+ ".kinesis-streams"
552
+ ]
553
+ ]
554
+ },
555
+ "VpcId": {
556
+ "Ref": "Vpc8378EB38"
557
+ },
558
+ "PrivateDnsEnabled": true,
559
+ "SecurityGroupIds": [
560
+ {
561
+ "Fn::GetAtt": [
562
+ "newVpcKINESISSTREAMSsecuritygroup88F75AD5",
563
+ "GroupId"
564
+ ]
565
+ }
566
+ ],
567
+ "SubnetIds": [
568
+ {
569
+ "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
570
+ },
571
+ {
572
+ "Ref": "VpcisolatedSubnet2Subnet39217055"
573
+ },
574
+ {
575
+ "Ref": "VpcisolatedSubnet3Subnet44F2537D"
576
+ }
577
+ ],
578
+ "VpcEndpointType": "Interface"
579
+ }
580
+ },
581
+ "newVpcKINESISSTREAMSsecuritygroup88F75AD5": {
582
+ "Type": "AWS::EC2::SecurityGroup",
583
+ "Properties": {
584
+ "GroupDescription": "newVpc/newVpc-KINESIS_STREAMS-security-group",
585
+ "SecurityGroupEgress": [
586
+ {
587
+ "CidrIp": "0.0.0.0/0",
588
+ "Description": "Allow all outbound traffic by default",
589
+ "IpProtocol": "-1"
590
+ }
591
+ ],
592
+ "SecurityGroupIngress": [
593
+ {
594
+ "CidrIp": {
595
+ "Fn::GetAtt": [
596
+ "Vpc8378EB38",
597
+ "CidrBlock"
598
+ ]
599
+ },
600
+ "Description": {
601
+ "Fn::Join": [
602
+ "",
603
+ [
604
+ "from ",
605
+ {
606
+ "Fn::GetAtt": [
607
+ "Vpc8378EB38",
608
+ "CidrBlock"
609
+ ]
610
+ },
611
+ ":443"
612
+ ]
613
+ ]
614
+ },
615
+ "FromPort": 443,
616
+ "IpProtocol": "tcp",
617
+ "ToPort": 443
618
+ }
619
+ ],
620
+ "VpcId": {
621
+ "Ref": "Vpc8378EB38"
622
+ }
623
+ },
624
+ "Metadata": {
625
+ "cfn_nag": {
626
+ "rules_to_suppress": [
627
+ {
628
+ "id": "W5",
629
+ "reason": "Egress of 0.0.0.0/0 is default and generally considered OK"
630
+ },
631
+ {
632
+ "id": "W40",
633
+ "reason": "Egress IPProtocol of -1 is default and generally considered OK"
634
+ }
635
+ ]
636
+ }
637
+ }
638
+ }
639
+ },
640
+ "Parameters": {
641
+ "BootstrapVersion": {
642
+ "Type": "AWS::SSM::Parameter::Value<String>",
643
+ "Default": "/cdk-bootstrap/hnb659fds/version",
644
+ "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
645
+ }
646
+ },
647
+ "Rules": {
648
+ "CheckBootstrapVersion": {
649
+ "Assertions": [
650
+ {
651
+ "Assert": {
652
+ "Fn::Not": [
653
+ {
654
+ "Fn::Contains": [
655
+ [
656
+ "1",
657
+ "2",
658
+ "3",
659
+ "4",
660
+ "5"
661
+ ],
662
+ {
663
+ "Ref": "BootstrapVersion"
664
+ }
665
+ ]
666
+ }
667
+ ]
668
+ },
669
+ "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
670
+ }
671
+ ]
672
+ }
673
+ }
674
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ /// !cdk-integ *
16
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
+ const lib_1 = require("../lib");
18
+ const core_1 = require("@aws-solutions-constructs/core");
19
+ const lambda = require("aws-cdk-lib/aws-lambda");
20
+ const app = new aws_cdk_lib_1.App();
21
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
22
+ new lib_1.LambdaToKinesisStreams(stack, 'test-lambda-kinesisstreams', {
23
+ lambdaFunctionProps: {
24
+ code: lambda.Code.fromAsset(`${__dirname}/lambda`),
25
+ runtime: lambda.Runtime.NODEJS_18_X,
26
+ handler: 'index.handler'
27
+ },
28
+ deployVpc: true
29
+ });
30
+ app.synth();
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcubmV3VnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWcubmV3VnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCxnQkFBZ0I7QUFDaEIsNkNBQXlDO0FBQ3pDLGdDQUFnRDtBQUNoRCx5REFBd0U7QUFDeEUsaURBQWlEO0FBRWpELE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUVqRSxJQUFJLDRCQUFzQixDQUFDLEtBQUssRUFBRSw0QkFBNEIsRUFBRTtJQUM5RCxtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLFNBQVMsQ0FBQztRQUNsRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1FBQ25DLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBQ0QsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8vICFjZGstaW50ZWcgKlxuaW1wb3J0IHsgQXBwLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgTGFtYmRhVG9LaW5lc2lzU3RyZWFtcyB9IGZyb20gXCIuLi9saWJcIjtcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsIGdlbmVyYXRlSW50ZWdTdGFja05hbWUoX19maWxlbmFtZSkpO1xuXG5uZXcgTGFtYmRhVG9LaW5lc2lzU3RyZWFtcyhzdGFjaywgJ3Rlc3QtbGFtYmRhLWtpbmVzaXNzdHJlYW1zJywge1xuICBsYW1iZGFGdW5jdGlvblByb3BzOiB7XG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYCksXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInXG4gIH0sXG4gIGRlcGxveVZwYzogdHJ1ZVxufSk7XG5cbmFwcC5zeW50aCgpO1xuIl19