@gradientedge/cdk-utils 4.2.0 → 4.3.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/dist/index.d.ts +3 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -25
- package/dist/index.js.map +1 -1
- package/dist/src/lib/common/commonConstruct.d.ts +26 -45
- package/dist/src/lib/common/commonConstruct.d.ts.map +1 -1
- package/dist/src/lib/common/commonConstruct.js +50 -49
- package/dist/src/lib/common/commonConstruct.js.map +1 -1
- package/dist/src/lib/common/commonStack.d.ts +1 -1
- package/dist/src/lib/common/commonStack.d.ts.map +1 -1
- package/dist/src/lib/common/commonStack.js.map +1 -1
- package/dist/src/lib/common/index.d.ts +3 -0
- package/dist/src/lib/common/index.d.ts.map +1 -0
- package/dist/src/lib/common/index.js +15 -0
- package/dist/src/lib/common/index.js.map +1 -0
- package/dist/src/lib/construct/graphQLApiLambda.d.ts +5 -5
- package/dist/src/lib/construct/graphQLApiLambda.d.ts.map +1 -1
- package/dist/src/lib/construct/graphQLApiLambda.js +2 -2
- package/dist/src/lib/construct/graphQLApiLambda.js.map +1 -1
- package/dist/src/lib/construct/index.d.ts +4 -0
- package/dist/src/lib/construct/index.d.ts.map +1 -0
- package/dist/src/lib/construct/index.js +16 -0
- package/dist/src/lib/construct/index.js.map +1 -0
- package/dist/src/lib/construct/siteWithEcsBackend.d.ts +8 -8
- package/dist/src/lib/construct/siteWithEcsBackend.d.ts.map +1 -1
- package/dist/src/lib/construct/siteWithEcsBackend.js +4 -4
- package/dist/src/lib/construct/siteWithEcsBackend.js.map +1 -1
- package/dist/src/lib/construct/staticSite.d.ts +5 -5
- package/dist/src/lib/construct/staticSite.d.ts.map +1 -1
- package/dist/src/lib/construct/staticSite.js +1 -1
- package/dist/src/lib/construct/staticSite.js.map +1 -1
- package/dist/src/lib/manager/{acmManager.d.ts → aws/acmManager.d.ts} +7 -7
- package/dist/src/lib/manager/aws/acmManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{acmManager.js → aws/acmManager.js} +7 -7
- package/dist/src/lib/manager/aws/acmManager.js.map +1 -0
- package/dist/src/lib/manager/{apiManager.d.ts → aws/apiManager.d.ts} +10 -10
- package/dist/src/lib/manager/aws/apiManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{apiManager.js → aws/apiManager.js} +12 -14
- package/dist/src/lib/manager/aws/apiManager.js.map +1 -0
- package/dist/src/lib/manager/{appConfigManager.d.ts → aws/appConfigManager.d.ts} +16 -16
- package/dist/src/lib/manager/aws/appConfigManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{appConfigManager.js → aws/appConfigManager.js} +18 -18
- package/dist/src/lib/manager/aws/appConfigManager.js.map +1 -0
- package/dist/src/lib/manager/{cloudFrontManager.d.ts → aws/cloudFrontManager.d.ts} +26 -25
- package/dist/src/lib/manager/aws/cloudFrontManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{cloudFrontManager.js → aws/cloudFrontManager.js} +26 -26
- package/dist/src/lib/manager/aws/cloudFrontManager.js.map +1 -0
- package/dist/src/lib/manager/{cloudTrailManager.d.ts → aws/cloudTrailManager.d.ts} +8 -8
- package/dist/src/lib/manager/aws/cloudTrailManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{cloudTrailManager.js → aws/cloudTrailManager.js} +8 -8
- package/dist/src/lib/manager/aws/cloudTrailManager.js.map +1 -0
- package/dist/src/lib/manager/aws/cloudWatchManager.d.ts +121 -0
- package/dist/src/lib/manager/aws/cloudWatchManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{cloudWatchManager.js → aws/cloudWatchManager.js} +46 -35
- package/dist/src/lib/manager/aws/cloudWatchManager.js.map +1 -0
- package/dist/src/lib/manager/{codeBuildManager.d.ts → aws/codeBuildManager.d.ts} +7 -8
- package/dist/src/lib/manager/aws/codeBuildManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{codeBuildManager.js → aws/codeBuildManager.js} +5 -5
- package/dist/src/lib/manager/aws/codeBuildManager.js.map +1 -0
- package/dist/src/lib/manager/aws/dynamodbManager.d.ts +32 -0
- package/dist/src/lib/manager/aws/dynamodbManager.d.ts.map +1 -0
- package/dist/src/lib/manager/aws/dynamodbManager.js +79 -0
- package/dist/src/lib/manager/aws/dynamodbManager.js.map +1 -0
- package/dist/src/lib/manager/{ecrManager.d.ts → aws/ecrManager.d.ts} +6 -6
- package/dist/src/lib/manager/aws/ecrManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{ecrManager.js → aws/ecrManager.js} +6 -6
- package/dist/src/lib/manager/aws/ecrManager.js.map +1 -0
- package/dist/src/lib/manager/{ecsManager.d.ts → aws/ecsManager.d.ts} +11 -11
- package/dist/src/lib/manager/aws/ecsManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{ecsManager.js → aws/ecsManager.js} +11 -11
- package/dist/src/lib/manager/aws/ecsManager.js.map +1 -0
- package/dist/src/lib/manager/{eksManager.d.ts → aws/eksManager.d.ts} +8 -8
- package/dist/src/lib/manager/aws/eksManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{eksManager.js → aws/eksManager.js} +8 -8
- package/dist/src/lib/manager/aws/eksManager.js.map +1 -0
- package/dist/src/lib/manager/{eventManager.d.ts → aws/eventManager.d.ts} +11 -11
- package/dist/src/lib/manager/aws/eventManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{eventManager.js → aws/eventManager.js} +12 -12
- package/dist/src/lib/manager/aws/eventManager.js.map +1 -0
- package/dist/src/lib/manager/aws/iamManager.d.ts +156 -0
- package/dist/src/lib/manager/aws/iamManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{iamManager.js → aws/iamManager.js} +35 -34
- package/dist/src/lib/manager/aws/iamManager.js.map +1 -0
- package/dist/src/lib/manager/aws/index.d.ts +23 -0
- package/dist/src/lib/manager/aws/index.d.ts.map +1 -0
- package/dist/src/lib/manager/aws/index.js +35 -0
- package/dist/src/lib/manager/aws/index.js.map +1 -0
- package/dist/src/lib/manager/{lambdaManager.d.ts → aws/lambdaManager.d.ts} +19 -19
- package/dist/src/lib/manager/aws/lambdaManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{lambdaManager.js → aws/lambdaManager.js} +19 -19
- package/dist/src/lib/manager/aws/lambdaManager.js.map +1 -0
- package/dist/src/lib/manager/{logManager.d.ts → aws/logManager.d.ts} +14 -14
- package/dist/src/lib/manager/aws/logManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{logManager.js → aws/logManager.js} +12 -12
- package/dist/src/lib/manager/aws/logManager.js.map +1 -0
- package/dist/src/lib/manager/{route53Manager.d.ts → aws/route53Manager.d.ts} +16 -16
- package/dist/src/lib/manager/aws/route53Manager.d.ts.map +1 -0
- package/dist/src/lib/manager/{route53Manager.js → aws/route53Manager.js} +17 -17
- package/dist/src/lib/manager/aws/route53Manager.js.map +1 -0
- package/dist/src/lib/manager/aws/s3Manager.d.ts +73 -0
- package/dist/src/lib/manager/aws/s3Manager.d.ts.map +1 -0
- package/dist/src/lib/manager/{s3Manager.js → aws/s3Manager.js} +15 -15
- package/dist/src/lib/manager/aws/s3Manager.js.map +1 -0
- package/dist/src/lib/manager/{secretsManager.d.ts → aws/secretsManager.d.ts} +5 -5
- package/dist/src/lib/manager/aws/secretsManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{secretsManager.js → aws/secretsManager.js} +3 -3
- package/dist/src/lib/manager/aws/secretsManager.js.map +1 -0
- package/dist/src/lib/manager/{snsManager.d.ts → aws/snsManager.d.ts} +11 -11
- package/dist/src/lib/manager/aws/snsManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{snsManager.js → aws/snsManager.js} +12 -12
- package/dist/src/lib/manager/aws/snsManager.js.map +1 -0
- package/dist/src/lib/manager/{ssmManager.d.ts → aws/ssmManager.d.ts} +16 -16
- package/dist/src/lib/manager/aws/ssmManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{ssmManager.js → aws/ssmManager.js} +13 -13
- package/dist/src/lib/manager/aws/ssmManager.js.map +1 -0
- package/dist/src/lib/manager/{vpcManager.d.ts → aws/vpcManager.d.ts} +10 -10
- package/dist/src/lib/manager/aws/vpcManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{vpcManager.js → aws/vpcManager.js} +13 -13
- package/dist/src/lib/manager/aws/vpcManager.js.map +1 -0
- package/dist/src/lib/manager/aws/wafManager.d.ts +39 -0
- package/dist/src/lib/manager/aws/wafManager.d.ts.map +1 -0
- package/dist/src/lib/manager/{wafManager.js → aws/wafManager.js} +12 -12
- package/dist/src/lib/manager/aws/wafManager.js.map +1 -0
- package/dist/src/lib/manager/index.d.ts +2 -0
- package/dist/src/lib/manager/index.d.ts.map +1 -0
- package/dist/src/lib/manager/index.js +14 -0
- package/dist/src/lib/manager/index.js.map +1 -0
- package/dist/src/lib/{types.d.ts → types/aws/index.d.ts} +22 -16
- package/dist/src/lib/types/aws/index.d.ts.map +1 -0
- package/dist/src/lib/{types.js → types/aws/index.js} +1 -1
- package/dist/src/lib/types/aws/index.js.map +1 -0
- package/dist/src/lib/types/index.d.ts +2 -0
- package/dist/src/lib/types/index.d.ts.map +1 -0
- package/dist/src/lib/types/index.js +14 -0
- package/dist/src/lib/types/index.js.map +1 -0
- package/dist/src/lib/utils/aws/index.d.ts +16 -0
- package/dist/src/lib/utils/aws/index.d.ts.map +1 -0
- package/dist/src/lib/utils/aws/index.js +50 -0
- package/dist/src/lib/utils/aws/index.js.map +1 -0
- package/dist/src/lib/{utils.d.ts → utils/index.d.ts} +2 -26
- package/dist/src/lib/utils/index.d.ts.map +1 -0
- package/dist/src/lib/utils/index.js +85 -0
- package/dist/src/lib/utils/index.js.map +1 -0
- package/index.ts +3 -25
- package/package.json +19 -16
- package/src/lib/common/commonConstruct.ts +55 -73
- package/src/lib/common/commonStack.ts +1 -1
- package/src/lib/common/index.ts +2 -0
- package/src/lib/construct/graphQLApiLambda.ts +5 -5
- package/src/lib/construct/index.ts +3 -0
- package/src/lib/construct/siteWithEcsBackend.ts +9 -9
- package/src/lib/construct/staticSite.ts +5 -5
- package/src/lib/manager/{acmManager.ts → aws/acmManager.ts} +11 -11
- package/src/lib/manager/{apiManager.ts → aws/apiManager.ts} +16 -18
- package/src/lib/manager/{appConfigManager.ts → aws/appConfigManager.ts} +30 -26
- package/src/lib/manager/{cloudFrontManager.ts → aws/cloudFrontManager.ts} +42 -42
- package/src/lib/manager/{cloudTrailManager.ts → aws/cloudTrailManager.ts} +12 -12
- package/src/lib/manager/{cloudWatchManager.ts → aws/cloudWatchManager.ts} +78 -56
- package/src/lib/manager/{codeBuildManager.ts → aws/codeBuildManager.ts} +8 -8
- package/src/lib/manager/aws/dynamodbManager.ts +60 -0
- package/src/lib/manager/{ecrManager.ts → aws/ecrManager.ts} +8 -8
- package/src/lib/manager/{ecsManager.ts → aws/ecsManager.ts} +16 -16
- package/src/lib/manager/{eksManager.ts → aws/eksManager.ts} +12 -12
- package/src/lib/manager/{eventManager.ts → aws/eventManager.ts} +18 -18
- package/src/lib/manager/{iamManager.ts → aws/iamManager.ts} +65 -54
- package/src/lib/manager/aws/index.ts +22 -0
- package/src/lib/manager/{lambdaManager.ts → aws/lambdaManager.ts} +29 -29
- package/src/lib/manager/{logManager.ts → aws/logManager.ts} +22 -17
- package/src/lib/manager/{route53Manager.ts → aws/route53Manager.ts} +24 -24
- package/src/lib/manager/{s3Manager.ts → aws/s3Manager.ts} +24 -24
- package/src/lib/manager/{secretsManager.ts → aws/secretsManager.ts} +10 -5
- package/src/lib/manager/{snsManager.ts → aws/snsManager.ts} +18 -18
- package/src/lib/manager/{ssmManager.ts → aws/ssmManager.ts} +24 -19
- package/src/lib/manager/{vpcManager.ts → aws/vpcManager.ts} +17 -17
- package/src/lib/manager/{wafManager.ts → aws/wafManager.ts} +16 -16
- package/src/lib/manager/index.ts +1 -0
- package/src/lib/{types.ts → types/aws/index.ts} +21 -15
- package/src/lib/types/index.ts +1 -0
- package/src/lib/utils/aws/index.ts +34 -0
- package/src/lib/{utils.ts → utils/index.ts} +1 -45
- package/dist/src/lib/manager/acmManager.d.ts.map +0 -1
- package/dist/src/lib/manager/acmManager.js.map +0 -1
- package/dist/src/lib/manager/apiManager.d.ts.map +0 -1
- package/dist/src/lib/manager/apiManager.js.map +0 -1
- package/dist/src/lib/manager/appConfigManager.d.ts.map +0 -1
- package/dist/src/lib/manager/appConfigManager.js.map +0 -1
- package/dist/src/lib/manager/cloudFrontManager.d.ts.map +0 -1
- package/dist/src/lib/manager/cloudFrontManager.js.map +0 -1
- package/dist/src/lib/manager/cloudTrailManager.d.ts.map +0 -1
- package/dist/src/lib/manager/cloudTrailManager.js.map +0 -1
- package/dist/src/lib/manager/cloudWatchManager.d.ts +0 -121
- package/dist/src/lib/manager/cloudWatchManager.d.ts.map +0 -1
- package/dist/src/lib/manager/cloudWatchManager.js.map +0 -1
- package/dist/src/lib/manager/codeBuildManager.d.ts.map +0 -1
- package/dist/src/lib/manager/codeBuildManager.js.map +0 -1
- package/dist/src/lib/manager/ecrManager.d.ts.map +0 -1
- package/dist/src/lib/manager/ecrManager.js.map +0 -1
- package/dist/src/lib/manager/ecsManager.d.ts.map +0 -1
- package/dist/src/lib/manager/ecsManager.js.map +0 -1
- package/dist/src/lib/manager/eksManager.d.ts.map +0 -1
- package/dist/src/lib/manager/eksManager.js.map +0 -1
- package/dist/src/lib/manager/eventManager.d.ts.map +0 -1
- package/dist/src/lib/manager/eventManager.js.map +0 -1
- package/dist/src/lib/manager/iamManager.d.ts +0 -155
- package/dist/src/lib/manager/iamManager.d.ts.map +0 -1
- package/dist/src/lib/manager/iamManager.js.map +0 -1
- package/dist/src/lib/manager/lambdaManager.d.ts.map +0 -1
- package/dist/src/lib/manager/lambdaManager.js.map +0 -1
- package/dist/src/lib/manager/logManager.d.ts.map +0 -1
- package/dist/src/lib/manager/logManager.js.map +0 -1
- package/dist/src/lib/manager/route53Manager.d.ts.map +0 -1
- package/dist/src/lib/manager/route53Manager.js.map +0 -1
- package/dist/src/lib/manager/s3Manager.d.ts +0 -73
- package/dist/src/lib/manager/s3Manager.d.ts.map +0 -1
- package/dist/src/lib/manager/s3Manager.js.map +0 -1
- package/dist/src/lib/manager/secretsManager.d.ts.map +0 -1
- package/dist/src/lib/manager/secretsManager.js.map +0 -1
- package/dist/src/lib/manager/snsManager.d.ts.map +0 -1
- package/dist/src/lib/manager/snsManager.js.map +0 -1
- package/dist/src/lib/manager/ssmManager.d.ts.map +0 -1
- package/dist/src/lib/manager/ssmManager.js.map +0 -1
- package/dist/src/lib/manager/vpcManager.d.ts.map +0 -1
- package/dist/src/lib/manager/vpcManager.js.map +0 -1
- package/dist/src/lib/manager/wafManager.d.ts +0 -39
- package/dist/src/lib/manager/wafManager.d.ts.map +0 -1
- package/dist/src/lib/manager/wafManager.js.map +0 -1
- package/dist/src/lib/types.d.ts.map +0 -1
- package/dist/src/lib/types.js.map +0 -1
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -131
- package/dist/src/lib/utils.js.map +0 -1
|
@@ -1,26 +1,26 @@
|
|
|
1
|
+
import * as cdk from 'aws-cdk-lib'
|
|
1
2
|
import * as acm from 'aws-cdk-lib/aws-certificatemanager'
|
|
2
3
|
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront'
|
|
3
|
-
import * as
|
|
4
|
-
import * as s3 from 'aws-cdk-lib/aws-s3'
|
|
5
|
-
import { CommonConstruct } from '../common/commonConstruct'
|
|
6
|
-
import { CloudFrontProps, DistributionProps, LambdaEdgeProps, CloudfrontFunctionProps } from '../types'
|
|
7
|
-
import { createCfnOutput } from '../utils'
|
|
8
|
-
import * as cdk from 'aws-cdk-lib'
|
|
4
|
+
import * as origins from 'aws-cdk-lib/aws-cloudfront-origins'
|
|
9
5
|
import * as ec2 from 'aws-cdk-lib/aws-ec2'
|
|
10
6
|
import * as efs from 'aws-cdk-lib/aws-efs'
|
|
11
|
-
import * as
|
|
7
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda'
|
|
8
|
+
import * as s3 from 'aws-cdk-lib/aws-s3'
|
|
12
9
|
import * as cr from 'aws-cdk-lib/custom-resources'
|
|
10
|
+
import * as common from '../../common'
|
|
11
|
+
import * as types from '../../types'
|
|
12
|
+
import * as utils from '../../utils'
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @stability stable
|
|
16
16
|
* @category Networking & Content Delivery
|
|
17
17
|
* @summary Provides operations on AWS CloudFront.
|
|
18
|
-
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
19
|
-
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
18
|
+
* - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
|
|
19
|
+
* - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
|
|
20
20
|
* @example
|
|
21
21
|
* import * as common from '@gradientedge/cdk-utils'
|
|
22
22
|
*
|
|
23
|
-
* class CustomConstruct extends common.CommonConstruct {
|
|
23
|
+
* class CustomConstruct extends common.common.CommonConstruct {
|
|
24
24
|
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
25
25
|
* super(parent, id, props)
|
|
26
26
|
* this.props = props
|
|
@@ -38,7 +38,7 @@ import * as cr from 'aws-cdk-lib/custom-resources'
|
|
|
38
38
|
* @see [CDK CloudFront Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudfront-readme.html}
|
|
39
39
|
*/
|
|
40
40
|
export class CloudFrontManager {
|
|
41
|
-
public createOriginAccessIdentity(id: string, scope: CommonConstruct, accessBucket?: s3.IBucket) {
|
|
41
|
+
public createOriginAccessIdentity(id: string, scope: common.CommonConstruct, accessBucket?: s3.IBucket) {
|
|
42
42
|
const oai = new cloudfront.OriginAccessIdentity(scope, `${id}`, {
|
|
43
43
|
comment: `${id} - ${scope.props.stage} stage`,
|
|
44
44
|
})
|
|
@@ -52,8 +52,8 @@ export class CloudFrontManager {
|
|
|
52
52
|
*
|
|
53
53
|
* @summary Method to create a cloudfront distribution
|
|
54
54
|
* @param {string} id scoped id of the resource
|
|
55
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
56
|
-
* @param {CloudFrontProps} props distribution properties
|
|
55
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
56
|
+
* @param {types.CloudFrontProps} props distribution properties
|
|
57
57
|
* @param {s3.IBucket?} siteBucket
|
|
58
58
|
* @param {s3.IBucket?} logBucket
|
|
59
59
|
* @param {cloudfront.OriginAccessIdentity?} oai
|
|
@@ -62,8 +62,8 @@ export class CloudFrontManager {
|
|
|
62
62
|
*/
|
|
63
63
|
public createCloudFrontDistribution(
|
|
64
64
|
id: string,
|
|
65
|
-
scope: CommonConstruct,
|
|
66
|
-
props: CloudFrontProps,
|
|
65
|
+
scope: common.CommonConstruct,
|
|
66
|
+
props: types.CloudFrontProps,
|
|
67
67
|
siteBucket?: s3.IBucket,
|
|
68
68
|
logBucket?: s3.IBucket,
|
|
69
69
|
oai?: cloudfront.OriginAccessIdentity,
|
|
@@ -104,8 +104,8 @@ export class CloudFrontManager {
|
|
|
104
104
|
webACLId: props.webACLId,
|
|
105
105
|
})
|
|
106
106
|
|
|
107
|
-
createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
|
|
108
|
-
createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
|
|
107
|
+
utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
|
|
108
|
+
utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
|
|
109
109
|
|
|
110
110
|
return distribution
|
|
111
111
|
}
|
|
@@ -113,8 +113,8 @@ export class CloudFrontManager {
|
|
|
113
113
|
/**
|
|
114
114
|
* Method to create a CloudFront distribution with S3 Origin
|
|
115
115
|
* @param {string} id scoped id of the resource
|
|
116
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
117
|
-
* @param {
|
|
116
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
117
|
+
* @param {types.DistributionProps} props distribution properties
|
|
118
118
|
* @param {origins.S3Origin} origin
|
|
119
119
|
* @param {s3.IBucket} siteBucket
|
|
120
120
|
* @param {s3.IBucket?} logBucket
|
|
@@ -125,8 +125,8 @@ export class CloudFrontManager {
|
|
|
125
125
|
*/
|
|
126
126
|
public createDistributionWithS3Origin(
|
|
127
127
|
id: string,
|
|
128
|
-
scope: CommonConstruct,
|
|
129
|
-
props: DistributionProps,
|
|
128
|
+
scope: common.CommonConstruct,
|
|
129
|
+
props: types.DistributionProps,
|
|
130
130
|
origin: origins.S3Origin,
|
|
131
131
|
siteBucket: s3.IBucket,
|
|
132
132
|
logBucket?: s3.IBucket,
|
|
@@ -161,8 +161,8 @@ export class CloudFrontManager {
|
|
|
161
161
|
webAclId: props.webAclId,
|
|
162
162
|
})
|
|
163
163
|
|
|
164
|
-
createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
|
|
165
|
-
createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
|
|
164
|
+
utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
|
|
165
|
+
utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
|
|
166
166
|
|
|
167
167
|
return distribution
|
|
168
168
|
}
|
|
@@ -170,8 +170,8 @@ export class CloudFrontManager {
|
|
|
170
170
|
/**
|
|
171
171
|
* Method to create a CloudFront distribution with HTTP Origin
|
|
172
172
|
* @param {string} id scoped id of the resource
|
|
173
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
174
|
-
* @param {
|
|
173
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
174
|
+
* @param {types.DistributionProps} props distribution properties
|
|
175
175
|
* @param {origins.S3Origin} origin
|
|
176
176
|
* @param {string[]} domainNames
|
|
177
177
|
* @param {s3.IBucket?} logBucket
|
|
@@ -180,8 +180,8 @@ export class CloudFrontManager {
|
|
|
180
180
|
*/
|
|
181
181
|
public createDistributionWithHttpOrigin(
|
|
182
182
|
id: string,
|
|
183
|
-
scope: CommonConstruct,
|
|
184
|
-
props: DistributionProps,
|
|
183
|
+
scope: common.CommonConstruct,
|
|
184
|
+
props: types.DistributionProps,
|
|
185
185
|
origin: origins.HttpOrigin,
|
|
186
186
|
domainNames: string[],
|
|
187
187
|
logBucket?: s3.IBucket,
|
|
@@ -214,8 +214,8 @@ export class CloudFrontManager {
|
|
|
214
214
|
webAclId: props.webAclId,
|
|
215
215
|
})
|
|
216
216
|
|
|
217
|
-
createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
|
|
218
|
-
createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
|
|
217
|
+
utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
|
|
218
|
+
utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
|
|
219
219
|
|
|
220
220
|
return distribution
|
|
221
221
|
}
|
|
@@ -224,8 +224,8 @@ export class CloudFrontManager {
|
|
|
224
224
|
* @summary Method to provision a Lambda@Edge function
|
|
225
225
|
*
|
|
226
226
|
* @param {string} id scoped id of the resource
|
|
227
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
228
|
-
* @param {LambdaEdgeProps} props lambda@edge properties
|
|
227
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
228
|
+
* @param {types.LambdaEdgeProps} props lambda@edge properties
|
|
229
229
|
* @param {lambda.ILayerVersion[]} layers
|
|
230
230
|
* @param {lambda.AssetCode} code
|
|
231
231
|
* @param {Map<string, string>} environment
|
|
@@ -236,8 +236,8 @@ export class CloudFrontManager {
|
|
|
236
236
|
*/
|
|
237
237
|
public createEdgeFunction(
|
|
238
238
|
id: string,
|
|
239
|
-
scope: CommonConstruct,
|
|
240
|
-
props: LambdaEdgeProps,
|
|
239
|
+
scope: common.CommonConstruct,
|
|
240
|
+
props: types.LambdaEdgeProps,
|
|
241
241
|
layers: lambda.ILayerVersion[],
|
|
242
242
|
code: lambda.AssetCode,
|
|
243
243
|
environment?: any,
|
|
@@ -267,9 +267,9 @@ export class CloudFrontManager {
|
|
|
267
267
|
vpc: vpc,
|
|
268
268
|
})
|
|
269
269
|
|
|
270
|
-
createCfnOutput(`${id}-edgeArn`, scope, edgeFunction.edgeArn)
|
|
271
|
-
createCfnOutput(`${id}-edgeFunctionArn`, scope, edgeFunction.functionArn)
|
|
272
|
-
createCfnOutput(`${id}-edgeFunctionName`, scope, edgeFunction.functionName)
|
|
270
|
+
utils.createCfnOutput(`${id}-edgeArn`, scope, edgeFunction.edgeArn)
|
|
271
|
+
utils.createCfnOutput(`${id}-edgeFunctionArn`, scope, edgeFunction.functionArn)
|
|
272
|
+
utils.createCfnOutput(`${id}-edgeFunctionName`, scope, edgeFunction.functionName)
|
|
273
273
|
|
|
274
274
|
return edgeFunction
|
|
275
275
|
}
|
|
@@ -284,7 +284,7 @@ export class CloudFrontManager {
|
|
|
284
284
|
*/
|
|
285
285
|
public invalidateCache(
|
|
286
286
|
id: string,
|
|
287
|
-
scope: CommonConstruct,
|
|
287
|
+
scope: common.CommonConstruct,
|
|
288
288
|
dockerFilePath: string,
|
|
289
289
|
distributionId: string,
|
|
290
290
|
paths?: string
|
|
@@ -312,10 +312,10 @@ export class CloudFrontManager {
|
|
|
312
312
|
* @summary Method to provision a Cloudfront function
|
|
313
313
|
*
|
|
314
314
|
* @param {string} id scoped id of the resource
|
|
315
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
316
|
-
* @param {CloudfrontFunctionProps} props
|
|
315
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
316
|
+
* @param {types.CloudfrontFunctionProps} props
|
|
317
317
|
*/
|
|
318
|
-
public createCloudfrontFunction(id: string, scope: CommonConstruct, props: CloudfrontFunctionProps) {
|
|
318
|
+
public createCloudfrontFunction(id: string, scope: common.CommonConstruct, props: types.CloudfrontFunctionProps) {
|
|
319
319
|
const cloudfrontFunction = new cloudfront.Function(scope, `${id}`, {
|
|
320
320
|
code: cloudfront.FunctionCode.fromFile({
|
|
321
321
|
filePath: props.functionFilePath,
|
|
@@ -324,8 +324,8 @@ export class CloudFrontManager {
|
|
|
324
324
|
functionName: `${props.functionName}-${scope.props.stage}`,
|
|
325
325
|
})
|
|
326
326
|
|
|
327
|
-
createCfnOutput(`${id}-functionArn`, scope, cloudfrontFunction.functionArn)
|
|
328
|
-
createCfnOutput(`${id}-functionName`, scope, cloudfrontFunction.functionName)
|
|
327
|
+
utils.createCfnOutput(`${id}-functionArn`, scope, cloudfrontFunction.functionArn)
|
|
328
|
+
utils.createCfnOutput(`${id}-functionName`, scope, cloudfrontFunction.functionName)
|
|
329
329
|
|
|
330
330
|
return cloudfrontFunction
|
|
331
331
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import * as cloudtrail from 'aws-cdk-lib/aws-cloudtrail'
|
|
2
2
|
import * as logs from 'aws-cdk-lib/aws-logs'
|
|
3
3
|
import * as s3 from 'aws-cdk-lib/aws-s3'
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
4
|
+
import * as common from '../../common'
|
|
5
|
+
import * as types from '../../types'
|
|
6
|
+
import * as utils from '../../utils'
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @stability stable
|
|
10
10
|
* @category Management & Governance
|
|
11
11
|
* @summary Provides operations on AWS CloudTrail.
|
|
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.
|
|
12
|
+
* - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
|
|
13
|
+
* - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
|
|
14
14
|
* @example
|
|
15
15
|
* import * as common from '@gradientedge/cdk-utils'
|
|
16
16
|
*
|
|
17
|
-
* class CustomConstruct extends common.CommonConstruct {
|
|
17
|
+
* class CustomConstruct extends common.common.CommonConstruct {
|
|
18
18
|
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
19
19
|
* super(parent, id, props)
|
|
20
20
|
* this.props = props
|
|
@@ -35,8 +35,8 @@ export class CloudTrailManager {
|
|
|
35
35
|
/**
|
|
36
36
|
* @summary Method to create a cloud trail
|
|
37
37
|
* @param {string} id scoped id of the resource
|
|
38
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
39
|
-
* @param {CloudTrailProps} props
|
|
38
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
39
|
+
* @param {types.CloudTrailProps} props
|
|
40
40
|
* @param {logs.CfnLogGroup} logGroup
|
|
41
41
|
* @param {s3.IBucket} dataBucket
|
|
42
42
|
* @param {s3.IBucket} logBucket
|
|
@@ -44,8 +44,8 @@ export class CloudTrailManager {
|
|
|
44
44
|
*/
|
|
45
45
|
public createCloudTrail(
|
|
46
46
|
id: string,
|
|
47
|
-
scope: CommonConstruct,
|
|
48
|
-
props: CloudTrailProps,
|
|
47
|
+
scope: common.CommonConstruct,
|
|
48
|
+
props: types.CloudTrailProps,
|
|
49
49
|
logGroup: logs.CfnLogGroup,
|
|
50
50
|
dataBucket: s3.IBucket,
|
|
51
51
|
logBucket: s3.IBucket,
|
|
@@ -84,8 +84,8 @@ export class CloudTrailManager {
|
|
|
84
84
|
cloudTrail.addDependsOn(logGroup)
|
|
85
85
|
cloudTrail.addDependsOn(role)
|
|
86
86
|
|
|
87
|
-
createCfnOutput(`${id}-trailName`, scope, cloudTrail.trailName)
|
|
88
|
-
createCfnOutput(`${id}-trailArn`, scope, cloudTrail.attrArn)
|
|
87
|
+
utils.createCfnOutput(`${id}-trailName`, scope, cloudTrail.trailName)
|
|
88
|
+
utils.createCfnOutput(`${id}-trailArn`, scope, cloudTrail.attrArn)
|
|
89
89
|
|
|
90
90
|
return { cloudTrailRole: role, cloudTrail }
|
|
91
91
|
}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
1
|
import * as cdk from 'aws-cdk-lib'
|
|
2
2
|
import * as watch from 'aws-cdk-lib/aws-cloudwatch'
|
|
3
3
|
import { IMetric } from 'aws-cdk-lib/aws-cloudwatch'
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
import * as common from '../../common'
|
|
5
|
+
import * as types from '../../types'
|
|
6
|
+
import * as utils from '../../utils'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @category Utils
|
|
10
|
+
*/
|
|
11
|
+
enum CloudWatchWidgetType {
|
|
12
|
+
Text = 'Text',
|
|
13
|
+
SingleValue = 'SingleValue',
|
|
14
|
+
Graph = 'Graph',
|
|
15
|
+
AlarmStatus = 'AlarmStatus',
|
|
16
|
+
LogQuery = 'LogQuery',
|
|
17
|
+
}
|
|
16
18
|
|
|
17
19
|
/**
|
|
18
20
|
* @stability stable
|
|
19
21
|
* @category Management & Governance
|
|
20
22
|
* @summary Provides operations on AWS CloudWatch.
|
|
21
|
-
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
22
|
-
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
23
|
+
* - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
|
|
24
|
+
* - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
|
|
23
25
|
* @example
|
|
24
26
|
* import * as common from '@gradientedge/cdk-utils'
|
|
25
27
|
*
|
|
26
|
-
* class CustomConstruct extends common.CommonConstruct {
|
|
28
|
+
* class CustomConstruct extends common.common.CommonConstruct {
|
|
27
29
|
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
28
30
|
* super(parent, id, props)
|
|
29
31
|
* this.props = props
|
|
@@ -37,10 +39,10 @@ export class CloudWatchManager {
|
|
|
37
39
|
/**
|
|
38
40
|
* @summary Method to create a cloudwatch alarm for a given expression
|
|
39
41
|
* @param {string} id scoped id of the resource
|
|
40
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
41
|
-
* @param {AlarmProps} props
|
|
42
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
43
|
+
* @param {types.AlarmProps} props
|
|
42
44
|
*/
|
|
43
|
-
public createAlarmForExpression(id: string, scope: CommonConstruct, props: AlarmProps) {
|
|
45
|
+
public createAlarmForExpression(id: string, scope: common.CommonConstruct, props: types.AlarmProps) {
|
|
44
46
|
if (!props) throw `Alarm props undefined`
|
|
45
47
|
|
|
46
48
|
if (!props.expression) throw `Could not find expression for Alarm props for id:${id}`
|
|
@@ -66,8 +68,8 @@ export class CloudWatchManager {
|
|
|
66
68
|
datapointsToAlarm: props.datapointsToAlarm,
|
|
67
69
|
})
|
|
68
70
|
|
|
69
|
-
createCfnOutput(`${id}-alarmArn`, scope, alarm.alarmArn)
|
|
70
|
-
createCfnOutput(`${id}-alarmName`, scope, alarm.alarmName)
|
|
71
|
+
utils.createCfnOutput(`${id}-alarmArn`, scope, alarm.alarmArn)
|
|
72
|
+
utils.createCfnOutput(`${id}-alarmName`, scope, alarm.alarmName)
|
|
71
73
|
|
|
72
74
|
return alarm
|
|
73
75
|
}
|
|
@@ -75,11 +77,16 @@ export class CloudWatchManager {
|
|
|
75
77
|
/**
|
|
76
78
|
* @summary Method to create a cloudwatch alarm for a given metric
|
|
77
79
|
* @param {string} id scoped id of the resource
|
|
78
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
79
|
-
* @param {AlarmProps} props
|
|
80
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
81
|
+
* @param {types.AlarmProps} props
|
|
80
82
|
* @param metric
|
|
81
83
|
*/
|
|
82
|
-
public createAlarmForMetric(
|
|
84
|
+
public createAlarmForMetric(
|
|
85
|
+
id: string,
|
|
86
|
+
scope: common.CommonConstruct,
|
|
87
|
+
props: types.AlarmProps,
|
|
88
|
+
metric: watch.Metric
|
|
89
|
+
) {
|
|
83
90
|
if (!props) throw `Alarm props undefined`
|
|
84
91
|
|
|
85
92
|
const alarm = metric.createAlarm(scope, `${id}`, {
|
|
@@ -92,8 +99,8 @@ export class CloudWatchManager {
|
|
|
92
99
|
datapointsToAlarm: props.datapointsToAlarm,
|
|
93
100
|
})
|
|
94
101
|
|
|
95
|
-
createCfnOutput(`${id}-alarmArn`, scope, alarm.alarmArn)
|
|
96
|
-
createCfnOutput(`${id}-alarmName`, scope, alarm.alarmName)
|
|
102
|
+
utils.createCfnOutput(`${id}-alarmArn`, scope, alarm.alarmArn)
|
|
103
|
+
utils.createCfnOutput(`${id}-alarmName`, scope, alarm.alarmName)
|
|
97
104
|
|
|
98
105
|
return alarm
|
|
99
106
|
}
|
|
@@ -101,11 +108,16 @@ export class CloudWatchManager {
|
|
|
101
108
|
/**
|
|
102
109
|
* @summary Method to create a cloudwatch dashboard
|
|
103
110
|
* @param {string} id scoped id of the resource
|
|
104
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
105
|
-
* @param {DashboardProps} props
|
|
111
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
112
|
+
* @param {types.DashboardProps} props
|
|
106
113
|
* @param widgets
|
|
107
114
|
*/
|
|
108
|
-
public createDashboard(
|
|
115
|
+
public createDashboard(
|
|
116
|
+
id: string,
|
|
117
|
+
scope: common.CommonConstruct,
|
|
118
|
+
props: types.DashboardProps,
|
|
119
|
+
widgets?: watch.IWidget[][]
|
|
120
|
+
) {
|
|
109
121
|
if (!props) throw `Dashboard props undefined`
|
|
110
122
|
|
|
111
123
|
const dashboard = new watch.Dashboard(scope, `${id}`, {
|
|
@@ -116,17 +128,17 @@ export class CloudWatchManager {
|
|
|
116
128
|
widgets: widgets,
|
|
117
129
|
})
|
|
118
130
|
|
|
119
|
-
createCfnOutput(`${id}-dashboardName`, scope, props.dashboardName)
|
|
131
|
+
utils.createCfnOutput(`${id}-dashboardName`, scope, props.dashboardName)
|
|
120
132
|
|
|
121
133
|
return dashboard
|
|
122
134
|
}
|
|
123
135
|
|
|
124
136
|
/**
|
|
125
137
|
* @summary Method to create cloudwatch widgets
|
|
126
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
138
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
127
139
|
* @param props
|
|
128
140
|
*/
|
|
129
|
-
public createWidgets(scope: CommonConstruct, props: any[]) {
|
|
141
|
+
public createWidgets(scope: common.CommonConstruct, props: any[]) {
|
|
130
142
|
if (!props || props.length == 0) throw `Widget props undefined`
|
|
131
143
|
|
|
132
144
|
const widgets: any = []
|
|
@@ -138,10 +150,10 @@ export class CloudWatchManager {
|
|
|
138
150
|
/**
|
|
139
151
|
* @summary Method to create a cloudwatch widget
|
|
140
152
|
* @param {string} id scoped id of the resource
|
|
141
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
153
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
142
154
|
* @param props
|
|
143
155
|
*/
|
|
144
|
-
public createWidget(id: string, scope: CommonConstruct, props: any) {
|
|
156
|
+
public createWidget(id: string, scope: common.CommonConstruct, props: any) {
|
|
145
157
|
if (!props) throw `Widget props undefined`
|
|
146
158
|
|
|
147
159
|
const metrics = this.determineMetrics(scope, props.metricProps)
|
|
@@ -168,10 +180,10 @@ export class CloudWatchManager {
|
|
|
168
180
|
/**
|
|
169
181
|
* @summary Method to create a cloudwatch text widget
|
|
170
182
|
* @param {string} id scoped id of the resource
|
|
171
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
172
|
-
* @param {TextWidgetProps} props
|
|
183
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
184
|
+
* @param {types.TextWidgetProps} props
|
|
173
185
|
*/
|
|
174
|
-
public createTextWidget(id: string, scope: CommonConstruct, props: TextWidgetProps) {
|
|
186
|
+
public createTextWidget(id: string, scope: common.CommonConstruct, props: types.TextWidgetProps) {
|
|
175
187
|
const widget = new watch.TextWidget({
|
|
176
188
|
markdown: props.markdown,
|
|
177
189
|
width: props.width,
|
|
@@ -186,11 +198,16 @@ export class CloudWatchManager {
|
|
|
186
198
|
/**
|
|
187
199
|
* @summary Method to create a cloudwatch numeric widget
|
|
188
200
|
* @param {string} id scoped id of the resource
|
|
189
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
190
|
-
* @param {NumericWidgetProps} props
|
|
201
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
202
|
+
* @param {types.NumericWidgetProps} props
|
|
191
203
|
* @param metrics
|
|
192
204
|
*/
|
|
193
|
-
public createSingleValueWidget(
|
|
205
|
+
public createSingleValueWidget(
|
|
206
|
+
id: string,
|
|
207
|
+
scope: common.CommonConstruct,
|
|
208
|
+
props: types.NumericWidgetProps,
|
|
209
|
+
metrics: IMetric[]
|
|
210
|
+
) {
|
|
194
211
|
const widget = new watch.SingleValueWidget({
|
|
195
212
|
metrics: metrics,
|
|
196
213
|
setPeriodToTimeRange: props.setPeriodToTimeRange,
|
|
@@ -208,15 +225,15 @@ export class CloudWatchManager {
|
|
|
208
225
|
/**
|
|
209
226
|
* @summary Method to create a cloudwatch graph widget
|
|
210
227
|
* @param {string} id scoped id of the resource
|
|
211
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
212
|
-
* @param {GraphWidgetProps} props
|
|
228
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
229
|
+
* @param {types.GraphWidgetProps} props
|
|
213
230
|
* @param leftYMetrics
|
|
214
231
|
* @param rightYMetrics
|
|
215
232
|
*/
|
|
216
233
|
public createGraphWidget(
|
|
217
234
|
id: string,
|
|
218
|
-
scope: CommonConstruct,
|
|
219
|
-
props: GraphWidgetProps,
|
|
235
|
+
scope: common.CommonConstruct,
|
|
236
|
+
props: types.GraphWidgetProps,
|
|
220
237
|
leftYMetrics?: IMetric[],
|
|
221
238
|
rightYMetrics?: IMetric[]
|
|
222
239
|
) {
|
|
@@ -244,14 +261,14 @@ export class CloudWatchManager {
|
|
|
244
261
|
/**
|
|
245
262
|
* @summary Method to create a cloudwatch alarm status widget
|
|
246
263
|
* @param {string} id scoped id of the resource
|
|
247
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
248
|
-
* @param {AlarmStatusWidgetProps} props
|
|
264
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
265
|
+
* @param {types.AlarmStatusWidgetProps} props
|
|
249
266
|
* @param {watch.IAlarm[]} alarms
|
|
250
267
|
*/
|
|
251
268
|
public createAlarmStatusWidget(
|
|
252
269
|
id: string,
|
|
253
|
-
scope: CommonConstruct,
|
|
254
|
-
props: AlarmStatusWidgetProps,
|
|
270
|
+
scope: common.CommonConstruct,
|
|
271
|
+
props: types.AlarmStatusWidgetProps,
|
|
255
272
|
alarms: watch.IAlarm[]
|
|
256
273
|
) {
|
|
257
274
|
const widget = new watch.AlarmStatusWidget({
|
|
@@ -269,11 +286,16 @@ export class CloudWatchManager {
|
|
|
269
286
|
/**
|
|
270
287
|
* @summary Method to create a cloudwatch log query widget
|
|
271
288
|
* @param {string} id scoped id of the resource
|
|
272
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
273
|
-
* @param {LogQueryWidgetProps} props
|
|
289
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
290
|
+
* @param {types.LogQueryWidgetProps} props
|
|
274
291
|
* @param {string[]} logGroupNames
|
|
275
292
|
*/
|
|
276
|
-
public createLogQueryWidget(
|
|
293
|
+
public createLogQueryWidget(
|
|
294
|
+
id: string,
|
|
295
|
+
scope: common.CommonConstruct,
|
|
296
|
+
props: types.LogQueryWidgetProps,
|
|
297
|
+
logGroupNames: string[]
|
|
298
|
+
) {
|
|
277
299
|
const widget = new watch.LogQueryWidget({
|
|
278
300
|
logGroupNames: logGroupNames,
|
|
279
301
|
queryString: props.queryString,
|
|
@@ -291,13 +313,13 @@ export class CloudWatchManager {
|
|
|
291
313
|
|
|
292
314
|
/**
|
|
293
315
|
* @summary Utility method to determine the metrics and dimensions
|
|
294
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
295
|
-
* @param {MetricProps[]} metricProps
|
|
316
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
317
|
+
* @param {types.MetricProps[]} metricProps
|
|
296
318
|
*/
|
|
297
|
-
private determineMetrics(scope: CommonConstruct, metricProps: MetricProps[]) {
|
|
319
|
+
private determineMetrics(scope: common.CommonConstruct, metricProps: types.MetricProps[]) {
|
|
298
320
|
const metrics: watch.IMetric[] = []
|
|
299
321
|
if (metricProps) {
|
|
300
|
-
metricProps.forEach((metricProp: MetricProps) => {
|
|
322
|
+
metricProps.forEach((metricProp: types.MetricProps) => {
|
|
301
323
|
let metricDimensions: watch.DimensionHash = metricProp.dimensionsMap || {}
|
|
302
324
|
if (metricProp.functionName) {
|
|
303
325
|
metricDimensions = {
|
|
@@ -350,10 +372,10 @@ export class CloudWatchManager {
|
|
|
350
372
|
/**
|
|
351
373
|
* @summary Utility method to determine the configured alarms
|
|
352
374
|
* @param {string} id scoped id of the resource
|
|
353
|
-
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
375
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
354
376
|
* @param {watch.AlarmProps[]} alarmProps
|
|
355
377
|
*/
|
|
356
|
-
private determineAlarms(id: string, scope: CommonConstruct, alarmProps: watch.AlarmProps[]) {
|
|
378
|
+
private determineAlarms(id: string, scope: common.CommonConstruct, alarmProps: watch.AlarmProps[]) {
|
|
357
379
|
const alarms: watch.IAlarm[] = []
|
|
358
380
|
if (alarmProps) {
|
|
359
381
|
alarmProps.forEach((alarmProp: watch.AlarmProps) => {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { CommonConstruct } from '../common/commonConstruct'
|
|
2
|
-
import * as codebuild from 'aws-cdk-lib/aws-codebuild'
|
|
3
1
|
import * as cdk from 'aws-cdk-lib'
|
|
2
|
+
import * as codebuild from 'aws-cdk-lib/aws-codebuild'
|
|
3
|
+
import * as common from '../../common'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @stability stable
|
|
7
7
|
* @category Developer Tools
|
|
8
8
|
* @summary Provides operations on AWS Code Build.
|
|
9
|
-
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
10
|
-
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
9
|
+
* - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
|
|
10
|
+
* - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
|
|
11
11
|
* @example
|
|
12
|
-
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
12
|
+
* import { common.CommonConstruct } from '@gradientedge/cdk-utils'
|
|
13
13
|
*
|
|
14
|
-
* class CustomConstruct extends CommonConstruct {
|
|
14
|
+
* class CustomConstruct extends common.CommonConstruct {
|
|
15
15
|
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
16
16
|
* super(parent, id, props)
|
|
17
17
|
* this.props = props
|
|
@@ -28,7 +28,7 @@ export class CodeBuildManager {
|
|
|
28
28
|
* @param scope
|
|
29
29
|
* @param dockerfilePath
|
|
30
30
|
*/
|
|
31
|
-
public createImageForCloudfrontInvalidation(id: string, scope: CommonConstruct, dockerfilePath: string) {
|
|
31
|
+
public createImageForCloudfrontInvalidation(id: string, scope: common.CommonConstruct, dockerfilePath: string) {
|
|
32
32
|
return scope.ecrManager.createDockerImage(`${id}-build-image`, scope, dockerfilePath)
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -42,7 +42,7 @@ export class CodeBuildManager {
|
|
|
42
42
|
*/
|
|
43
43
|
public createProjectForCloudfrontInvalidation(
|
|
44
44
|
id: string,
|
|
45
|
-
scope: CommonConstruct,
|
|
45
|
+
scope: common.CommonConstruct,
|
|
46
46
|
dockerFilepath: string,
|
|
47
47
|
distributionId: string,
|
|
48
48
|
paths?: string
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb'
|
|
2
|
+
import * as common from '../../common'
|
|
3
|
+
import * as types from '../../types'
|
|
4
|
+
import * as utils from '../../utils'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @stability stable
|
|
8
|
+
* @category Storage
|
|
9
|
+
* @summary Provides operations on AWS DynamoDB.
|
|
10
|
+
* - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
|
|
11
|
+
* - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
|
|
12
|
+
* @example
|
|
13
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
14
|
+
*
|
|
15
|
+
* class CustomConstruct extends CommonConstruct {
|
|
16
|
+
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
17
|
+
* super(parent, id, props)
|
|
18
|
+
* this.props = props
|
|
19
|
+
* this.dynamodbManager.createTable('MyTable', this, tableProps)
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* @see [CDK Certificate Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb-readme.html}
|
|
24
|
+
*/
|
|
25
|
+
export class DynamodbManager {
|
|
26
|
+
/**
|
|
27
|
+
* @summary Method to create a table
|
|
28
|
+
* @param {string} id scoped id of the resource
|
|
29
|
+
* @param {common.CommonConstruct} scope scope in which this resource is defined
|
|
30
|
+
* @param {types.TableProps} props table props
|
|
31
|
+
*/
|
|
32
|
+
public createTable(id: string, scope: common.CommonConstruct, props: types.TableProps) {
|
|
33
|
+
if (!props) throw `Table props undefined`
|
|
34
|
+
|
|
35
|
+
const table = new dynamodb.Table(scope, `${id}`, {
|
|
36
|
+
tableName: `${props.tableName}-${scope.props.stage}`,
|
|
37
|
+
partitionKey: props.partitionKey,
|
|
38
|
+
sortKey: props.sortKey,
|
|
39
|
+
kinesisStream: props.kinesisStream,
|
|
40
|
+
readCapacity: props.readCapacity,
|
|
41
|
+
writeCapacity: props.writeCapacity,
|
|
42
|
+
billingMode: props.billingMode,
|
|
43
|
+
pointInTimeRecovery: props.pointInTimeRecovery,
|
|
44
|
+
encryption: props.encryption,
|
|
45
|
+
encryptionKey: props.encryptionKey,
|
|
46
|
+
timeToLiveAttribute: props.timeToLiveAttribute,
|
|
47
|
+
stream: props.stream,
|
|
48
|
+
removalPolicy: props.removalPolicy,
|
|
49
|
+
replicationRegions: props.replicationRegions,
|
|
50
|
+
replicationTimeout: props.replicationTimeout,
|
|
51
|
+
waitForReplicationToFinish: props.waitForReplicationToFinish,
|
|
52
|
+
contributorInsightsEnabled: props.contributorInsightsEnabled,
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
utils.createCfnOutput(`${id}-tableName`, scope, table.tableName)
|
|
56
|
+
utils.createCfnOutput(`${id}-tableArn`, scope, table.tableArn)
|
|
57
|
+
|
|
58
|
+
return table
|
|
59
|
+
}
|
|
60
|
+
}
|