@gradientedge/cdk-utils-aws 1.0.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.
- package/LICENSE +21 -0
- package/dist/src/common/construct.d.ts +85 -0
- package/dist/src/common/construct.js +125 -0
- package/dist/src/common/index.d.ts +4 -0
- package/dist/src/common/index.js +4 -0
- package/dist/src/common/resource-name-formatter.d.ts +13 -0
- package/dist/src/common/resource-name-formatter.js +30 -0
- package/dist/src/common/stack.d.ts +62 -0
- package/dist/src/common/stack.js +139 -0
- package/dist/src/common/types.d.ts +30 -0
- package/dist/src/common/types.js +1 -0
- package/dist/src/construct/api-to-any-target/index.d.ts +3 -0
- package/dist/src/construct/api-to-any-target/index.js +3 -0
- package/dist/src/construct/api-to-any-target/main.d.ts +47 -0
- package/dist/src/construct/api-to-any-target/main.js +154 -0
- package/dist/src/construct/api-to-any-target/target.d.ts +23 -0
- package/dist/src/construct/api-to-any-target/target.js +14 -0
- package/dist/src/construct/api-to-any-target/types.d.ts +60 -0
- package/dist/src/construct/api-to-any-target/types.js +1 -0
- package/dist/src/construct/api-to-eventbridge-target/api.d.ts +34 -0
- package/dist/src/construct/api-to-eventbridge-target/api.js +23 -0
- package/dist/src/construct/api-to-eventbridge-target/event.d.ts +15 -0
- package/dist/src/construct/api-to-eventbridge-target/event.js +12 -0
- package/dist/src/construct/api-to-eventbridge-target/index.d.ts +4 -0
- package/dist/src/construct/api-to-eventbridge-target/index.js +4 -0
- package/dist/src/construct/api-to-eventbridge-target/main.d.ts +121 -0
- package/dist/src/construct/api-to-eventbridge-target/main.js +442 -0
- package/dist/src/construct/api-to-eventbridge-target/types.d.ts +100 -0
- package/dist/src/construct/api-to-eventbridge-target/types.js +1 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/api-destined-lambda.d.ts +16 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/api-destined-lambda.js +12 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/index.d.ts +3 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/index.js +3 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/main.d.ts +159 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/main.js +547 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/types.d.ts +22 -0
- package/dist/src/construct/api-to-eventbridge-target-with-sns/types.js +1 -0
- package/dist/src/construct/api-to-lambda-target/api.d.ts +35 -0
- package/dist/src/construct/api-to-lambda-target/api.js +24 -0
- package/dist/src/construct/api-to-lambda-target/index.d.ts +3 -0
- package/dist/src/construct/api-to-lambda-target/index.js +3 -0
- package/dist/src/construct/api-to-lambda-target/main.d.ts +70 -0
- package/dist/src/construct/api-to-lambda-target/main.js +218 -0
- package/dist/src/construct/api-to-lambda-target/types.d.ts +62 -0
- package/dist/src/construct/api-to-lambda-target/types.js +1 -0
- package/dist/src/construct/application-configuration/index.d.ts +2 -0
- package/dist/src/construct/application-configuration/index.js +2 -0
- package/dist/src/construct/application-configuration/main.d.ts +23 -0
- package/dist/src/construct/application-configuration/main.js +79 -0
- package/dist/src/construct/application-configuration/types.d.ts +6 -0
- package/dist/src/construct/application-configuration/types.js +1 -0
- package/dist/src/construct/event-handler/handler.d.ts +29 -0
- package/dist/src/construct/event-handler/handler.js +21 -0
- package/dist/src/construct/event-handler/index.d.ts +3 -0
- package/dist/src/construct/event-handler/index.js +3 -0
- package/dist/src/construct/event-handler/main.d.ts +91 -0
- package/dist/src/construct/event-handler/main.js +196 -0
- package/dist/src/construct/event-handler/types.d.ts +41 -0
- package/dist/src/construct/event-handler/types.js +1 -0
- package/dist/src/construct/index.d.ts +14 -0
- package/dist/src/construct/index.js +14 -0
- package/dist/src/construct/lambda-with-iam-access/index.d.ts +2 -0
- package/dist/src/construct/lambda-with-iam-access/index.js +2 -0
- package/dist/src/construct/lambda-with-iam-access/main.d.ts +78 -0
- package/dist/src/construct/lambda-with-iam-access/main.js +182 -0
- package/dist/src/construct/lambda-with-iam-access/types.d.ts +20 -0
- package/dist/src/construct/lambda-with-iam-access/types.js +1 -0
- package/dist/src/construct/piped-event-handler/index.d.ts +2 -0
- package/dist/src/construct/piped-event-handler/index.js +2 -0
- package/dist/src/construct/piped-event-handler/main.d.ts +38 -0
- package/dist/src/construct/piped-event-handler/main.js +62 -0
- package/dist/src/construct/piped-event-handler/types.d.ts +9 -0
- package/dist/src/construct/piped-event-handler/types.js +1 -0
- package/dist/src/construct/rest-api-lambda/index.d.ts +2 -0
- package/dist/src/construct/rest-api-lambda/index.js +2 -0
- package/dist/src/construct/rest-api-lambda/main.d.ts +96 -0
- package/dist/src/construct/rest-api-lambda/main.js +170 -0
- package/dist/src/construct/rest-api-lambda/types.d.ts +23 -0
- package/dist/src/construct/rest-api-lambda/types.js +1 -0
- package/dist/src/construct/rest-api-lambda-with-cache/index.d.ts +2 -0
- package/dist/src/construct/rest-api-lambda-with-cache/index.js +2 -0
- package/dist/src/construct/rest-api-lambda-with-cache/main.d.ts +56 -0
- package/dist/src/construct/rest-api-lambda-with-cache/main.js +118 -0
- package/dist/src/construct/rest-api-lambda-with-cache/types.d.ts +11 -0
- package/dist/src/construct/rest-api-lambda-with-cache/types.js +1 -0
- package/dist/src/construct/site-with-ecs-backend/constants.d.ts +4 -0
- package/dist/src/construct/site-with-ecs-backend/constants.js +5 -0
- package/dist/src/construct/site-with-ecs-backend/index.d.ts +3 -0
- package/dist/src/construct/site-with-ecs-backend/index.js +3 -0
- package/dist/src/construct/site-with-ecs-backend/main.d.ts +154 -0
- package/dist/src/construct/site-with-ecs-backend/main.js +437 -0
- package/dist/src/construct/site-with-ecs-backend/types.d.ts +49 -0
- package/dist/src/construct/site-with-ecs-backend/types.js +1 -0
- package/dist/src/construct/site-with-lambda-backend/constants.d.ts +5 -0
- package/dist/src/construct/site-with-lambda-backend/constants.js +6 -0
- package/dist/src/construct/site-with-lambda-backend/index.d.ts +3 -0
- package/dist/src/construct/site-with-lambda-backend/index.js +3 -0
- package/dist/src/construct/site-with-lambda-backend/main.d.ts +116 -0
- package/dist/src/construct/site-with-lambda-backend/main.js +316 -0
- package/dist/src/construct/site-with-lambda-backend/types.d.ts +45 -0
- package/dist/src/construct/site-with-lambda-backend/types.js +1 -0
- package/dist/src/construct/static-asset-deployment/index.d.ts +2 -0
- package/dist/src/construct/static-asset-deployment/index.js +2 -0
- package/dist/src/construct/static-asset-deployment/main.d.ts +41 -0
- package/dist/src/construct/static-asset-deployment/main.js +113 -0
- package/dist/src/construct/static-asset-deployment/types.d.ts +41 -0
- package/dist/src/construct/static-asset-deployment/types.js +1 -0
- package/dist/src/construct/static-site/index.d.ts +2 -0
- package/dist/src/construct/static-site/index.js +2 -0
- package/dist/src/construct/static-site/main.d.ts +84 -0
- package/dist/src/construct/static-site/main.js +136 -0
- package/dist/src/construct/static-site/types.d.ts +30 -0
- package/dist/src/construct/static-site/types.js +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +5 -0
- package/dist/src/services/api-gateway/index.d.ts +2 -0
- package/dist/src/services/api-gateway/index.js +2 -0
- package/dist/src/services/api-gateway/main.d.ts +68 -0
- package/dist/src/services/api-gateway/main.js +173 -0
- package/dist/src/services/api-gateway/types.d.ts +10 -0
- package/dist/src/services/api-gateway/types.js +1 -0
- package/dist/src/services/appconfig/constants.d.ts +12 -0
- package/dist/src/services/appconfig/constants.js +51 -0
- package/dist/src/services/appconfig/index.d.ts +3 -0
- package/dist/src/services/appconfig/index.js +3 -0
- package/dist/src/services/appconfig/main.d.ts +63 -0
- package/dist/src/services/appconfig/main.js +119 -0
- package/dist/src/services/appconfig/types.d.ts +17 -0
- package/dist/src/services/appconfig/types.js +1 -0
- package/dist/src/services/certificate-manager/index.d.ts +2 -0
- package/dist/src/services/certificate-manager/index.js +2 -0
- package/dist/src/services/certificate-manager/main.d.ts +41 -0
- package/dist/src/services/certificate-manager/main.js +62 -0
- package/dist/src/services/certificate-manager/types.d.ts +11 -0
- package/dist/src/services/certificate-manager/types.js +1 -0
- package/dist/src/services/cloudfront/index.d.ts +2 -0
- package/dist/src/services/cloudfront/index.js +2 -0
- package/dist/src/services/cloudfront/main.d.ts +96 -0
- package/dist/src/services/cloudfront/main.js +233 -0
- package/dist/src/services/cloudfront/types.d.ts +13 -0
- package/dist/src/services/cloudfront/types.js +1 -0
- package/dist/src/services/cloudtrail/index.d.ts +2 -0
- package/dist/src/services/cloudtrail/index.js +2 -0
- package/dist/src/services/cloudtrail/main.d.ts +44 -0
- package/dist/src/services/cloudtrail/main.js +71 -0
- package/dist/src/services/cloudtrail/types.d.ts +5 -0
- package/dist/src/services/cloudtrail/types.js +1 -0
- package/dist/src/services/cloudwatch/index.d.ts +3 -0
- package/dist/src/services/cloudwatch/index.js +3 -0
- package/dist/src/services/cloudwatch/logs.d.ts +47 -0
- package/dist/src/services/cloudwatch/logs.js +98 -0
- package/dist/src/services/cloudwatch/main.d.ts +207 -0
- package/dist/src/services/cloudwatch/main.js +552 -0
- package/dist/src/services/cloudwatch/types.d.ts +89 -0
- package/dist/src/services/cloudwatch/types.js +1 -0
- package/dist/src/services/codebuild/index.d.ts +1 -0
- package/dist/src/services/codebuild/index.js +1 -0
- package/dist/src/services/codebuild/main.d.ts +36 -0
- package/dist/src/services/codebuild/main.js +67 -0
- package/dist/src/services/constants.d.ts +4 -0
- package/dist/src/services/constants.js +5 -0
- package/dist/src/services/dynamodb/index.d.ts +2 -0
- package/dist/src/services/dynamodb/index.js +2 -0
- package/dist/src/services/dynamodb/main.d.ts +35 -0
- package/dist/src/services/dynamodb/main.js +72 -0
- package/dist/src/services/dynamodb/types.d.ts +10 -0
- package/dist/src/services/dynamodb/types.js +1 -0
- package/dist/src/services/elastic-container-registry/index.d.ts +1 -0
- package/dist/src/services/elastic-container-registry/index.js +1 -0
- package/dist/src/services/elastic-container-registry/main.d.ts +27 -0
- package/dist/src/services/elastic-container-registry/main.js +33 -0
- package/dist/src/services/elastic-container-service/index.d.ts +2 -0
- package/dist/src/services/elastic-container-service/index.js +2 -0
- package/dist/src/services/elastic-container-service/main.d.ts +56 -0
- package/dist/src/services/elastic-container-service/main.js +149 -0
- package/dist/src/services/elastic-container-service/types.d.ts +45 -0
- package/dist/src/services/elastic-container-service/types.js +1 -0
- package/dist/src/services/elastic-file-system/index.d.ts +2 -0
- package/dist/src/services/elastic-file-system/index.js +2 -0
- package/dist/src/services/elastic-file-system/main.d.ts +42 -0
- package/dist/src/services/elastic-file-system/main.js +76 -0
- package/dist/src/services/elastic-file-system/types.d.ts +15 -0
- package/dist/src/services/elastic-file-system/types.js +1 -0
- package/dist/src/services/elastic-kubernetes-service/index.d.ts +2 -0
- package/dist/src/services/elastic-kubernetes-service/index.js +2 -0
- package/dist/src/services/elastic-kubernetes-service/main.d.ts +32 -0
- package/dist/src/services/elastic-kubernetes-service/main.js +85 -0
- package/dist/src/services/elastic-kubernetes-service/types.d.ts +7 -0
- package/dist/src/services/elastic-kubernetes-service/types.js +1 -0
- package/dist/src/services/elasticache/index.d.ts +2 -0
- package/dist/src/services/elasticache/index.js +2 -0
- package/dist/src/services/elasticache/main.d.ts +47 -0
- package/dist/src/services/elasticache/main.js +90 -0
- package/dist/src/services/elasticache/types.d.ts +9 -0
- package/dist/src/services/elasticache/types.js +1 -0
- package/dist/src/services/eventbridge/index.d.ts +3 -0
- package/dist/src/services/eventbridge/index.js +3 -0
- package/dist/src/services/eventbridge/main.d.ts +93 -0
- package/dist/src/services/eventbridge/main.js +295 -0
- package/dist/src/services/eventbridge/target.d.ts +57 -0
- package/dist/src/services/eventbridge/target.js +61 -0
- package/dist/src/services/eventbridge/types.d.ts +43 -0
- package/dist/src/services/eventbridge/types.js +1 -0
- package/dist/src/services/evidently/index.d.ts +2 -0
- package/dist/src/services/evidently/index.js +2 -0
- package/dist/src/services/evidently/main.d.ts +56 -0
- package/dist/src/services/evidently/main.js +114 -0
- package/dist/src/services/evidently/types.d.ts +21 -0
- package/dist/src/services/evidently/types.js +1 -0
- package/dist/src/services/identity-access-management/index.d.ts +1 -0
- package/dist/src/services/identity-access-management/index.js +1 -0
- package/dist/src/services/identity-access-management/main.d.ts +263 -0
- package/dist/src/services/identity-access-management/main.js +609 -0
- package/dist/src/services/index.d.ts +28 -0
- package/dist/src/services/index.js +28 -0
- package/dist/src/services/key-management-service/index.d.ts +2 -0
- package/dist/src/services/key-management-service/index.js +2 -0
- package/dist/src/services/key-management-service/main.d.ts +28 -0
- package/dist/src/services/key-management-service/main.js +39 -0
- package/dist/src/services/key-management-service/types.d.ts +5 -0
- package/dist/src/services/key-management-service/types.js +1 -0
- package/dist/src/services/lambda/index.d.ts +2 -0
- package/dist/src/services/lambda/index.js +2 -0
- package/dist/src/services/lambda/main.d.ts +89 -0
- package/dist/src/services/lambda/main.js +232 -0
- package/dist/src/services/lambda/types.d.ts +54 -0
- package/dist/src/services/lambda/types.js +1 -0
- package/dist/src/services/route53/index.d.ts +2 -0
- package/dist/src/services/route53/index.js +2 -0
- package/dist/src/services/route53/main.d.ts +66 -0
- package/dist/src/services/route53/main.js +136 -0
- package/dist/src/services/route53/types.d.ts +6 -0
- package/dist/src/services/route53/types.js +1 -0
- package/dist/src/services/secrets-manager/index.d.ts +2 -0
- package/dist/src/services/secrets-manager/index.js +2 -0
- package/dist/src/services/secrets-manager/main.d.ts +43 -0
- package/dist/src/services/secrets-manager/main.js +71 -0
- package/dist/src/services/secrets-manager/types.d.ts +3 -0
- package/dist/src/services/secrets-manager/types.js +1 -0
- package/dist/src/services/simple-notification-service/index.d.ts +2 -0
- package/dist/src/services/simple-notification-service/index.js +2 -0
- package/dist/src/services/simple-notification-service/main.d.ts +38 -0
- package/dist/src/services/simple-notification-service/main.js +68 -0
- package/dist/src/services/simple-notification-service/types.d.ts +5 -0
- package/dist/src/services/simple-notification-service/types.js +1 -0
- package/dist/src/services/simple-queue-service/index.d.ts +2 -0
- package/dist/src/services/simple-queue-service/index.js +2 -0
- package/dist/src/services/simple-queue-service/main.d.ts +45 -0
- package/dist/src/services/simple-queue-service/main.js +101 -0
- package/dist/src/services/simple-queue-service/types.d.ts +15 -0
- package/dist/src/services/simple-queue-service/types.js +1 -0
- package/dist/src/services/simple-storage-service/index.d.ts +2 -0
- package/dist/src/services/simple-storage-service/index.js +2 -0
- package/dist/src/services/simple-storage-service/main.d.ts +79 -0
- package/dist/src/services/simple-storage-service/main.js +191 -0
- package/dist/src/services/simple-storage-service/types.d.ts +25 -0
- package/dist/src/services/simple-storage-service/types.js +1 -0
- package/dist/src/services/step-function/index.d.ts +2 -0
- package/dist/src/services/step-function/index.js +2 -0
- package/dist/src/services/step-function/main.d.ts +161 -0
- package/dist/src/services/step-function/main.js +380 -0
- package/dist/src/services/step-function/types.d.ts +88 -0
- package/dist/src/services/step-function/types.js +1 -0
- package/dist/src/services/systems-manager/index.d.ts +2 -0
- package/dist/src/services/systems-manager/index.js +2 -0
- package/dist/src/services/systems-manager/main.d.ts +55 -0
- package/dist/src/services/systems-manager/main.js +97 -0
- package/dist/src/services/systems-manager/types.d.ts +9 -0
- package/dist/src/services/systems-manager/types.js +1 -0
- package/dist/src/services/virtual-private-cloud/index.d.ts +2 -0
- package/dist/src/services/virtual-private-cloud/index.js +2 -0
- package/dist/src/services/virtual-private-cloud/ipv6.d.ts +7 -0
- package/dist/src/services/virtual-private-cloud/ipv6.js +38 -0
- package/dist/src/services/virtual-private-cloud/main.d.ts +43 -0
- package/dist/src/services/virtual-private-cloud/main.js +87 -0
- package/dist/src/services/virtual-private-cloud/types.d.ts +4 -0
- package/dist/src/services/virtual-private-cloud/types.js +1 -0
- package/dist/src/services/web-application-firewall/index.d.ts +2 -0
- package/dist/src/services/web-application-firewall/index.js +2 -0
- package/dist/src/services/web-application-firewall/main.d.ts +35 -0
- package/dist/src/services/web-application-firewall/main.js +61 -0
- package/dist/src/services/web-application-firewall/types.d.ts +9 -0
- package/dist/src/services/web-application-firewall/types.js +1 -0
- package/dist/src/types/index.d.ts +6 -0
- package/dist/src/types/index.js +1 -0
- package/dist/src/utils/index.d.ts +45 -0
- package/dist/src/utils/index.js +61 -0
- package/package.json +44 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { RemovalPolicy } from 'aws-cdk-lib';
|
|
2
|
+
import { FileSystem, LifecyclePolicy, OutOfInfrequentAccessPolicy, PerformanceMode } from 'aws-cdk-lib/aws-efs';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { createCfnOutput } from '../../utils/index.js';
|
|
5
|
+
export const DEFAULT_CREATE_ACL = {
|
|
6
|
+
ownerGid: '1000',
|
|
7
|
+
ownerUid: '1000',
|
|
8
|
+
permissions: '755',
|
|
9
|
+
};
|
|
10
|
+
export const DEFAULT_POSIX_USER = {
|
|
11
|
+
gid: '1000',
|
|
12
|
+
uid: '1000',
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @classdesc Provides operations on AWS Elastic File System.
|
|
16
|
+
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
17
|
+
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
18
|
+
* @example
|
|
19
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
20
|
+
*
|
|
21
|
+
* class CustomConstruct extends CommonConstruct {
|
|
22
|
+
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
23
|
+
* super(parent, id, props)
|
|
24
|
+
* this.props = props
|
|
25
|
+
* this.efsManager.createFileSystem('MyFileSystem', this, fileSystemProps, vpc)
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* @see [CDK EFS Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_efs-readme.html}
|
|
29
|
+
*/
|
|
30
|
+
export class EfsManager {
|
|
31
|
+
/**
|
|
32
|
+
* @summary Method to create an efs file system
|
|
33
|
+
* @param id scoped id of the resource
|
|
34
|
+
* @param scope scope in which this resource is defined
|
|
35
|
+
* @param props the file system props
|
|
36
|
+
* @param vpc the vpc to use for the file system
|
|
37
|
+
* @param accessPointOptions optional access point configuration options for the file system
|
|
38
|
+
* @param securityGroup optional security groups to configure for the file system
|
|
39
|
+
* @param vpcSubnets optional subnets to configure for the file system
|
|
40
|
+
*/
|
|
41
|
+
createFileSystem(id, scope, props, vpc, accessPointOptions, securityGroup, vpcSubnets) {
|
|
42
|
+
if (!props)
|
|
43
|
+
throw `EFS props undefined for ${id}`;
|
|
44
|
+
if (!props.fileSystemName)
|
|
45
|
+
throw `EFS fileSystemName undefined for ${id}`;
|
|
46
|
+
const fileSystemId = props.provisionNewOnDeployment ? `${id}-${new Date().getMilliseconds()}` : `${id}`;
|
|
47
|
+
const fileSystem = new FileSystem(scope, `${fileSystemId}`, {
|
|
48
|
+
...props,
|
|
49
|
+
fileSystemName: scope.resourceNameFormatter.format(props.fileSystemName, scope.props.resourceNameOptions?.efs),
|
|
50
|
+
lifecyclePolicy: props.lifecyclePolicy ?? LifecyclePolicy.AFTER_7_DAYS,
|
|
51
|
+
outOfInfrequentAccessPolicy: props.outOfInfrequentAccessPolicy ?? OutOfInfrequentAccessPolicy.AFTER_1_ACCESS,
|
|
52
|
+
performanceMode: props.performanceMode ?? PerformanceMode.GENERAL_PURPOSE,
|
|
53
|
+
removalPolicy: props.removalPolicy ?? RemovalPolicy.DESTROY,
|
|
54
|
+
securityGroup,
|
|
55
|
+
vpc,
|
|
56
|
+
vpcSubnets,
|
|
57
|
+
});
|
|
58
|
+
createCfnOutput(`${id}-fileSystemArn`, scope, fileSystem.fileSystemArn);
|
|
59
|
+
createCfnOutput(`${id}-fileSystemId`, scope, fileSystem.fileSystemId);
|
|
60
|
+
/* provision access points if specified */
|
|
61
|
+
if (accessPointOptions && !_.isEmpty(accessPointOptions)) {
|
|
62
|
+
for (const [index, accessPointOption] of accessPointOptions.entries()) {
|
|
63
|
+
if (!accessPointOption.path)
|
|
64
|
+
throw `Undefined access point path for option: [${accessPointOption}], id: [${id}]`;
|
|
65
|
+
const accessPoint = fileSystem.addAccessPoint(`${id}-ap-${index}`, {
|
|
66
|
+
createAcl: accessPointOption.createAcl ?? DEFAULT_CREATE_ACL,
|
|
67
|
+
path: accessPointOption.path,
|
|
68
|
+
posixUser: accessPointOption.posixUser ?? DEFAULT_POSIX_USER,
|
|
69
|
+
});
|
|
70
|
+
createCfnOutput(`${id}-accessPointArn-${index}`, scope, accessPoint.accessPointArn);
|
|
71
|
+
createCfnOutput(`${id}-accessPointId-${index}`, scope, accessPoint.accessPointId);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return fileSystem;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AuthorizationConfig } from 'aws-cdk-lib/aws-ecs';
|
|
2
|
+
import { AccessPointOptions, FileSystemProps } from 'aws-cdk-lib/aws-efs';
|
|
3
|
+
/**
|
|
4
|
+
*/
|
|
5
|
+
export interface EfsFileSystemProps extends FileSystemProps {
|
|
6
|
+
authorizationConfig?: AuthorizationConfig;
|
|
7
|
+
provisionNewOnDeployment?: boolean;
|
|
8
|
+
rootDirectory?: string;
|
|
9
|
+
transitEncryption?: string;
|
|
10
|
+
transitEncryptionPort?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
*/
|
|
14
|
+
export interface EfsAccessPointOptions extends AccessPointOptions {
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IVpc } from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';
|
|
3
|
+
import { Cluster } from 'aws-cdk-lib/aws-eks';
|
|
4
|
+
import { CommonConstruct } from '../../common/index.js';
|
|
5
|
+
import { EksClusterProps } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* @classdesc Provides operations on AWS Elastic Kubernetes Service.
|
|
8
|
+
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
9
|
+
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
10
|
+
* @example
|
|
11
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
12
|
+
*
|
|
13
|
+
* class CustomConstruct extends CommonConstruct {
|
|
14
|
+
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
15
|
+
* super(parent, id, props)
|
|
16
|
+
* this.props = props
|
|
17
|
+
* this.eksManager.createEksDeployment('MyEksDeployment', this, image, vpc)
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* @see [CDK EKS Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html}
|
|
21
|
+
*/
|
|
22
|
+
export declare class EksManager {
|
|
23
|
+
/**
|
|
24
|
+
* @summary Method to create an eks deployment
|
|
25
|
+
* @param id scoped id of the resource
|
|
26
|
+
* @param scope scope in which this resource is defined
|
|
27
|
+
* @param props
|
|
28
|
+
* @param image
|
|
29
|
+
* @param vpc
|
|
30
|
+
*/
|
|
31
|
+
createEksDeployment(id: string, scope: CommonConstruct, props: EksClusterProps, image: DockerImageAsset, vpc: IVpc): Cluster;
|
|
32
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { InstanceClass, InstanceSize, InstanceType } from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import { Cluster, KubernetesVersion } from 'aws-cdk-lib/aws-eks';
|
|
3
|
+
import { createCfnOutput } from '../../utils/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* @classdesc Provides operations on AWS Elastic Kubernetes Service.
|
|
6
|
+
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
7
|
+
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
8
|
+
* @example
|
|
9
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
10
|
+
*
|
|
11
|
+
* class CustomConstruct extends CommonConstruct {
|
|
12
|
+
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
13
|
+
* super(parent, id, props)
|
|
14
|
+
* this.props = props
|
|
15
|
+
* this.eksManager.createEksDeployment('MyEksDeployment', this, image, vpc)
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* @see [CDK EKS Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html}
|
|
19
|
+
*/
|
|
20
|
+
export class EksManager {
|
|
21
|
+
/**
|
|
22
|
+
* @summary Method to create an eks deployment
|
|
23
|
+
* @param id scoped id of the resource
|
|
24
|
+
* @param scope scope in which this resource is defined
|
|
25
|
+
* @param props
|
|
26
|
+
* @param image
|
|
27
|
+
* @param vpc
|
|
28
|
+
*/
|
|
29
|
+
createEksDeployment(id, scope, props, image, vpc) {
|
|
30
|
+
if (!props)
|
|
31
|
+
throw `EksCluster props undefined for ${id}`;
|
|
32
|
+
if (!props.clusterName)
|
|
33
|
+
throw `EksCluster clusterName undefined for ${id}`;
|
|
34
|
+
const appLabel = { app: `${id}`.toLowerCase() };
|
|
35
|
+
const deployment = {
|
|
36
|
+
apiVersion: 'apps/v1',
|
|
37
|
+
kind: 'Deployment',
|
|
38
|
+
metadata: { name: `${id}`.toLowerCase() },
|
|
39
|
+
spec: {
|
|
40
|
+
selector: { matchLabels: appLabel },
|
|
41
|
+
template: {
|
|
42
|
+
metadata: { labels: appLabel },
|
|
43
|
+
spec: {
|
|
44
|
+
containers: [
|
|
45
|
+
{
|
|
46
|
+
image: image.imageUri,
|
|
47
|
+
name: `${id}`.toLowerCase(),
|
|
48
|
+
ports: [{ containerPort: props.appContainerPort }],
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
const service = {
|
|
56
|
+
apiVersion: 'v1',
|
|
57
|
+
kind: 'Service',
|
|
58
|
+
metadata: { name: `${id}`.toLowerCase() },
|
|
59
|
+
spec: {
|
|
60
|
+
ports: [
|
|
61
|
+
{
|
|
62
|
+
name: 'http-port',
|
|
63
|
+
port: 80,
|
|
64
|
+
protocol: 'TCP',
|
|
65
|
+
targetPort: props.appContainerPort,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
selector: appLabel,
|
|
69
|
+
type: 'LoadBalancer',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
const cluster = new Cluster(scope, `${id}Cluster`, {
|
|
73
|
+
clusterName: scope.resourceNameFormatter.format(props.clusterName, scope.props.resourceNameOptions?.eks),
|
|
74
|
+
defaultCapacity: props.appCapacity,
|
|
75
|
+
defaultCapacityInstance: InstanceType.of(InstanceClass.T3, InstanceSize.LARGE),
|
|
76
|
+
kubectlLayer: props.kubectlLayer,
|
|
77
|
+
version: KubernetesVersion.V1_27,
|
|
78
|
+
vpc,
|
|
79
|
+
});
|
|
80
|
+
cluster.addManifest(`${id}Pod`, service, deployment);
|
|
81
|
+
createCfnOutput(`${id}-clusterArn`, scope, cluster.clusterArn);
|
|
82
|
+
createCfnOutput(`${id}-clusterEndpoint`, scope, cluster.clusterEndpoint);
|
|
83
|
+
return cluster;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { CfnCacheCluster, CfnReplicationGroup, CfnSubnetGroup } from 'aws-cdk-lib/aws-elasticache';
|
|
2
|
+
import { CommonConstruct } from '../../common/index.js';
|
|
3
|
+
import { ElastiCacheProps, ReplicatedElastiCacheProps } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* @summary Provides operations on AWS ElastiCache Service.
|
|
6
|
+
* - A new instance of scope class is injected into {@link CommonConstruct} constructor.
|
|
7
|
+
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
8
|
+
* @example
|
|
9
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
10
|
+
*
|
|
11
|
+
* class CustomConstruct extends CommonConstruct {
|
|
12
|
+
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
13
|
+
* super(parent, id, props)
|
|
14
|
+
* this.props = props
|
|
15
|
+
* this.elasticacheManager.createElastiCache('MyElastiCache', scope, props)
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* @see [CDK ElastiCache Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_elasticache-readme.html}
|
|
19
|
+
*/
|
|
20
|
+
export declare class ElastiCacheManager {
|
|
21
|
+
/**
|
|
22
|
+
* @summary Method to create an elasticache resource
|
|
23
|
+
* @param id scoped id of the resource
|
|
24
|
+
* @param scope scope in which scope resource is defined
|
|
25
|
+
* @param subnetIds
|
|
26
|
+
*/
|
|
27
|
+
createElastiCacheSubnetGroup(id: string, scope: CommonConstruct, subnetIds: string[]): CfnSubnetGroup;
|
|
28
|
+
/**
|
|
29
|
+
* @summary Method to create an elasticache resource
|
|
30
|
+
* @param id scoped id of the resource
|
|
31
|
+
* @param scope scope in which scope resource is defined
|
|
32
|
+
* @param props
|
|
33
|
+
* @param subnetIds
|
|
34
|
+
* @param securityGroupIds
|
|
35
|
+
* @param logDeliveryConfigurations
|
|
36
|
+
*/
|
|
37
|
+
createElastiCache(id: string, scope: CommonConstruct, props: ElastiCacheProps, subnetIds: string[], securityGroupIds: string[], logDeliveryConfigurations?: any): CfnCacheCluster;
|
|
38
|
+
/**
|
|
39
|
+
* @summary Method to create an replicated elasticache resource
|
|
40
|
+
* @param id scoped id of the resource
|
|
41
|
+
* @param scope scope in which scope resource is defined
|
|
42
|
+
* @param props
|
|
43
|
+
* @param subnetIds
|
|
44
|
+
* @param securityGroupIds
|
|
45
|
+
*/
|
|
46
|
+
createReplicatedElastiCache(id: string, scope: CommonConstruct, props: ReplicatedElastiCacheProps, subnetIds: string[], securityGroupIds: string[]): CfnReplicationGroup;
|
|
47
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Tags } from 'aws-cdk-lib';
|
|
2
|
+
import { CfnCacheCluster, CfnReplicationGroup, CfnSubnetGroup } from 'aws-cdk-lib/aws-elasticache';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { createCfnOutput } from '../../utils/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* @summary Provides operations on AWS ElastiCache Service.
|
|
7
|
+
* - A new instance of scope class is injected into {@link CommonConstruct} constructor.
|
|
8
|
+
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
9
|
+
* @example
|
|
10
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
11
|
+
*
|
|
12
|
+
* class CustomConstruct extends CommonConstruct {
|
|
13
|
+
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
14
|
+
* super(parent, id, props)
|
|
15
|
+
* this.props = props
|
|
16
|
+
* this.elasticacheManager.createElastiCache('MyElastiCache', scope, props)
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
* @see [CDK ElastiCache Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_elasticache-readme.html}
|
|
20
|
+
*/
|
|
21
|
+
export class ElastiCacheManager {
|
|
22
|
+
/**
|
|
23
|
+
* @summary Method to create an elasticache resource
|
|
24
|
+
* @param id scoped id of the resource
|
|
25
|
+
* @param scope scope in which scope resource is defined
|
|
26
|
+
* @param subnetIds
|
|
27
|
+
*/
|
|
28
|
+
createElastiCacheSubnetGroup(id, scope, subnetIds) {
|
|
29
|
+
return new CfnSubnetGroup(scope, `${id}`, {
|
|
30
|
+
cacheSubnetGroupName: `${id}-subnet-group-${scope.props.stage}`,
|
|
31
|
+
description: `${id}-subnet-group-${scope.props.stage}`,
|
|
32
|
+
subnetIds: subnetIds,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @summary Method to create an elasticache resource
|
|
37
|
+
* @param id scoped id of the resource
|
|
38
|
+
* @param scope scope in which scope resource is defined
|
|
39
|
+
* @param props
|
|
40
|
+
* @param subnetIds
|
|
41
|
+
* @param securityGroupIds
|
|
42
|
+
* @param logDeliveryConfigurations
|
|
43
|
+
*/
|
|
44
|
+
createElastiCache(id, scope, props, subnetIds, securityGroupIds, logDeliveryConfigurations) {
|
|
45
|
+
if (!props)
|
|
46
|
+
throw `ElastiCache props undefined for ${id}`;
|
|
47
|
+
if (!props.clusterName)
|
|
48
|
+
throw `ElastiCache clusterName undefined for ${id}`;
|
|
49
|
+
const subnetGroup = this.createElastiCacheSubnetGroup(`${id}-subnetGroup`, scope, subnetIds);
|
|
50
|
+
const elasticacheCluster = new CfnCacheCluster(scope, `${id}`, {
|
|
51
|
+
...props,
|
|
52
|
+
cacheSubnetGroupName: subnetGroup.cacheSubnetGroupName,
|
|
53
|
+
clusterName: scope.resourceNameFormatter.format(props.clusterName, scope.props.resourceNameOptions?.elasticache),
|
|
54
|
+
logDeliveryConfigurations,
|
|
55
|
+
vpcSecurityGroupIds: securityGroupIds,
|
|
56
|
+
});
|
|
57
|
+
elasticacheCluster.addDependency(subnetGroup);
|
|
58
|
+
if (props.tags && !_.isEmpty(props.tags)) {
|
|
59
|
+
_.forEach(props.tags, tag => {
|
|
60
|
+
Tags.of(elasticacheCluster).add(tag.key, tag.value);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
createCfnOutput(`${id}-clusterName`, scope, elasticacheCluster.clusterName);
|
|
64
|
+
createCfnOutput(`${id}-redisEndpointPort`, scope, elasticacheCluster.attrRedisEndpointPort);
|
|
65
|
+
createCfnOutput(`${id}-redisEndpointAddress`, scope, elasticacheCluster.attrRedisEndpointAddress);
|
|
66
|
+
return elasticacheCluster;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @summary Method to create an replicated elasticache resource
|
|
70
|
+
* @param id scoped id of the resource
|
|
71
|
+
* @param scope scope in which scope resource is defined
|
|
72
|
+
* @param props
|
|
73
|
+
* @param subnetIds
|
|
74
|
+
* @param securityGroupIds
|
|
75
|
+
*/
|
|
76
|
+
createReplicatedElastiCache(id, scope, props, subnetIds, securityGroupIds) {
|
|
77
|
+
if (!props)
|
|
78
|
+
throw `ElastiCache props undefined for ${id}`;
|
|
79
|
+
const subnetGroup = this.createElastiCacheSubnetGroup(`${id}-subnetGroup`, scope, subnetIds);
|
|
80
|
+
const elasticacheCluster = new CfnReplicationGroup(scope, `${id}`, {
|
|
81
|
+
...props,
|
|
82
|
+
cacheSubnetGroupName: subnetGroup.cacheSubnetGroupName,
|
|
83
|
+
replicationGroupDescription: `${id} Redis Replication Cluster`,
|
|
84
|
+
replicationGroupId: `${id}-${scope.props.stage}`,
|
|
85
|
+
securityGroupIds,
|
|
86
|
+
});
|
|
87
|
+
elasticacheCluster.addDependency(subnetGroup);
|
|
88
|
+
return elasticacheCluster;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CfnCacheClusterProps, CfnReplicationGroupProps } from 'aws-cdk-lib/aws-elasticache';
|
|
2
|
+
/**
|
|
3
|
+
*/
|
|
4
|
+
export interface ElastiCacheProps extends CfnCacheClusterProps {
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
*/
|
|
8
|
+
export interface ReplicatedElastiCacheProps extends CfnReplicationGroupProps {
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { ICluster, ITaskDefinition } from 'aws-cdk-lib/aws-ecs';
|
|
2
|
+
import { CfnRule, EventBus, IEventBus, IRuleTarget, Rule } from 'aws-cdk-lib/aws-events';
|
|
3
|
+
import { CfnRole, Role } from 'aws-cdk-lib/aws-iam';
|
|
4
|
+
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
5
|
+
import { CfnPipe } from 'aws-cdk-lib/aws-pipes';
|
|
6
|
+
import { IQueue } from 'aws-cdk-lib/aws-sqs';
|
|
7
|
+
import { IStateMachine } from 'aws-cdk-lib/aws-stepfunctions';
|
|
8
|
+
import { CommonConstruct } from '../../common/index.js';
|
|
9
|
+
import { DynamoDbToLambdaPipeProps, EventBusProps, EventRuleProps, RuleProps, SqsToLambdaPipeProps, SqsToSfnPipeProps } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* @classdesc Provides operations on AWS EventBridge.
|
|
12
|
+
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
13
|
+
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
14
|
+
* @example
|
|
15
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
16
|
+
*
|
|
17
|
+
* class CustomConstruct extends CommonConstruct {
|
|
18
|
+
* constructor(parent: Construct, id: string, props: common.CommonStackProps) {
|
|
19
|
+
* super(parent, id, props)
|
|
20
|
+
* this.props = props
|
|
21
|
+
* this.eventManager.createLambdaRule('MyLambdaRule', this, lambdaFunction)
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* @see [CDK EventBridge Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events-readme.html}
|
|
25
|
+
*/
|
|
26
|
+
export declare class EventManager {
|
|
27
|
+
/**
|
|
28
|
+
* Method to create an event bus
|
|
29
|
+
* @param id scoped id of the resource
|
|
30
|
+
* @param scope scope in which this resource is defined
|
|
31
|
+
* @param props event bus properties
|
|
32
|
+
*/
|
|
33
|
+
createEventBus(id: string, scope: CommonConstruct, props: EventBusProps): EventBus;
|
|
34
|
+
/**
|
|
35
|
+
* Method to create an event rule
|
|
36
|
+
* @param id scoped id of the resource
|
|
37
|
+
* @param scope scope in which this resource is defined
|
|
38
|
+
* @param props event rule properties
|
|
39
|
+
* @param eventBus optional custom event bus
|
|
40
|
+
* @param targets optional event targets
|
|
41
|
+
*/
|
|
42
|
+
createRule(id: string, scope: CommonConstruct, props: EventRuleProps, eventBus?: IEventBus, targets?: IRuleTarget[]): Rule;
|
|
43
|
+
/**
|
|
44
|
+
* @summary Method to create an eventbridge rule with lambda target
|
|
45
|
+
* @param id scoped id of the resource
|
|
46
|
+
* @param scope scope in which this resource is defined
|
|
47
|
+
* @param props
|
|
48
|
+
* @param lambdaFunction
|
|
49
|
+
* @param eventBusName
|
|
50
|
+
* @param eventPattern
|
|
51
|
+
* @param scheduleExpression
|
|
52
|
+
*/
|
|
53
|
+
createLambdaRule(id: string, scope: CommonConstruct, props: RuleProps, lambdaFunction: IFunction, eventBusName?: string, eventPattern?: any, scheduleExpression?: string): CfnRule;
|
|
54
|
+
/**
|
|
55
|
+
* @summary Method to create an eventbridge rule with fargate task target
|
|
56
|
+
* @param id scoped id of the resource
|
|
57
|
+
* @param scope scope in which this resource is defined
|
|
58
|
+
* @param props
|
|
59
|
+
* @param cluster
|
|
60
|
+
* @param task
|
|
61
|
+
* @param subnetIds
|
|
62
|
+
* @param role
|
|
63
|
+
* @param eventPattern
|
|
64
|
+
*/
|
|
65
|
+
createFargateTaskRule(id: string, scope: CommonConstruct, props: RuleProps, cluster: ICluster, task: ITaskDefinition, subnetIds: string[], role: Role | CfnRole, eventPattern?: any): CfnRule;
|
|
66
|
+
/**
|
|
67
|
+
* @summary Method to create an eventbridge pipe with sqs queue as source and step function as target
|
|
68
|
+
* @param id scoped id of the resource
|
|
69
|
+
* @param scope scope in which this resource is defined
|
|
70
|
+
* @param props the props for the pipe
|
|
71
|
+
* @param sourceQueue the source sqs queue
|
|
72
|
+
* @param targetStepFunction the target step function
|
|
73
|
+
*/
|
|
74
|
+
createSqsToSfnCfnPipe(id: string, scope: CommonConstruct, props: SqsToSfnPipeProps, sourceQueue: IQueue, targetStepFunction: IStateMachine): CfnPipe;
|
|
75
|
+
/**
|
|
76
|
+
* @summary Method to create an eventbridge pipe with sqs queue as source and lambda function as target
|
|
77
|
+
* @param id scoped id of the resource
|
|
78
|
+
* @param scope scope in which this resource is defined
|
|
79
|
+
* @param props the props for the pipe
|
|
80
|
+
* @param sourceQueue the source sqs queue
|
|
81
|
+
* @param targetLambdaFunction the target lambda function
|
|
82
|
+
*/
|
|
83
|
+
createSqsToLambdaCfnPipe(id: string, scope: CommonConstruct, props: SqsToLambdaPipeProps, sourceQueue: IQueue, targetLambdaFunction: IFunction): CfnPipe;
|
|
84
|
+
/**
|
|
85
|
+
* @summary Method to create an eventbridge pipe with DynamoDb stream as source and lambda function as target
|
|
86
|
+
* @param id scoped id of the resource
|
|
87
|
+
* @param scope scope in which this resource is defined
|
|
88
|
+
* @param props the props for the pipe
|
|
89
|
+
* @param dynamoDbStream the source dynamoDb stream
|
|
90
|
+
* @param targetLambdaFunction the target lambda function
|
|
91
|
+
*/
|
|
92
|
+
createDynamoDbToLambdaCfnPipe(id: string, scope: CommonConstruct, props: DynamoDbToLambdaPipeProps, sourceDynamoDbStreamArn: string, targetLambdaFunction: IFunction): CfnPipe;
|
|
93
|
+
}
|