@sylvesterllc/aws-constructs 1.0.31 → 1.0.34
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/__tests__/data/testConfig.tsx +136 -0
- package/__tests__/mocks/ResourceMock.ts +10 -0
- package/__tests__/router.test.ts +195 -0
- package/dist/config/AppConfig.js +11 -1
- package/dist/config/customConfigs/ResourceAppConfig.d.ts +4 -1
- package/dist/config/customConfigs/ResourceAppConfig.js +1 -1
- package/dist/config/types/LogDuration.d.ts +8 -0
- package/dist/config/types/LogDuration.js +13 -0
- package/dist/config/types/TsgAuthorizerProp.d.ts +6 -0
- package/dist/config/types/TsgAuthorizerProp.js +3 -0
- package/dist/config/types/TsgAuthorizerType.d.ts +4 -0
- package/dist/config/types/TsgAuthorizerType.js +9 -0
- package/dist/config/types/TsgEc2Prop.d.ts +7 -0
- package/dist/config/types/TsgEc2Prop.js +3 -0
- package/dist/config/types/TsgKeyPair.d.ts +4 -0
- package/dist/config/types/TsgKeyPair.js +3 -0
- package/dist/config/types/TsgLambdaProp.d.ts +2 -0
- package/dist/config/types/TsgLambdaProp.js +1 -1
- package/dist/config/types/TsgLambdaProps.d.ts +0 -2
- package/dist/config/types/TsgLambdaProps.js +1 -1
- package/dist/config/types/index.d.ts +3 -0
- package/dist/config/types/index.js +4 -1
- package/dist/constructs/MicroService.js +4 -13
- package/dist/interfaces/ApiLambdaResult.d.ts +4 -0
- package/dist/interfaces/ApiLambdaResult.js +3 -0
- package/dist/resources/dynamodb/CreateDynamo.js +3 -3
- package/dist/resources/ec2/create-ec2-instance.d.ts +9 -0
- package/dist/resources/ec2/create-ec2-instance.js +42 -0
- package/dist/resources/gateway/CreateApiAndAttachLambdas.d.ts +24 -0
- package/dist/resources/gateway/CreateApiAndAttachLambdas.js +89 -0
- package/dist/resources/helpers/createRoutes.d.ts +2 -2
- package/dist/resources/helpers/createRoutes.js +3 -3
- package/dist/resources/lambda/createLambda.d.ts +5 -4
- package/dist/resources/lambda/createLambda.js +49 -28
- package/dist/resources/{helpers/createAuthorizer.d.ts → lambda-authorizer/TsgJwtTokenAuthorizer.d.ts} +2 -4
- package/dist/resources/lambda-authorizer/TsgJwtTokenAuthorizer.js +80 -0
- package/dist/resources/lambda-authorizer/TsgRequestAuthorizer.d.ts +12 -0
- package/dist/resources/lambda-authorizer/TsgRequestAuthorizer.js +32 -0
- package/dist/resources/lambda-authorizer/createAuthorizerHelpers.d.ts +5 -0
- package/dist/resources/lambda-authorizer/createAuthorizerHelpers.js +50 -0
- package/jest.config.js +9 -0
- package/jest.config.ts.old +20 -0
- package/package.json +13 -11
- package/src/config/AppConfig.ts +13 -0
- package/src/config/customConfigs/ResourceAppConfig.ts +5 -1
- package/src/config/types/LogDuration.ts +8 -0
- package/src/config/types/TsgAuthorizerProp.ts +9 -0
- package/src/config/types/TsgAuthorizerType.ts +5 -0
- package/src/config/types/TsgEc2Prop.ts +9 -0
- package/src/config/types/TsgKeyPair.ts +6 -0
- package/src/config/types/TsgLambdaProp.ts +4 -0
- package/src/config/types/TsgLambdaProps.ts +0 -1
- package/src/config/types/index.ts +3 -1
- package/src/constructs/MicroService.ts +4 -14
- package/src/interfaces/ApiLambdaResult.ts +6 -0
- package/src/resources/dynamodb/CreateDynamo.ts +1 -1
- package/src/resources/ec2/create-ec2-instance.ts +53 -0
- package/src/resources/gateway/CreateApiAndAttachLambdas.ts +137 -0
- package/src/resources/helpers/createRoutes.ts +3 -3
- package/src/resources/lambda/createLambda.ts +83 -55
- package/src/resources/{helpers/createAuthorizer.ts → lambda-authorizer/TsgJwtTokenAuthorizer.ts} +3 -3
- package/src/resources/lambda-authorizer/TsgRequestAuthorizer.ts +36 -0
- package/src/resources/lambda-authorizer/createAuthorizerHelpers.ts +69 -0
- package/dist/resources/gateway/createMicroServiceBundle.d.ts +0 -14
- package/dist/resources/gateway/createMicroServiceBundle.js +0 -127
- package/dist/resources/helpers/createAuthorizer.js +0 -81
- package/src/resources/gateway/createMicroServiceBundle.ts +0 -184
|
@@ -26,7 +26,7 @@ class CreateDynamoDb extends baseResource_1.BaseResource {
|
|
|
26
26
|
});
|
|
27
27
|
this.config.RESOURCES.DYNAMO?.TABLES?.[idx].indexes.map((gsi) => {
|
|
28
28
|
const gsiProps = {
|
|
29
|
-
indexName:
|
|
29
|
+
indexName: gsi.indexName,
|
|
30
30
|
partitionKey: gsi.partitionKey,
|
|
31
31
|
sortKey: gsi.sortKey,
|
|
32
32
|
projectionType: gsi.projectionType
|
|
@@ -67,6 +67,7 @@ class CreateDynamoDb extends baseResource_1.BaseResource {
|
|
|
67
67
|
return `${this.config.AppPrefix}-${tableName}`;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
exports.CreateDynamoDb = CreateDynamoDb;
|
|
70
71
|
CreateDynamoDb.ReadWriteActions = [
|
|
71
72
|
"dynamodb:BatchGetItem",
|
|
72
73
|
"dynamodb:BatchWriteItem",
|
|
@@ -81,5 +82,4 @@ CreateDynamoDb.ReadWriteActions = [
|
|
|
81
82
|
"dynamodb:Scan",
|
|
82
83
|
"dynamodb:UpdateItem",
|
|
83
84
|
];
|
|
84
|
-
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRHluYW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9keW5hbW9kYi9DcmVhdGVEeW5hbW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELDJEQUF1RjtBQUd2Rix1REFBb0Q7QUFHcEQsTUFBYSxjQUFlLFNBQVEsMkJBQW1CO0lBaUJuRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBc0IsS0FBZ0IsRUFBWSxNQUFpQjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBREgsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUFZLFdBQU0sR0FBTixNQUFNLENBQVc7UUFHL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkQ7SUFDTCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdCO1FBRWpDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2xELEdBQUcsSUFBSTtnQkFDUCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO2FBRXZDLENBQUMsQ0FBQztZQUlILElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBRTVELE1BQU0sUUFBUSxHQUE4QjtvQkFDeEMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztvQkFDN0MsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO29CQUM5QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87b0JBQ3BCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztpQkFFckMsQ0FBQztnQkFFRixPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUk1QixDQUFDO0lBR1MsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsSUFBSSxDQUFDLGdCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN0QyxJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3RDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUzthQUNyQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXO1FBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUUzRCxNQUFNLElBQUksR0FBUSxFQUFFLENBQUM7WUFFckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHO2dCQUNoQixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2FBQzFCLENBQUM7WUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUM7WUFFakMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxPQUFPLEdBQUc7b0JBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtvQkFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtpQkFDdkIsQ0FBQTthQUNKO1lBQ0QsT0FBTyxJQUFrQixDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7SUFDbkQsQ0FBQzs7QUFwR00sK0JBQWdCLEdBQWE7SUFDaEMsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0IscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4QixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLDJCQUEyQjtJQUMzQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixxQkFBcUI7Q0FDeEIsQ0FBQztBQWZPLHdDQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBHbG9iYWxTZWNvbmRhcnlJbmRleFByb3BzLFRhYmxlLCBUYWJsZVByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWcvQXBwQ29uZmlnXCI7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tIFwiLi4vYmFzZS9iYXNlUmVzb3VyY2VcIjtcblxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlRHluYW1vRGIgZXh0ZW5kcyBCYXNlUmVzb3VyY2U8VGFibGU+IHtcblxuICAgIHN0YXRpYyBSZWFkV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXCJkeW5hbW9kYjpCYXRjaEdldEl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpCYXRjaFdyaXRlSXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkNvbmRpdGlvbkNoZWNrSXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkRlbGV0ZUl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpEZXNjcmliZVRhYmxlXCIsXG4gICAgICAgIFwiZHluYW1vZGI6R2V0SXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkdldFJlY29yZHNcIixcbiAgICAgICAgXCJkeW5hbW9kYjpHZXRTaGFyZEl0ZXJhdG9yXCIsXG4gICAgICAgIFwiZHluYW1vZGI6UHV0SXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOlF1ZXJ5XCIsXG4gICAgICAgIFwiZHluYW1vZGI6U2NhblwiLFxuICAgICAgICBcImR5bmFtb2RiOlVwZGF0ZUl0ZW1cIixcbiAgICBdO1xuXG4gICAgZ2V0IENyZWF0ZWRUYWJsZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZWRSZXNvdXJjZXM7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY29wZTogQ29uc3RydWN0LCBwcm90ZWN0ZWQgY29uZmlnOiBBcHBDb25maWcpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGNvbmZpZyk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVkUmVzb3VyY2VzID0gdGhpcy5jcmVhdGVSZXNvdXJjZShzY29wZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuY3JlYXRlZFJlc291cmNlcykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXQoc2NvcGUsIHRoaXMuY3JlYXRlZFJlc291cmNlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCk6IFRhYmxlW10ge1xuICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gdGhpcy5jcmVhdGVQcm9wcygpO1xuXG4gICAgICAgICAgICBjb25zdCB0YWJsZXMgPSBwcm9wcz8ubWFwKChwcm9wOiBhbnksIGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGJUYWJsZSA9IG5ldyBUYWJsZShzY29wZSwgYCR7cHJvcC50YWJsZU5hbWV9YCwge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcm9wLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5SRVNPVVJDRVMuRFlOQU1PPy5UQUJMRVM/LltpZHhdLmluZGV4ZXMubWFwKChnc2kpID0+IHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBnc2lQcm9wczogR2xvYmFsU2Vjb25kYXJ5SW5kZXhQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4TmFtZTogdGhpcy5nZW5lcmF0ZURiTmFtZShnc2kuaW5kZXhOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpdGlvbktleTogZ3NpLnBhcnRpdGlvbktleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRLZXk6IGdzaS5zb3J0S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdGlvblR5cGU6IGdzaS5wcm9qZWN0aW9uVHlwZVxuXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgZGJUYWJsZS5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleChnc2lQcm9wcyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRiVGFibGU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHRhYmxlcyA/PyBbXTtcbiAgICAgICBcblxuICAgICAgIFxuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU91dHB1dDxUPihzY29wZTogQ29uc3RydWN0LCBjcmVhdGVkQXNzZXRzOiBUW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVkUmVzb3VyY2VzIS5mb3JFYWNoKCh4LCBpZHgpID0+IHtcbiAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBkeW5hbW9UYWJsZSR7aWR4fWAsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogeC50YWJsZU5hbWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVByb3BzKCkge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMuY29uZmlnLlJFU09VUkNFUz8uRFlOQU1PPy5UQUJMRVM/Lm1hcCgoeCkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBwcm9wOiBhbnkgPSB7fTtcblxuICAgICAgICAgICAgcHJvcC50YWJsZU5hbWUgPSB0aGlzLmdlbmVyYXRlRGJOYW1lKHgudGFibGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgcHJvcC5wYXJ0aXRpb25LZXkgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogeC5wcmltYXJ5S2V5Lm5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogeC5wcmltYXJ5S2V5LnR5cGVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHByb3AuYmlsbGluZ01vZGUgPSB4LmJpbGxpbmdNb2RlO1xuXG4gICAgICAgICAgICBpZiAoeC5zb3J0S2V5KSB7XG4gICAgICAgICAgICAgICAgcHJvcC5zb3J0S2V5ID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiB4LnNvcnRLZXkubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogeC5zb3J0S2V5LnR5cGUsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHByb3AgYXMgVGFibGVQcm9wcztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVEYk5hbWUodGFibGVOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHt0YWJsZU5hbWV9YDtcbiAgICB9XG59Il19
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRHluYW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9keW5hbW9kYi9DcmVhdGVEeW5hbW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELDJEQUF1RjtBQUd2Rix1REFBb0Q7QUFHcEQsTUFBYSxjQUFlLFNBQVEsMkJBQW1CO0lBaUJuRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBc0IsS0FBZ0IsRUFBWSxNQUFpQjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBREgsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUFZLFdBQU0sR0FBTixNQUFNLENBQVc7UUFHL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkQ7SUFDTCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdCO1FBRWpDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2xELEdBQUcsSUFBSTtnQkFDUCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO2FBRXZDLENBQUMsQ0FBQztZQUlILElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBRTVELE1BQU0sUUFBUSxHQUE4QjtvQkFDeEMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO29CQUN4QixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7b0JBQzlCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDcEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjO2lCQUVyQyxDQUFDO2dCQUVGLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLElBQUksRUFBRSxDQUFDO0lBSTVCLENBQUM7SUFHUyxZQUFZLENBQUksS0FBZ0IsRUFBRSxhQUFrQjtRQUMxRCxJQUFJLENBQUMsZ0JBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3RDLElBQUksdUJBQVMsQ0FBQyxLQUFLLEVBQUUsY0FBYyxHQUFHLEVBQUUsRUFBRTtnQkFDdEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTO2FBQ3JCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFdBQVc7UUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBRTNELE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQztZQUVyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWxELElBQUksQ0FBQyxZQUFZLEdBQUc7Z0JBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7Z0JBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7YUFDMUIsQ0FBQztZQUVGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUVqQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRztvQkFDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJO29CQUNwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJO2lCQUN2QixDQUFBO2FBQ0o7WUFDRCxPQUFPLElBQWtCLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sY0FBYyxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUNuRCxDQUFDOztBQXRHTCx3Q0F1R0M7QUFyR1UsK0JBQWdCLEdBQWE7SUFDaEMsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0IscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4QixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLDJCQUEyQjtJQUMzQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixxQkFBcUI7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgR2xvYmFsU2Vjb25kYXJ5SW5kZXhQcm9wcyxUYWJsZSwgVGFibGVQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUR5bmFtb0RiIGV4dGVuZHMgQmFzZVJlc291cmNlPFRhYmxlPiB7XG5cbiAgICBzdGF0aWMgUmVhZFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG4gICAgICAgIFwiZHluYW1vZGI6QmF0Y2hHZXRJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6QmF0Y2hXcml0ZUl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpDb25kaXRpb25DaGVja0l0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpEZWxldGVJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6RGVzY3JpYmVUYWJsZVwiLFxuICAgICAgICBcImR5bmFtb2RiOkdldEl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpHZXRSZWNvcmRzXCIsXG4gICAgICAgIFwiZHluYW1vZGI6R2V0U2hhcmRJdGVyYXRvclwiLFxuICAgICAgICBcImR5bmFtb2RiOlB1dEl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpRdWVyeVwiLFxuICAgICAgICBcImR5bmFtb2RiOlNjYW5cIixcbiAgICAgICAgXCJkeW5hbW9kYjpVcGRhdGVJdGVtXCIsXG4gICAgXTtcblxuICAgIGdldCBDcmVhdGVkVGFibGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVkUmVzb3VyY2VzO1xuICAgIH1cbiAgICBcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2NvcGU6IENvbnN0cnVjdCwgcHJvdGVjdGVkIGNvbmZpZzogQXBwQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBjb25maWcpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyA9IHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpO1xuXG4gICAgICAgIGlmICh0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHNjb3BlLCB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlKHNjb3BlOiBDb25zdHJ1Y3QpOiBUYWJsZVtdIHtcbiAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMuY3JlYXRlUHJvcHMoKTtcblxuICAgICAgICAgICAgY29uc3QgdGFibGVzID0gcHJvcHM/Lm1hcCgocHJvcDogYW55LCBpZHg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRiVGFibGUgPSBuZXcgVGFibGUoc2NvcGUsIGAke3Byb3AudGFibGVOYW1lfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJvcCxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuUkVTT1VSQ0VTLkRZTkFNTz8uVEFCTEVTPy5baWR4XS5pbmRleGVzLm1hcCgoZ3NpKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3NpUHJvcHM6IEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleE5hbWU6IGdzaS5pbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aXRpb25LZXk6IGdzaS5wYXJ0aXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0S2V5OiBnc2kuc29ydEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Rpb25UeXBlOiBnc2kucHJvamVjdGlvblR5cGVcblxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGRiVGFibGUuYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXgoZ3NpUHJvcHMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYlRhYmxlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0YWJsZXMgPz8gW107XG4gICAgICAgXG5cbiAgICAgICBcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCwgY3JlYXRlZEFzc2V0czogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyEuZm9yRWFjaCgoeCwgaWR4KSA9PiB7XG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgZHluYW1vVGFibGUke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHgudGFibGVOYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm9wcygpIHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmNvbmZpZy5SRVNPVVJDRVM/LkRZTkFNTz8uVEFCTEVTPy5tYXAoKHgpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgcHJvcDogYW55ID0ge307XG5cbiAgICAgICAgICAgIHByb3AudGFibGVOYW1lID0gdGhpcy5nZW5lcmF0ZURiTmFtZSh4LnRhYmxlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIHByb3AucGFydGl0aW9uS2V5ID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHgucHJpbWFyeUtleS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IHgucHJpbWFyeUtleS50eXBlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwcm9wLmJpbGxpbmdNb2RlID0geC5iaWxsaW5nTW9kZTtcblxuICAgICAgICAgICAgaWYgKHguc29ydEtleSkge1xuICAgICAgICAgICAgICAgIHByb3Auc29ydEtleSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogeC5zb3J0S2V5Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHguc29ydEtleS50eXBlLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9wIGFzIFRhYmxlUHJvcHM7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9wcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlRGJOYW1lKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7dGFibGVOYW1lfWA7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Instance } from "aws-cdk-lib/aws-ec2";
|
|
2
|
+
import { BaseResource } from "../base/baseResource";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { AppConfig } from "../../config/AppConfig";
|
|
5
|
+
export declare class Ec2Instance extends BaseResource<Instance> {
|
|
6
|
+
constructor(scope: Construct, config: AppConfig);
|
|
7
|
+
protected createResource(scope: Construct): Instance[] | null;
|
|
8
|
+
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Ec2Instance = void 0;
|
|
4
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
5
|
+
const baseResource_1 = require("../base/baseResource");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
class Ec2Instance extends baseResource_1.BaseResource {
|
|
8
|
+
constructor(scope, config) {
|
|
9
|
+
super(scope, config);
|
|
10
|
+
const createdAssets = this.createResource(scope);
|
|
11
|
+
this.createOutput(scope, createdAssets);
|
|
12
|
+
}
|
|
13
|
+
createResource(scope) {
|
|
14
|
+
const keyPair = new aws_ec2_1.CfnKeyPair(scope, 'my-key-pair', {
|
|
15
|
+
keyName: 'davis-dsylv-amazon-com',
|
|
16
|
+
publicKeyMaterial: process.env.KEY_PAIR
|
|
17
|
+
});
|
|
18
|
+
const server = new aws_ec2_1.Instance(scope, `my-ec2`, {
|
|
19
|
+
vpc: aws_ec2_1.Vpc.fromLookup(scope, 'VPC', {
|
|
20
|
+
vpcId: process.env.VPC_PRIMARY_ID,
|
|
21
|
+
isDefault: true
|
|
22
|
+
}),
|
|
23
|
+
instanceType: aws_ec2_1.InstanceType.of(aws_ec2_1.InstanceClass.T3, aws_ec2_1.InstanceSize.SMALL),
|
|
24
|
+
machineImage: aws_ec2_1.MachineImage.genericLinux({
|
|
25
|
+
'us-east-1': 'ami-010e83f579f15bba0'
|
|
26
|
+
}),
|
|
27
|
+
keyName: keyPair.keyName
|
|
28
|
+
});
|
|
29
|
+
return [server];
|
|
30
|
+
}
|
|
31
|
+
createOutput(scope, createdAssets) {
|
|
32
|
+
createdAssets.forEach((asset, index) => {
|
|
33
|
+
new aws_cdk_lib_1.CfnOutput(scope, `my-ec2-instance-${index}`, {
|
|
34
|
+
value: `Server Name: ${asset.instancePrivateDnsName} \n
|
|
35
|
+
Private: ${asset.instancePrivateIp} \n
|
|
36
|
+
Public: ${asset.instancePublicIp}`
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.Ec2Instance = Ec2Instance;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVjMi1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvZWMyL2NyZWF0ZS1lYzItaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXlIO0FBQ3pILHVEQUFvRDtBQUdwRCw2Q0FBd0M7QUFFeEMsTUFBYSxXQUFZLFNBQVEsMkJBQXNCO0lBRW5ELFlBQVksS0FBZ0IsRUFBRSxNQUFpQjtRQUMzQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXJCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLFlBQVksQ0FBVyxLQUFLLEVBQUUsYUFBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQjtRQUVyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFVLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtZQUNqRCxPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtTQUMxQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGtCQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUN6QyxHQUFHLEVBQUUsYUFBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUM5QixLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjO2dCQUNqQyxTQUFTLEVBQUUsSUFBSTthQUNsQixDQUFDO1lBQ0YsWUFBWSxFQUFFLHNCQUFZLENBQUMsRUFBRSxDQUFDLHVCQUFhLENBQUMsRUFBRSxFQUFFLHNCQUFZLENBQUMsS0FBSyxDQUFDO1lBQ25FLFlBQVksRUFBRSxzQkFBWSxDQUFDLFlBQVksQ0FBQztnQkFDcEMsV0FBVyxFQUFFLHVCQUF1QjthQUN2QyxDQUFDO1lBQ0YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1NBRTNCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ1MsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFFMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNuQyxJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLG1CQUFtQixLQUFLLEVBQUUsRUFBRTtnQkFDN0MsS0FBSyxFQUFFLGdCQUFpQixLQUFrQixDQUFDLHNCQUFzQjsyQkFDckQsS0FBa0IsQ0FBQyxpQkFBaUI7MEJBQ3JDLEtBQWtCLENBQUMsZ0JBQWdCLEVBQUU7YUFDbkQsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFHUCxDQUFDO0NBR0o7QUE5Q0Qsa0NBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5zdGFuY2UsIEluc3RhbmNlVHlwZSwgSW5zdGFuY2VDbGFzcywgSW5zdGFuY2VTaXplLCBNYWNoaW5lSW1hZ2UsIFZwYywgQ2ZuS2V5UGFpciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tIFwiLi4vYmFzZS9iYXNlUmVzb3VyY2VcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmV4cG9ydCBjbGFzcyBFYzJJbnN0YW5jZSBleHRlbmRzIEJhc2VSZXNvdXJjZTxJbnN0YW5jZT4ge1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgY29uZmlnOiBBcHBDb25maWcpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGNvbmZpZyk7XG5cbiAgICAgICAgY29uc3QgY3JlYXRlZEFzc2V0cyA9IHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0PEluc3RhbmNlPihzY29wZSwgY3JlYXRlZEFzc2V0cyEpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogSW5zdGFuY2VbXSB8IG51bGwge1xuXG4gICAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgQ2ZuS2V5UGFpcihzY29wZSwgJ215LWtleS1wYWlyJywge1xuICAgICAgICAgICAga2V5TmFtZTogJ2RhdmlzLWRzeWx2LWFtYXpvbi1jb20nLFxuICAgICAgICAgICAgcHVibGljS2V5TWF0ZXJpYWw6IHByb2Nlc3MuZW52LktFWV9QQUlSXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHNlcnZlciA9IG5ldyBJbnN0YW5jZShzY29wZSwgYG15LWVjMmAsIHtcbiAgICAgICAgICAgIHZwYzogVnBjLmZyb21Mb29rdXAoc2NvcGUsICdWUEMnLCB7XG4gICAgICAgICAgICAgICAgdnBjSWQ6IHByb2Nlc3MuZW52LlZQQ19QUklNQVJZX0lELFxuICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBpbnN0YW5jZVR5cGU6IEluc3RhbmNlVHlwZS5vZihJbnN0YW5jZUNsYXNzLlQzLCBJbnN0YW5jZVNpemUuU01BTEwpLFxuICAgICAgICAgICAgbWFjaGluZUltYWdlOiBNYWNoaW5lSW1hZ2UuZ2VuZXJpY0xpbnV4KHtcbiAgICAgICAgICAgICAgICAndXMtZWFzdC0xJzogJ2FtaS0wMTBlODNmNTc5ZjE1YmJhMCdcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAga2V5TmFtZToga2V5UGFpci5rZXlOYW1lXG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIFtzZXJ2ZXJdO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuXG4gICAgICAgIGNyZWF0ZWRBc3NldHMuZm9yRWFjaCgoYXNzZXQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgbXktZWMyLWluc3RhbmNlLSR7aW5kZXh9YCwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBgU2VydmVyIE5hbWU6ICR7KGFzc2V0IGFzIEluc3RhbmNlKS5pbnN0YW5jZVByaXZhdGVEbnNOYW1lfSBcXG4gXG4gICAgICAgICAgICAgICAgUHJpdmF0ZTogJHsoYXNzZXQgYXMgSW5zdGFuY2UpLmluc3RhbmNlUHJpdmF0ZUlwfSBcXG4gXG4gICAgICAgICAgICAgICAgUHVibGljOiAkeyhhc3NldCBhcyBJbnN0YW5jZSkuaW5zdGFuY2VQdWJsaWNJcH1gXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cblxuICAgIH1cblxuXG59Il19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { BaseResource } from "../base/baseResource";
|
|
3
|
+
import { ITable } from "aws-cdk-lib/aws-dynamodb";
|
|
4
|
+
import { AppConfig } from "../../config/AppConfig";
|
|
5
|
+
import { ApiLambdaResult } from "../../interfaces/ApiLambdaResult";
|
|
6
|
+
import { TsgAuthorizerType } from "../../config/types/TsgAuthorizerType";
|
|
7
|
+
import { IRestApi } from "aws-cdk-lib/aws-apigateway";
|
|
8
|
+
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
9
|
+
export declare class CreateApiAndAttachLambdas extends BaseResource<ApiLambdaResult> {
|
|
10
|
+
protected readonly config: AppConfig;
|
|
11
|
+
private readonly gatewayApi;
|
|
12
|
+
private readonly layers?;
|
|
13
|
+
private readonly tables?;
|
|
14
|
+
protected readonly requireDynamoTableRefs: boolean;
|
|
15
|
+
protected readonly requireAuthorizer: boolean;
|
|
16
|
+
protected readonly authorizer?: TsgAuthorizerType;
|
|
17
|
+
constructor(scope: Construct, config: AppConfig, gatewayApi: IRestApi, layers?: LayerVersion[] | undefined, tables?: ITable[] | undefined);
|
|
18
|
+
protected createResource(scope: Construct): any[] | null;
|
|
19
|
+
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
20
|
+
private onInit;
|
|
21
|
+
private createAuthorizer;
|
|
22
|
+
private assignAccessToTables;
|
|
23
|
+
private AddRoutes;
|
|
24
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateApiAndAttachLambdas = void 0;
|
|
4
|
+
const baseResource_1 = require("../base/baseResource");
|
|
5
|
+
const TsgAuthorizerType_1 = require("../../config/types/TsgAuthorizerType");
|
|
6
|
+
const TsgJwtTokenAuthorizer_1 = require("../lambda-authorizer/TsgJwtTokenAuthorizer");
|
|
7
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
|
+
const TsgRequestAuthorizer_1 = require("../lambda-authorizer/TsgRequestAuthorizer");
|
|
9
|
+
const createLambda_1 = require("../lambda/createLambda");
|
|
10
|
+
const createRoutes_1 = require("../helpers/createRoutes");
|
|
11
|
+
class CreateApiAndAttachLambdas extends baseResource_1.BaseResource {
|
|
12
|
+
constructor(scope, config, gatewayApi, layers, tables) {
|
|
13
|
+
super(scope, config);
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.gatewayApi = gatewayApi;
|
|
16
|
+
this.layers = layers;
|
|
17
|
+
this.tables = tables;
|
|
18
|
+
this.requireDynamoTableRefs = (this.config.RESOURCES.DYNAMO?.TABLE_REFS?.length ?? 0 > 0) ? true : false;
|
|
19
|
+
this.requireAuthorizer = (this.config.RESOURCES.AUTHORIZER && this.config.RESOURCES.AUTHORIZER.type) ? true : false;
|
|
20
|
+
if (this.requireAuthorizer) {
|
|
21
|
+
this.authorizer = this.config.RESOURCES.AUTHORIZER?.type;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
throw new Error(`You must provide an authorizer type if a Authorizer is required`);
|
|
25
|
+
}
|
|
26
|
+
this.onInit();
|
|
27
|
+
}
|
|
28
|
+
createResource(scope) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
createOutput(scope, createdAssets) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
onInit() {
|
|
35
|
+
let authorizer = undefined;
|
|
36
|
+
// Create Authorizer
|
|
37
|
+
if (this.requireAuthorizer) {
|
|
38
|
+
authorizer = this.createAuthorizer();
|
|
39
|
+
}
|
|
40
|
+
// Create Lambdas
|
|
41
|
+
const lambdas = new createLambda_1.CreateLambda(this.scope, this.config, this.layers);
|
|
42
|
+
// Give Access to Lambdds to All DynamoDb Tables
|
|
43
|
+
if (this.tables) {
|
|
44
|
+
this.assignAccessToTables(this.tables, lambdas.Lambdas);
|
|
45
|
+
}
|
|
46
|
+
// Create Routes on API Gateway for Lambdas from config
|
|
47
|
+
this.AddRoutes(this.config, this.gatewayApi, lambdas.Lambdas, authorizer);
|
|
48
|
+
return lambdas.Lambdas;
|
|
49
|
+
}
|
|
50
|
+
createAuthorizer() {
|
|
51
|
+
let authorizer = undefined;
|
|
52
|
+
if (this.requireAuthorizer && this.authorizer === TsgAuthorizerType_1.TsgAuthorizerType.TOKEN_AUTHORIZER) {
|
|
53
|
+
authorizer = new TsgJwtTokenAuthorizer_1.TsgJwtTokenAuthorizer(this.scope, this.config).JwtAuthorizer;
|
|
54
|
+
authorizer._attachToApi(this.gatewayApi);
|
|
55
|
+
authorizer.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
56
|
+
return authorizer;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
authorizer = new TsgRequestAuthorizer_1.TsgRequestAuthorizer(this.scope, this.config).RequestAuthorizer;
|
|
60
|
+
authorizer._attachToApi(this.gatewayApi);
|
|
61
|
+
authorizer.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
62
|
+
return authorizer;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
assignAccessToTables(tables, lambdas) {
|
|
66
|
+
if (tables) {
|
|
67
|
+
lambdas.forEach((lambda) => {
|
|
68
|
+
tables.forEach((table) => {
|
|
69
|
+
table.grantReadWriteData(lambda);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
AddRoutes(config, gateway, lambdas, authorizer) {
|
|
75
|
+
config.RESOURCES.LAMBDA?.forEach((prop) => {
|
|
76
|
+
const lambdaId = createLambda_1.CreateLambda.getIdForLambda(prop, this.config);
|
|
77
|
+
if (!lambdaId) {
|
|
78
|
+
throw new Error(`Can't find lambda`);
|
|
79
|
+
}
|
|
80
|
+
const lambdaNode = lambdas.find(x => x.node.id === lambdaId);
|
|
81
|
+
if (!lambdaNode) {
|
|
82
|
+
throw new Error("Can't find the Lambda Integration");
|
|
83
|
+
}
|
|
84
|
+
createRoutes_1.Routes.createResource(prop, gateway, lambdaNode, authorizer);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.CreateApiAndAttachLambdas = CreateApiAndAttachLambdas;
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlQXBpQW5kQXR0YWNoTGFtYmRhcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvZ2F0ZXdheS9DcmVhdGVBcGlBbmRBdHRhY2hMYW1iZGFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVEQUFvRDtBQUlwRCw0RUFBeUU7QUFFekUsc0ZBQW1GO0FBQ25GLDZDQUE0QztBQUM1QyxvRkFBaUY7QUFDakYseURBQXNEO0FBS3RELDBEQUFpRDtBQUVqRCxNQUFhLHlCQUEwQixTQUFRLDJCQUE2QjtJQU14RSxZQUFZLEtBQWdCLEVBQ0wsTUFBaUIsRUFDbkIsVUFBb0IsRUFDcEIsTUFBdUIsRUFDdkIsTUFBaUI7UUFDbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUpGLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBR2xDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFcEgsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFD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QUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN4QztZQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUU3RCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQzthQUN4RDtZQUVELHFCQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWpFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBdkhELDhEQXVIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tIFwiLi4vYmFzZS9iYXNlUmVzb3VyY2VcIjtcbmltcG9ydCB7IElUYWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWcvQXBwQ29uZmlnXCI7XG5pbXBvcnQgeyBBcGlMYW1iZGFSZXN1bHQgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9BcGlMYW1iZGFSZXN1bHRcIjtcbmltcG9ydCB7IFRzZ0F1dGhvcml6ZXJUeXBlIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90eXBlcy9Uc2dBdXRob3JpemVyVHlwZVwiO1xuaW1wb3J0IHsgSVJlc3RBcGksIFJlcXVlc3RBdXRob3JpemVyLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IFRzZ0p3dFRva2VuQXV0aG9yaXplciB9IGZyb20gXCIuLi9sYW1iZGEtYXV0aG9yaXplci9Uc2dKd3RUb2tlbkF1dGhvcml6ZXJcIjtcbmltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFRzZ1JlcXVlc3RBdXRob3JpemVyIH0gZnJvbSBcIi4uL2xhbWJkYS1hdXRob3JpemVyL1RzZ1JlcXVlc3RBdXRob3JpemVyXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGEgfSBmcm9tIFwiLi4vbGFtYmRhL2NyZWF0ZUxhbWJkYVwiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBMYXllclZlcnNpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcbmltcG9ydCB7IFRzZ0xhbWJkYVByb3AgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzXCI7XG5pbXBvcnQgeyBSb3V0ZXMgfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVSb3V0ZXNcIjtcblxuZXhwb3J0IGNsYXNzIENyZWF0ZUFwaUFuZEF0dGFjaExhbWJkYXMgZXh0ZW5kcyBCYXNlUmVzb3VyY2U8QXBpTGFtYmRhUmVzdWx0PntcblxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXF1aXJlRHluYW1vVGFibGVSZWZzOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCByZWFkb25seSByZXF1aXJlQXV0aG9yaXplcjogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aG9yaXplcj86IFRzZ0F1dGhvcml6ZXJUeXBlO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCxcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZzogQXBwQ29uZmlnLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdhdGV3YXlBcGk6IElSZXN0QXBpLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxheWVycz86IExheWVyVmVyc2lvbltdLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlcz86IElUYWJsZVtdKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBjb25maWcpO1xuXG4gICAgICAgIHRoaXMucmVxdWlyZUR5bmFtb1RhYmxlUmVmcyA9ICh0aGlzLmNvbmZpZy5SRVNPVVJDRVMuRFlOQU1PPy5UQUJMRV9SRUZTPy5sZW5ndGggPz8gMCA+IDApID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnJlcXVpcmVBdXRob3JpemVyID0gKHRoaXMuY29uZmlnLlJFU09VUkNFUy5BVVRIT1JJWkVSICYmIHRoaXMuY29uZmlnLlJFU09VUkNFUy5BVVRIT1JJWkVSLnR5cGUpID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVBdXRob3JpemVyKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZXIgPSB0aGlzLmNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUj8udHlwZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgWW91IG11c3QgcHJvdmlkZSBhbiBhdXRob3JpemVyIHR5cGUgaWYgYSBBdXRob3JpemVyIGlzIHJlcXVpcmVkYCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIHRoaXMub25Jbml0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlKHNjb3BlOiBDb25zdHJ1Y3QpOiBhbnlbXSB8IG51bGwge1xuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCwgY3JlYXRlZEFzc2V0czogVFtdKTogdm9pZCB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uSW5pdCgpIHtcblxuICAgICAgICBsZXQgYXV0aG9yaXplcjogVG9rZW5BdXRob3JpemVyIHwgUmVxdWVzdEF1dGhvcml6ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgLy8gQ3JlYXRlIEF1dGhvcml6ZXJcbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZUF1dGhvcml6ZXIpIHtcbiAgICAgICAgICAgIGF1dGhvcml6ZXIgPSB0aGlzLmNyZWF0ZUF1dGhvcml6ZXIoKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIExhbWJkYXNcbiAgICAgICAgY29uc3QgbGFtYmRhcyA9IG5ldyBDcmVhdGVMYW1iZGEodGhpcy5zY29wZSwgdGhpcy5jb25maWcsIHRoaXMubGF5ZXJzKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEdpdmUgQWNjZXNzIHRvIExhbWJkZHMgdG8gQWxsIER5bmFtb0RiIFRhYmxlc1xuICAgICAgICBpZiAodGhpcy50YWJsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduQWNjZXNzVG9UYWJsZXModGhpcy50YWJsZXMsIGxhbWJkYXMuTGFtYmRhcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgUm91dGVzIG9uIEFQSSBHYXRld2F5IGZvciBMYW1iZGFzIGZyb20gY29uZmlnXG4gICAgICAgIHRoaXMuQWRkUm91dGVzKHRoaXMuY29uZmlnLCB0aGlzLmdhdGV3YXlBcGksIGxhbWJkYXMuTGFtYmRhcywgYXV0aG9yaXplcik7XG5cbiAgICAgICAgcmV0dXJuIGxhbWJkYXMuTGFtYmRhcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUF1dGhvcml6ZXIoKSB7XG5cbiAgICAgICAgbGV0IGF1dGhvcml6ZXI6IFRva2VuQXV0aG9yaXplciB8IFJlcXVlc3RBdXRob3JpemVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVBdXRob3JpemVyICYmIHRoaXMuYXV0aG9yaXplciA9PT0gVHNnQXV0aG9yaXplclR5cGUuVE9LRU5fQVVUSE9SSVpFUikge1xuXG4gICAgICAgICAgICBhdXRob3JpemVyID0gbmV3IFRzZ0p3dFRva2VuQXV0aG9yaXplcih0aGlzLnNjb3BlLFxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnKS5Kd3RBdXRob3JpemVyO1xuXG4gICAgICAgICAgICBhdXRob3JpemVyLl9hdHRhY2hUb0FwaSh0aGlzLmdhdGV3YXlBcGkpO1xuICAgICAgICAgICAgYXV0aG9yaXplci5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICAgICAgICAgICAgcmV0dXJuIGF1dGhvcml6ZXI7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF1dGhvcml6ZXIgPSBuZXcgVHNnUmVxdWVzdEF1dGhvcml6ZXIodGhpcy5zY29wZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZykuUmVxdWVzdEF1dGhvcml6ZXIgYXMgUmVxdWVzdEF1dGhvcml6ZXI7XG5cbiAgICAgICAgICAgIGF1dGhvcml6ZXIuX2F0dGFjaFRvQXBpKHRoaXMuZ2F0ZXdheUFwaSk7XG4gICAgICAgICAgICBhdXRob3JpemVyLmFwcGx5UmVtb3ZhbFBvbGljeShSZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuXG4gICAgICAgICAgICByZXR1cm4gYXV0aG9yaXplcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXNzaWduQWNjZXNzVG9UYWJsZXModGFibGVzOiBJVGFibGVbXSwgbGFtYmRhczogTm9kZWpzRnVuY3Rpb25bXSkge1xuXG4gICAgICAgIGlmICh0YWJsZXMpIHtcbiAgICAgICAgICAgIGxhbWJkYXMuZm9yRWFjaCgobGFtYmRhOiBOb2RlanNGdW5jdGlvbikgPT4ge1xuXG4gICAgICAgICAgICAgICAgdGFibGVzLmZvckVhY2goKHRhYmxlOiBJVGFibGUpID0+IHtcblxuICAgICAgICAgICAgICAgICAgICB0YWJsZS5ncmFudFJlYWRXcml0ZURhdGEobGFtYmRhKTtcblxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIEFkZFJvdXRlcyhjb25maWc6IEFwcENvbmZpZyxcbiAgICAgICAgZ2F0ZXdheTogSVJlc3RBcGksXG4gICAgICAgIGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10sXG4gICAgICAgIGF1dGhvcml6ZXI/OiBUb2tlbkF1dGhvcml6ZXJ8UmVxdWVzdEF1dGhvcml6ZXIpIHtcblxuICAgICAgICBjb25maWcuUkVTT1VSQ0VTLkxBTUJEQT8uZm9yRWFjaCgocHJvcDogVHNnTGFtYmRhUHJvcCkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBsYW1iZGFJZCA9IENyZWF0ZUxhbWJkYS5nZXRJZEZvckxhbWJkYShwcm9wLCB0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIGlmICghbGFtYmRhSWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IGZpbmQgbGFtYmRhYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYW1iZGFOb2RlID0gbGFtYmRhcy5maW5kKHggPT4geC5ub2RlLmlkID09PSBsYW1iZGFJZCk7XG5cbiAgICAgICAgICAgIGlmICghbGFtYmRhTm9kZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGZpbmQgdGhlIExhbWJkYSBJbnRlZ3JhdGlvblwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUm91dGVzLmNyZWF0ZVJlc291cmNlKHByb3AsIGdhdGV3YXksIGxhbWJkYU5vZGUsIGF1dGhvcml6ZXIpO1xuXG4gICAgICAgIH0pO1xuICAgIH1cbn0iXX0=
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IRestApi, Resource, TokenAuthorizer } from "aws-cdk-lib/aws-apigateway";
|
|
1
|
+
import { IRestApi, RequestAuthorizer, Resource, TokenAuthorizer } from "aws-cdk-lib/aws-apigateway";
|
|
2
2
|
import { NodejsFunction } from "aws-cdk-lib/aws-lambda-nodejs";
|
|
3
3
|
import { TsgLambdaProp } from "../../config/types";
|
|
4
4
|
export declare class Routes {
|
|
5
5
|
static Resources: Resource[];
|
|
6
6
|
private static routeMap;
|
|
7
|
-
static createResource(prop: TsgLambdaProp, api: IRestApi, lambdaNode: NodejsFunction, authorizer?: TokenAuthorizer): void;
|
|
7
|
+
static createResource(prop: TsgLambdaProp, api: IRestApi, lambdaNode: NodejsFunction, authorizer?: TokenAuthorizer | RequestAuthorizer): void;
|
|
8
8
|
static createQueryStringObject(queryStrings: string[] | undefined): {
|
|
9
9
|
[key: string]: boolean;
|
|
10
10
|
};
|
|
@@ -13,7 +13,7 @@ class Routes {
|
|
|
13
13
|
if (!prop.apiGateway.useRouteOverride) {
|
|
14
14
|
// First we create the root resource if it doesn't exist.
|
|
15
15
|
// Note: this now uses the bundle version as the first segment in the path.
|
|
16
|
-
activeRoutePath = `v${(prop.apiGateway
|
|
16
|
+
activeRoutePath = `v${(prop.apiGateway?.version) ? prop.apiGateway.version : 1}`;
|
|
17
17
|
activeResource = Routes.routeMap.get(activeRoutePath) || api.root.addResource(activeRoutePath);
|
|
18
18
|
Routes.routeMap.set(activeRoutePath, activeResource);
|
|
19
19
|
}
|
|
@@ -45,7 +45,7 @@ class Routes {
|
|
|
45
45
|
return obj;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
exports.Routes = Routes;
|
|
48
49
|
Routes.Resources = [];
|
|
49
50
|
Routes.routeMap = new Map();
|
|
50
|
-
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9oZWxwZXJzL2NyZWF0ZVJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBdUg7QUFLdkgsTUFBYSxNQUFNO0lBS1IsTUFBTSxDQUFDLGNBQWMsQ0FDeEIsSUFBbUIsRUFDbkIsR0FBYSxFQUNiLFVBQTBCLEVBQzFCLFVBQTRCO1FBRTVCLE1BQU0sUUFBUSxHQUEwQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWxELElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLGNBQWMsR0FBeUIsU0FBUyxDQUFDO1FBRXJELHlEQUF5RDtRQUN6RCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFO1lBRXhCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ25DLDBEQUEwRDtnQkFDMUQsNkVBQTZFO2dCQUM3RSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDaEYsY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUMvRixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDeEQ7WUFHRCx1RUFBdUU7WUFDdkUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4RSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDMUMsZUFBZSxHQUFHLEdBQUcsZUFBZSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRCxJQUFJLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLGNBQWMsRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RKLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN4RCxjQUFjLEdBQUcsaUJBQWlCLENBQUM7YUFDdEM7WUFFRCx3REFBd0Q7WUFDeEQsY0FBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQ3JELElBQUksa0NBQWlCLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQ25EO2dCQUNJLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztnQkFDL0UsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUM5RCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDM0QsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGtDQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNuRixDQUFDLENBQUM7U0FDVjtJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsWUFBa0M7UUFFcEUsSUFBSSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1QyxPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxHQUFHLEdBQStCLEVBQUUsQ0FBQztRQUUzQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUU7WUFDaEMsR0FBRyxDQUFDLDhCQUE4QixFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDO0lBQ2pCLENBQUM7O0FBL0RhLGdCQUFTLEdBQWUsRUFBRSxDQUFDO0FBQzFCLGVBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBSDNCLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvblR5cGUsIElSZXN0QXBpLCBMYW1iZGFJbnRlZ3JhdGlvbiwgUmVzb3VyY2UsIFRva2VuQXV0aG9yaXplciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcbmltcG9ydCB7IFRzZ0xhbWJkYVByb3AgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzXCI7XG5cblxuZXhwb3J0IGNsYXNzIFJvdXRlcyB7XG5cbiAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlczogUmVzb3VyY2VbXSA9IFtdO1xuICAgIHByaXZhdGUgc3RhdGljIHJvdXRlTWFwID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVSZXNvdXJjZShcbiAgICAgICAgcHJvcDogVHNnTGFtYmRhUHJvcCxcbiAgICAgICAgYXBpOiBJUmVzdEFwaSxcbiAgICAgICAgbGFtYmRhTm9kZTogTm9kZWpzRnVuY3Rpb24sXG4gICAgICAgIGF1dGhvcml6ZXI/OiBUb2tlbkF1dGhvcml6ZXIpIHtcblxuICAgICAgICBjb25zdCByb3V0ZU1hcDogTWFwPHN0cmluZywgUmVzb3VyY2U+ID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIGxldCBhY3RpdmVSb3V0ZVBhdGggPSBcIlwiO1xuICAgICAgICBsZXQgYWN0aXZlUmVzb3VyY2U6IFJlc291cmNlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vICBPbmx5IGF0dGFjaCBsYW1iZGEgdG8gYW4gQXBpIEdhdGV3YXkgaWYgYSByb3V0ZSBleGlzdFxuICAgICAgICBpZiAocHJvcC5hcGlHYXRld2F5Py5yb3V0ZSkge1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUk91dGU6ICcsIHByb3AuYXBpR2F0ZXdheS5yb3V0ZSk7XG5cbiAgICAgICAgICAgIGlmICghcHJvcC5hcGlHYXRld2F5LnVzZVJvdXRlT3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICAvLyAgRmlyc3Qgd2UgY3JlYXRlIHRoZSByb290IHJlc291cmNlIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAgICAgICAgICAgICAgLy8gIE5vdGU6ICB0aGlzIG5vdyB1c2VzIHRoZSBidW5kbGUgdmVyc2lvbiBhcyB0aGUgZmlyc3Qgc2VnbWVudCBpbiB0aGUgcGF0aC5cbiAgICAgICAgICAgICAgICBhY3RpdmVSb3V0ZVBhdGggPSBgdiR7KHByb3AuYXBpR2F0ZXdheS52ZXJzaW9uKSA/IHByb3AuYXBpR2F0ZXdheS52ZXJzaW9uIDogMX1gO1xuICAgICAgICAgICAgICAgIGFjdGl2ZVJlc291cmNlID0gUm91dGVzLnJvdXRlTWFwLmdldChhY3RpdmVSb3V0ZVBhdGgpIHx8IGFwaS5yb290LmFkZFJlc291cmNlKGFjdGl2ZVJvdXRlUGF0aCk7XG4gICAgICAgICAgICAgICAgUm91dGVzLnJvdXRlTWFwLnNldChhY3RpdmVSb3V0ZVBhdGgsIGFjdGl2ZVJlc291cmNlKTtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAvLyAgTm93IHdlIGdvIHRocm91Z2ggb3VyIHJvdXRlIHNlZ21lbnRzIGNyZWF0aW5nIHRoZSByZXN0IG9mIHRoZSBwYXRoLlxuICAgICAgICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gcHJvcC5hcGlHYXRld2F5Py5yb3V0ZS5zcGxpdChcIi9cIikuZmlsdGVyKHggPT4gKHgpKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVSb3V0ZVBhdGggPSBgJHthY3RpdmVSb3V0ZVBhdGh9LyR7cGF0aFNlZ21lbnRzW2ldfWA7XG4gICAgICAgICAgICAgICAgbGV0IHNlY29uZGFyeVJlc291cmNlID0gUm91dGVzLnJvdXRlTWFwLmdldChhY3RpdmVSb3V0ZVBhdGgpIHx8IGFjdGl2ZVJlc291cmNlPy5hZGRSZXNvdXJjZShwYXRoU2VnbWVudHNbaV0pIHx8IGFwaS5yb290LmFkZFJlc291cmNlKHBhdGhTZWdtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgUm91dGVzLnJvdXRlTWFwLnNldChhY3RpdmVSb3V0ZVBhdGgsIHNlY29uZGFyeVJlc291cmNlKTtcbiAgICAgICAgICAgICAgICBhY3RpdmVSZXNvdXJjZSA9IHNlY29uZGFyeVJlc291cmNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyAgRmluYWxseSwgd2UgYXR0YWNoIG91ciBmdW5jdGlvbiB0byB0aGUgbGFzdCByZXNvdXJjZVxuICAgICAgICAgICAgYWN0aXZlUmVzb3VyY2UhLmFkZE1ldGhvZChwcm9wLmFwaUdhdGV3YXkubWV0aG9kIHx8ICdHRVQnLFxuICAgICAgICAgICAgICAgIG5ldyBMYW1iZGFJbnRlZ3JhdGlvbihsYW1iZGFOb2RlLCB7IHByb3h5OiB0cnVlLCB9KSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiBSb3V0ZXMuY3JlYXRlUXVlcnlTdHJpbmdPYmplY3QocHJvcC5hcGlHYXRld2F5LnF1ZXJ5U3RyaW5ncyksXG4gICAgICAgICAgICAgICAgICAgIGFwaUtleVJlcXVpcmVkOiAocHJvcC5hcGlHYXRld2F5LnJlcXVpcmVBcGlLZXkpID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVyOiBwcm9wLmFwaUdhdGV3YXkuc2VjdXJlID8gYXV0aG9yaXplciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvblR5cGU6IHByb3AuYXBpR2F0ZXdheS5zZWN1cmUgPyBBdXRob3JpemF0aW9uVHlwZS5DVVNUT00gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVF1ZXJ5U3RyaW5nT2JqZWN0KHF1ZXJ5U3RyaW5nczogc3RyaW5nW10gfCB1bmRlZmluZWQpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSAge1xuXG4gICAgICAgIGlmICghcXVlcnlTdHJpbmdzIHx8IHF1ZXJ5U3RyaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9iajogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAgICAgICBxdWVyeVN0cmluZ3MuZm9yRWFjaCgocXM6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgb2JqW2BtZXRob2QucmVxdWVzdC5xdWVyeXN0cmluZy4ke3FzfWBdID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBvYmo7ICAgXG4gICAgfVxuXG59Il19
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9oZWxwZXJzL2NyZWF0ZVJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBMEk7QUFLMUksTUFBYSxNQUFNO0lBS1IsTUFBTSxDQUFDLGNBQWMsQ0FDeEIsSUFBbUIsRUFDbkIsR0FBYSxFQUNiLFVBQTBCLEVBQzFCLFVBQThDO1FBRTlDLE1BQU0sUUFBUSxHQUEwQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWxELElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLGNBQWMsR0FBeUIsU0FBUyxDQUFDO1FBRXJELHlEQUF5RDtRQUN6RCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFO1lBRXhCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ25DLDBEQUEwRDtnQkFDMUQsNkVBQTZFO2dCQUM3RSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakYsY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUMvRixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDeEQ7WUFHRCx1RUFBdUU7WUFDdkUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4RSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDMUMsZUFBZSxHQUFHLEdBQUcsZUFBZSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRCxJQUFJLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLGNBQWMsRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RKLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN4RCxjQUFjLEdBQUcsaUJBQWlCLENBQUM7YUFDdEM7WUFFRCx3REFBd0Q7WUFDeEQsY0FBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQ3JELElBQUksa0NBQWlCLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQ25EO2dCQUNJLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztnQkFDL0UsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUM5RCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDM0QsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGtDQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNuRixDQUFDLENBQUM7U0FDVjtJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsWUFBa0M7UUFFcEUsSUFBSSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1QyxPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxHQUFHLEdBQStCLEVBQUUsQ0FBQztRQUUzQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUU7WUFDaEMsR0FBRyxDQUFDLDhCQUE4QixFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDO0lBQ2pCLENBQUM7O0FBakVMLHdCQW1FQztBQWpFaUIsZ0JBQVMsR0FBZSxFQUFFLENBQUM7QUFDMUIsZUFBUSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRob3JpemF0aW9uVHlwZSwgSVJlc3RBcGksIExhbWJkYUludGVncmF0aW9uLCBSZXF1ZXN0QXV0aG9yaXplciwgUmVzb3VyY2UsIFRva2VuQXV0aG9yaXplciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcbmltcG9ydCB7IFRzZ0xhbWJkYVByb3AgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzXCI7XG5cblxuZXhwb3J0IGNsYXNzIFJvdXRlcyB7XG5cbiAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlczogUmVzb3VyY2VbXSA9IFtdO1xuICAgIHByaXZhdGUgc3RhdGljIHJvdXRlTWFwID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVSZXNvdXJjZShcbiAgICAgICAgcHJvcDogVHNnTGFtYmRhUHJvcCxcbiAgICAgICAgYXBpOiBJUmVzdEFwaSxcbiAgICAgICAgbGFtYmRhTm9kZTogTm9kZWpzRnVuY3Rpb24sXG4gICAgICAgIGF1dGhvcml6ZXI/OiBUb2tlbkF1dGhvcml6ZXJ8UmVxdWVzdEF1dGhvcml6ZXIpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCByb3V0ZU1hcDogTWFwPHN0cmluZywgUmVzb3VyY2U+ID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIGxldCBhY3RpdmVSb3V0ZVBhdGggPSBcIlwiO1xuICAgICAgICBsZXQgYWN0aXZlUmVzb3VyY2U6IFJlc291cmNlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vICBPbmx5IGF0dGFjaCBsYW1iZGEgdG8gYW4gQXBpIEdhdGV3YXkgaWYgYSByb3V0ZSBleGlzdFxuICAgICAgICBpZiAocHJvcC5hcGlHYXRld2F5Py5yb3V0ZSkge1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUk91dGU6ICcsIHByb3AuYXBpR2F0ZXdheS5yb3V0ZSk7XG5cbiAgICAgICAgICAgIGlmICghcHJvcC5hcGlHYXRld2F5LnVzZVJvdXRlT3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICAvLyAgRmlyc3Qgd2UgY3JlYXRlIHRoZSByb290IHJlc291cmNlIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAgICAgICAgICAgICAgLy8gIE5vdGU6ICB0aGlzIG5vdyB1c2VzIHRoZSBidW5kbGUgdmVyc2lvbiBhcyB0aGUgZmlyc3Qgc2VnbWVudCBpbiB0aGUgcGF0aC5cbiAgICAgICAgICAgICAgICBhY3RpdmVSb3V0ZVBhdGggPSBgdiR7KHByb3AuYXBpR2F0ZXdheT8udmVyc2lvbikgPyBwcm9wLmFwaUdhdGV3YXkudmVyc2lvbiA6IDF9YDtcbiAgICAgICAgICAgICAgICBhY3RpdmVSZXNvdXJjZSA9IFJvdXRlcy5yb3V0ZU1hcC5nZXQoYWN0aXZlUm91dGVQYXRoKSB8fCBhcGkucm9vdC5hZGRSZXNvdXJjZShhY3RpdmVSb3V0ZVBhdGgpO1xuICAgICAgICAgICAgICAgIFJvdXRlcy5yb3V0ZU1hcC5zZXQoYWN0aXZlUm91dGVQYXRoLCBhY3RpdmVSZXNvdXJjZSk7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLy8gIE5vdyB3ZSBnbyB0aHJvdWdoIG91ciByb3V0ZSBzZWdtZW50cyBjcmVhdGluZyB0aGUgcmVzdCBvZiB0aGUgcGF0aC5cbiAgICAgICAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IHByb3AuYXBpR2F0ZXdheT8ucm91dGUuc3BsaXQoXCIvXCIpLmZpbHRlcih4ID0+ICh4KSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aFNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYWN0aXZlUm91dGVQYXRoID0gYCR7YWN0aXZlUm91dGVQYXRofS8ke3BhdGhTZWdtZW50c1tpXX1gO1xuICAgICAgICAgICAgICAgIGxldCBzZWNvbmRhcnlSZXNvdXJjZSA9IFJvdXRlcy5yb3V0ZU1hcC5nZXQoYWN0aXZlUm91dGVQYXRoKSB8fCBhY3RpdmVSZXNvdXJjZT8uYWRkUmVzb3VyY2UocGF0aFNlZ21lbnRzW2ldKSB8fCBhcGkucm9vdC5hZGRSZXNvdXJjZShwYXRoU2VnbWVudHNbaV0pO1xuICAgICAgICAgICAgICAgIFJvdXRlcy5yb3V0ZU1hcC5zZXQoYWN0aXZlUm91dGVQYXRoLCBzZWNvbmRhcnlSZXNvdXJjZSk7XG4gICAgICAgICAgICAgICAgYWN0aXZlUmVzb3VyY2UgPSBzZWNvbmRhcnlSZXNvdXJjZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gIEZpbmFsbHksIHdlIGF0dGFjaCBvdXIgZnVuY3Rpb24gdG8gdGhlIGxhc3QgcmVzb3VyY2VcbiAgICAgICAgICAgIGFjdGl2ZVJlc291cmNlIS5hZGRNZXRob2QocHJvcC5hcGlHYXRld2F5Lm1ldGhvZCB8fCAnR0VUJyxcbiAgICAgICAgICAgICAgICBuZXcgTGFtYmRhSW50ZWdyYXRpb24obGFtYmRhTm9kZSwgeyBwcm94eTogdHJ1ZSwgfSksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0UGFyYW1ldGVyczogUm91dGVzLmNyZWF0ZVF1ZXJ5U3RyaW5nT2JqZWN0KHByb3AuYXBpR2F0ZXdheS5xdWVyeVN0cmluZ3MpLFxuICAgICAgICAgICAgICAgICAgICBhcGlLZXlSZXF1aXJlZDogKHByb3AuYXBpR2F0ZXdheS5yZXF1aXJlQXBpS2V5KSA/IHRydWUgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcjogcHJvcC5hcGlHYXRld2F5LnNlY3VyZSA/IGF1dGhvcml6ZXIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBwcm9wLmFwaUdhdGV3YXkuc2VjdXJlID8gQXV0aG9yaXphdGlvblR5cGUuQ1VTVE9NIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVRdWVyeVN0cmluZ09iamVjdChxdWVyeVN0cmluZ3M6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gIHtcblxuICAgICAgICBpZiAoIXF1ZXJ5U3RyaW5ncyB8fCBxdWVyeVN0cmluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvYmo6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICAgICAgcXVlcnlTdHJpbmdzLmZvckVhY2goKHFzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIG9ialtgbWV0aG9kLnJlcXVlc3QucXVlcnlzdHJpbmcuJHtxc31gXSA9IHRydWU7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gb2JqOyAgIFxuICAgIH1cblxufSJdfQ==
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
+
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
1
2
|
import { NodejsFunction } from "aws-cdk-lib/aws-lambda-nodejs";
|
|
2
3
|
import { Construct } from "constructs";
|
|
3
4
|
import { AppConfig } from "../../config/AppConfig";
|
|
4
5
|
import { TsgLambdaProp } from "../../config/types";
|
|
5
|
-
import { TsgLambdaProps } from "../../config/types/TsgLambdaProps";
|
|
6
6
|
import { BaseResource } from "../base/baseResource";
|
|
7
7
|
export declare class CreateLambda extends BaseResource<NodejsFunction> {
|
|
8
|
-
private
|
|
8
|
+
private layers?;
|
|
9
9
|
Lambdas: NodejsFunction[];
|
|
10
|
-
|
|
10
|
+
LambdaRecords: Record<string, NodejsFunction>;
|
|
11
|
+
constructor(scope: Construct, config: AppConfig, layers?: LayerVersion[] | undefined);
|
|
11
12
|
protected createResource(scope: Construct): NodejsFunction[];
|
|
12
13
|
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
13
14
|
private createLambdas;
|
|
14
15
|
private createLambdaFunctions;
|
|
15
16
|
private createLambdaProps;
|
|
16
17
|
private createLambdaFunctionProps;
|
|
17
|
-
private assignManagedPolicies;
|
|
18
18
|
private createAlarmsForLambdas;
|
|
19
19
|
static getIdForLambda(lambdaProp: TsgLambdaProp, appConfig: AppConfig): string;
|
|
20
|
+
private createRecordForLambda;
|
|
20
21
|
}
|
|
@@ -3,22 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CreateLambda = void 0;
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
5
|
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
6
|
-
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
6
|
const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
|
|
8
7
|
const path = require("path");
|
|
8
|
+
const types_1 = require("../../config/types");
|
|
9
9
|
const baseResource_1 = require("../base/baseResource");
|
|
10
|
+
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
10
11
|
class CreateLambda extends baseResource_1.BaseResource {
|
|
11
|
-
constructor(
|
|
12
|
-
super(
|
|
13
|
-
this.
|
|
12
|
+
constructor(scope, config, layers) {
|
|
13
|
+
super(scope, config);
|
|
14
|
+
this.layers = layers;
|
|
14
15
|
this.Lambdas = [];
|
|
15
|
-
|
|
16
|
+
this.LambdaRecords = {};
|
|
17
|
+
const resources = this.createResource(scope);
|
|
16
18
|
this.Lambdas = [...resources];
|
|
17
19
|
this.createAlarmsForLambdas(this.Lambdas);
|
|
18
|
-
this.
|
|
20
|
+
this.LambdaRecords = this.createRecordForLambda(this.Lambdas);
|
|
21
|
+
this.createOutput(scope, resources);
|
|
19
22
|
}
|
|
20
23
|
createResource(scope) {
|
|
21
|
-
const result = this.createLambdas(this.
|
|
24
|
+
const result = this.createLambdas(this.config);
|
|
22
25
|
return result;
|
|
23
26
|
}
|
|
24
27
|
createOutput(scope, createdAssets) {
|
|
@@ -29,22 +32,18 @@ class CreateLambda extends baseResource_1.BaseResource {
|
|
|
29
32
|
});
|
|
30
33
|
});
|
|
31
34
|
}
|
|
32
|
-
createLambdas(
|
|
33
|
-
const createdLambdas = this.createLambdaFunctions(this.scope,
|
|
35
|
+
createLambdas(config) {
|
|
36
|
+
const createdLambdas = this.createLambdaFunctions(this.scope, undefined, this.layers);
|
|
34
37
|
return createdLambdas;
|
|
35
38
|
}
|
|
36
39
|
createLambdaFunctions(scope, role, layers) {
|
|
37
|
-
const createdLambdas = this.
|
|
40
|
+
const createdLambdas = this.config.RESOURCES.LAMBDA.map((config) => {
|
|
38
41
|
let lambdaProps = this.createLambdaProps(config, role, layers);
|
|
39
42
|
const lambdaId = CreateLambda.getIdForLambda(config, this.config);
|
|
40
43
|
let fctn = new aws_lambda_nodejs_1.NodejsFunction(scope, lambdaId, lambdaProps);
|
|
41
44
|
if (lambdaId === fctn.node.id) {
|
|
42
45
|
console.log(`found Lambda for : ${fctn.node.id}`);
|
|
43
46
|
}
|
|
44
|
-
// If we have managed policies, we add them.
|
|
45
|
-
if (config.managedPolicies && config.managedPolicies?.length > 0) {
|
|
46
|
-
this.assignManagedPolicies(fctn, config.managedPolicies);
|
|
47
|
-
}
|
|
48
47
|
return fctn;
|
|
49
48
|
});
|
|
50
49
|
return createdLambdas || [];
|
|
@@ -59,11 +58,12 @@ class CreateLambda extends baseResource_1.BaseResource {
|
|
|
59
58
|
}
|
|
60
59
|
createLambdaFunctionProps(props) {
|
|
61
60
|
const { prop, role, layers } = props;
|
|
62
|
-
console.log(`function Name: ${this.
|
|
61
|
+
console.log(`function Name: ${this.config.AppPrefix}-${prop.name}`);
|
|
63
62
|
const lambdaProp = {
|
|
64
63
|
entry: path.join(prop.codePath),
|
|
65
|
-
functionName: `${this.
|
|
64
|
+
functionName: `${this.config.AppPrefix}-${prop.name}`,
|
|
66
65
|
handler: prop.handler,
|
|
66
|
+
logRetention: (!prop.logDuration) ? aws_logs_1.RetentionDays.FIVE_DAYS : getDayToSaveLogs(prop.logDuration),
|
|
67
67
|
runtime: prop.runtime || this.config.GLOBALS.stackRuntime,
|
|
68
68
|
timeout: prop.duration || aws_cdk_lib_1.Duration.minutes(2),
|
|
69
69
|
memorySize: prop.memory || 512,
|
|
@@ -84,12 +84,6 @@ class CreateLambda extends baseResource_1.BaseResource {
|
|
|
84
84
|
return lambdaProp;
|
|
85
85
|
}
|
|
86
86
|
;
|
|
87
|
-
assignManagedPolicies(lambda, managedPolicyNames) {
|
|
88
|
-
managedPolicyNames.forEach((managedPolicyName) => {
|
|
89
|
-
let policy = aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName(managedPolicyName);
|
|
90
|
-
lambda.role?.addManagedPolicy(policy);
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
87
|
createAlarmsForLambdas(lambdas) {
|
|
94
88
|
lambdas.forEach((lambda, idx) => {
|
|
95
89
|
const errorMetric = lambda.metricErrors({
|
|
@@ -101,7 +95,7 @@ class CreateLambda extends baseResource_1.BaseResource {
|
|
|
101
95
|
const invocationMetric = lambda.metricInvocations({
|
|
102
96
|
period: aws_cdk_lib_1.Duration.minutes(3),
|
|
103
97
|
});
|
|
104
|
-
new aws_cloudwatch_1.Alarm(this.
|
|
98
|
+
new aws_cloudwatch_1.Alarm(this.scope, `${this.config.AppPrefix}-${idx}-error-alarm`, {
|
|
105
99
|
metric: errorMetric,
|
|
106
100
|
threshold: 5,
|
|
107
101
|
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
@@ -109,7 +103,7 @@ class CreateLambda extends baseResource_1.BaseResource {
|
|
|
109
103
|
alarmDescription: `${this.config.AppPrefix}-${idx} errors over 3 min period`,
|
|
110
104
|
alarmName: `${this.config.AppPrefix}-${idx}-error-alarm`
|
|
111
105
|
});
|
|
112
|
-
new aws_cloudwatch_1.Alarm(this.
|
|
106
|
+
new aws_cloudwatch_1.Alarm(this.scope, `${this.config.AppPrefix}-${idx}-duration-alarm`, {
|
|
113
107
|
metric: durationMetric,
|
|
114
108
|
threshold: 1,
|
|
115
109
|
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
@@ -117,7 +111,7 @@ class CreateLambda extends baseResource_1.BaseResource {
|
|
|
117
111
|
alarmDescription: `${this.config.AppPrefix}-${idx} duration errors over 3 min period`,
|
|
118
112
|
alarmName: `${this.config.AppPrefix}-${idx}-duration-alarm`
|
|
119
113
|
});
|
|
120
|
-
const invocationAlarm = new aws_cloudwatch_1.Alarm(this.
|
|
114
|
+
const invocationAlarm = new aws_cloudwatch_1.Alarm(this.scope, `${this.config.AppPrefix}-${idx}-invocation-alarm`, {
|
|
121
115
|
metric: errorMetric,
|
|
122
116
|
threshold: 1000,
|
|
123
117
|
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
@@ -125,13 +119,40 @@ class CreateLambda extends baseResource_1.BaseResource {
|
|
|
125
119
|
alarmDescription: `${this.config.AppPrefix}-${idx} errors over 3 min period`,
|
|
126
120
|
alarmName: `${this.config.AppPrefix}-${idx}-invocation-Metric-alarm`
|
|
127
121
|
});
|
|
128
|
-
// const alarmAction: IAlarmAction = {};
|
|
129
|
-
// invocationAlarm.addAlarmAction(alarmAction);
|
|
130
122
|
});
|
|
131
123
|
}
|
|
132
124
|
static getIdForLambda(lambdaProp, appConfig) {
|
|
133
125
|
return `${appConfig.AppPrefix}-${lambdaProp.name}`.toLowerCase();
|
|
134
126
|
}
|
|
127
|
+
createRecordForLambda(lambdas) {
|
|
128
|
+
const names = this.config.RESOURCES.LAMBDA.map((lambda) => {
|
|
129
|
+
return lambda.name;
|
|
130
|
+
});
|
|
131
|
+
const lambdaNames = [...names];
|
|
132
|
+
const lambdaRecord = {};
|
|
133
|
+
lambdas.forEach((lambda, idx) => {
|
|
134
|
+
lambdaRecord[lambdaNames[idx]] = lambdas[idx];
|
|
135
|
+
});
|
|
136
|
+
return lambdaRecord;
|
|
137
|
+
}
|
|
135
138
|
}
|
|
136
139
|
exports.CreateLambda = CreateLambda;
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9sYW1iZGEvY3JlYXRlTGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRDtBQUVsRCwrREFBcUY7QUFDckYsaURBQTJEO0FBRTNELHFFQUFtRztBQUVuRyw2QkFBNkI7QUFNN0IsdURBQW9EO0FBR3BELE1BQWEsWUFBYSxTQUFRLDJCQUE0QjtJQUsxRCxZQUFvQixLQUFxQixFQUFFLE1BQWlCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRFgsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFIbEMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFNbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQjtRQUVyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUU3QixJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQUU7Z0JBQ2xDLGFBQWE7Z0JBQ2IsS0FB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RywyQkFBMkI7Z0JBQzVFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEdBQUcsMEJBQTBCO2FBQ3ZFLENBQUMsQ0FBQztZQUVILHdDQUF3QztZQUN4QywrQ0FBK0M7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUF5QixFQUFFLFNBQW9CO1FBQ3hFLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0NBQ0o7QUE1S0Qsb0NBNEtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVG9rZW5BdXRob3JpemVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBJQWxhcm1BY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IElSb2xlLCBNYW5hZ2VkUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiwgTm9kZWpzRnVuY3Rpb25Qcm9wcywgU291cmNlTWFwTW9kZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXNcIjtcblxuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGFGdW5jdGlvbklucHV0IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dFwiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUxhbWJkYSBleHRlbmRzIEJhc2VSZXNvdXJjZTxOb2RlanNGdW5jdGlvbj4ge1xuXG4gICAgcHVibGljIExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSBbXTtcbiAgICBcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvcHM6IFRzZ0xhbWJkYVByb3BzLCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBzdXBlcihwcm9wcy5zY29wZSwgY29uZmlnKTtcblxuICAgICAgICBjb25zdCByZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHByb3BzLnNjb3BlKTtcblxuICAgICAgICB0aGlzLkxhbWJkYXMgPSBbLi4ucmVzb3VyY2VzXTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUFsYXJtc0ZvckxhbWJkYXModGhpcy5MYW1iZGFzKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHByb3BzLnNjb3BlLCByZXNvdXJjZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogTm9kZWpzRnVuY3Rpb25bXSB7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVMYW1iZGFzKHRoaXMucHJvcHMpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKHgsIGlkeCkgPT4ge1xuXG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgbGFtYmRhLSR7aWR4fWAsIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgdmFsdWU6IHguZnVuY3Rpb25OYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFzKHByb3BzOiBUc2dMYW1iZGFQcm9wcyk6IE5vZGVqc0Z1bmN0aW9uW10ge1xuICAgICAgICBcbiAgICAgICAgY29uc3QgY3JlYXRlZExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyh0aGlzLnNjb3BlLCBwcm9wcy5yb2xlLCBwcm9wcy5sYXllcnMpO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyhzY29wZTogQ29uc3RydWN0LCByb2xlPzogSVJvbGUsIGxheWVycz86IExheWVyVmVyc2lvbltdKSB7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBjcmVhdGVkTGFtYmRhcyA9IHRoaXMucHJvcHMucHJvcC5SRVNPVVJDRVMuTEFNQkRBLm1hcCgoY29uZmlnOlRzZ0xhbWJkYVByb3ApID0+IHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGV0IGxhbWJkYVByb3BzID0gdGhpcy5jcmVhdGVMYW1iZGFQcm9wcyhjb25maWcsIHJvbGUsIGxheWVycyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGxhbWJkYUlkID0gQ3JlYXRlTGFtYmRhLmdldElkRm9yTGFtYmRhKGNvbmZpZywgdGhpcy5jb25maWcpO1xuICAgICAgICAgICAgbGV0IGZjdG4gPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsIGxhbWJkYUlkLCBsYW1iZGFQcm9wcyk7XG5cbiAgICAgICAgICAgIGlmIChsYW1iZGFJZCA9PT0gZmN0bi5ub2RlLmlkKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYGZvdW5kIExhbWJkYSBmb3IgOiAke2ZjdG4ubm9kZS5pZH1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyAgSWYgd2UgaGF2ZSBtYW5hZ2VkIHBvbGljaWVzLCB3ZSBhZGQgdGhlbS5cbiAgICAgICAgICAgIGlmIChjb25maWcubWFuYWdlZFBvbGljaWVzICYmIGNvbmZpZy5tYW5hZ2VkUG9saWNpZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2lnbk1hbmFnZWRQb2xpY2llcyhmY3RuLCBjb25maWcubWFuYWdlZFBvbGljaWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZjdG47XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcyB8fCBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYVByb3BzKHByb3A6IFRzZ0xhbWJkYVByb3AsIHJvbGU/OiBJUm9sZSwgbGF5ZXJzPzogTGF5ZXJWZXJzaW9uW10sIHByb3BzPzogVHNnTGFtYmRhUHJvcHMpIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVMYW1iZGFGdW5jdGlvblByb3BzKHtcbiAgICAgICAgICAgIHByb3AsIFxuICAgICAgICAgICAgcm9sZSxcbiAgICAgICAgICAgIGxheWVycywgXG4gICAgICAgICAgICBwcm9wc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9uUHJvcHMocHJvcHM6IENyZWF0ZUxhbWJkYUZ1bmN0aW9uSW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBwcm9wLCByb2xlLCBsYXllcnMgfSA9IHByb3BzO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGBmdW5jdGlvbiBOYW1lOiAke3RoaXMucHJvcHMuYXBwQ29uZmlnLkFwcFByZWZpeH0tJHtwcm9wLm5hbWV9YCk7XG5cbiAgICAgICAgY29uc3QgbGFtYmRhUHJvcDogTm9kZWpzRnVuY3Rpb25Qcm9wcyA9IHtcbiAgICAgICAgICAgIGVudHJ5OiBwYXRoLmpvaW4ocHJvcC5jb2RlUGF0aCksXG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGAke3RoaXMucHJvcHMuYXBwQ29uZmlnLkFwcFByZWZpeH0tJHtwcm9wLm5hbWV9YCxcbiAgICAgICAgICAgIGhhbmRsZXI6IHByb3AuaGFuZGxlcixcbiAgICAgICAgICAgIHJ1bnRpbWU6IHByb3AucnVudGltZSB8fCB0aGlzLmNvbmZpZy5HTE9CQUxTLnN0YWNrUnVudGltZSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IHByb3AuZHVyYXRpb24gfHwgRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgICAgIG1lbW9yeVNpemU6IHByb3AubWVtb3J5IHx8IDUxMixcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgXCJWRVJCT1NFX0xPR0dJTkdcIjogXCJ0cnVlXCIsICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC4uLnByb3AuZW52aXJvbm1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiAnZXMyMDIwJyxcbiAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5FWFRFUk5BTCxcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogcHJvcC5lbnZpcm9ubWVudCB8fCBwcm9wLmVudmlyb25tZW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvbGUsXG4gICAgICAgICAgICBsYXllcnNcblxuICAgICAgICB9XG5cbiAgICAgICAgXG4gICAgICAgIHJldHVybiBsYW1iZGFQcm9wO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGFzc2lnbk1hbmFnZWRQb2xpY2llcyhsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uLCBtYW5hZ2VkUG9saWN5TmFtZXM6IHN0cmluZ1tdKSB7XG5cbiAgICAgICAgbWFuYWdlZFBvbGljeU5hbWVzLmZvckVhY2goKG1hbmFnZWRQb2xpY3lOYW1lOiBzdHJpbmcpID0+IHtcblxuICAgICAgICAgICAgbGV0IHBvbGljeSA9IE1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKG1hbmFnZWRQb2xpY3lOYW1lKTtcblxuICAgICAgICAgICAgbGFtYmRhLnJvbGU/LmFkZE1hbmFnZWRQb2xpY3kocG9saWN5KTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFsYXJtc0ZvckxhbWJkYXMobGFtYmRhczogTm9kZWpzRnVuY3Rpb25bXSkgeyAgICAgICAgXG5cbiAgICAgICAgbGFtYmRhcy5mb3JFYWNoKChsYW1iZGEsIGlkeCkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBlcnJvck1ldHJpYyA9IGxhbWJkYS5tZXRyaWNFcnJvcnMoe1xuICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygzKSxcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBkdXJhdGlvbk1ldHJpYyA9IGxhbWJkYS5tZXRyaWNEdXJhdGlvbih7XG4gICAgICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDMpLCAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbnZvY2F0aW9uTWV0cmljID0gbGFtYmRhLm1ldHJpY0ludm9jYXRpb25zKHtcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMyksICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ldyBBbGFybSh0aGlzLnByb3BzLnNjb3BlLCBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1lcnJvci1hbGFybWAsIHtcbiAgICAgICAgICAgICAgICBtZXRyaWM6IGVycm9yTWV0cmljLCBcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDUsXG4gICAgICAgICAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgICAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fSBlcnJvcnMgb3ZlciAzIG1pbiBwZXJpb2RgLFxuICAgICAgICAgICAgICAgIGFsYXJtTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0tZXJyb3ItYWxhcm1gXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbmV3IEFsYXJtKHRoaXMucHJvcHMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWR1cmF0aW9uLWFsYXJtYCwge1xuICAgICAgICAgICAgICAgIG1ldHJpYzogZHVyYXRpb25NZXRyaWMsIFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAzLFxuICAgICAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9IGR1cmF0aW9uIGVycm9ycyBvdmVyIDMgbWluIHBlcmlvZGAsXG4gICAgICAgICAgICAgICAgYWxhcm1OYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1kdXJhdGlvbi1hbGFybWBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbnZvY2F0aW9uQWxhcm0gPSBuZXcgQWxhcm0odGhpcy5wcm9wcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0taW52b2NhdGlvbi1hbGFybWAsIHtcbiAgICAgICAgICAgICAgICBtZXRyaWM6IGVycm9yTWV0cmljLCBcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDEwMDAsXG4gICAgICAgICAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgICAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fSBlcnJvcnMgb3ZlciAzIG1pbiBwZXJpb2RgLFxuICAgICAgICAgICAgICAgIGFsYXJtTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0taW52b2NhdGlvbi1NZXRyaWMtYWxhcm1gXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gY29uc3QgYWxhcm1BY3Rpb246IElBbGFybUFjdGlvbiA9IHt9O1xuICAgICAgICAgICAgLy8gaW52b2NhdGlvbkFsYXJtLmFkZEFsYXJtQWN0aW9uKGFsYXJtQWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRJZEZvckxhbWJkYShsYW1iZGFQcm9wOiBUc2dMYW1iZGFQcm9wLCBhcHBDb25maWc6IEFwcENvbmZpZykgeyAgICAgICBcbiAgICAgICAgcmV0dXJuIGAke2FwcENvbmZpZy5BcHBQcmVmaXh9LSR7bGFtYmRhUHJvcC5uYW1lfWAudG9Mb3dlckNhc2UoKTtcbiAgICB9XG59Il19
|
|
140
|
+
function getDayToSaveLogs(saveLogDuration) {
|
|
141
|
+
switch (saveLogDuration) {
|
|
142
|
+
case types_1.LogDuration.ONE_DAY:
|
|
143
|
+
return aws_logs_1.RetentionDays.ONE_DAY;
|
|
144
|
+
case types_1.LogDuration.ONE_WEEK:
|
|
145
|
+
return aws_logs_1.RetentionDays.ONE_WEEK;
|
|
146
|
+
case types_1.LogDuration.ONE_MONTH:
|
|
147
|
+
return aws_logs_1.RetentionDays.ONE_MONTH;
|
|
148
|
+
case types_1.LogDuration.ONE_YEAR:
|
|
149
|
+
return aws_logs_1.RetentionDays.ONE_YEAR;
|
|
150
|
+
case types_1.LogDuration.FIVE_YEARS:
|
|
151
|
+
return aws_logs_1.RetentionDays.FIVE_YEARS;
|
|
152
|
+
case types_1.LogDuration.FOREVER:
|
|
153
|
+
return aws_logs_1.RetentionDays.INFINITE;
|
|
154
|
+
default:
|
|
155
|
+
return aws_logs_1.RetentionDays.FIVE_DAYS;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9sYW1iZGEvY3JlYXRlTGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRDtBQUVsRCwrREFBcUY7QUFHckYscUVBQW1HO0FBRW5HLDZCQUE2QjtBQUU3Qiw4Q0FBZ0U7QUFJaEUsdURBQW9EO0FBQ3BELG1EQUFxRDtBQUdyRCxNQUFhLFlBQWEsU0FBUSwyQkFBNEI7SUFLMUQsWUFBWSxLQUFnQixFQUFFLE1BQWlCLEVBQVUsTUFBdUI7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQURnQyxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUh6RSxZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFtQyxFQUFFLENBQUM7UUFLdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdCO1FBRXJDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFUyxZQUFZLENBQUksS0FBZ0IsRUFBRSxhQUFrQjtRQUMxRCxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FB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QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IEFsYXJtLCBDb21wYXJpc29uT3BlcmF0b3IsIElBbGFybUFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHsgSVJvbGUsIE1hbmFnZWRQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgTGF5ZXJWZXJzaW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uLCBOb2RlanNGdW5jdGlvblByb3BzLCBTb3VyY2VNYXBNb2RlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWcvQXBwQ29uZmlnXCI7XG5pbXBvcnQgeyBMb2dEdXJhdGlvbiwgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXNcIjtcblxuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGFGdW5jdGlvbklucHV0IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dFwiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUxhbWJkYSBleHRlbmRzIEJhc2VSZXNvdXJjZTxOb2RlanNGdW5jdGlvbj4ge1xuXG4gICAgcHVibGljIExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSBbXTtcbiAgICBwdWJsaWMgTGFtYmRhUmVjb3JkczogUmVjb3JkPHN0cmluZywgTm9kZWpzRnVuY3Rpb24+ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBjb25maWc6IEFwcENvbmZpZywgcHJpdmF0ZSBsYXllcnM/OiBMYXllclZlcnNpb25bXSkge1xuICAgICAgICBzdXBlcihzY29wZSwgY29uZmlnKTtcblxuICAgICAgICBjb25zdCByZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHNjb3BlKTtcblxuICAgICAgICB0aGlzLkxhbWJkYXMgPSBbLi4ucmVzb3VyY2VzXTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUFsYXJtc0ZvckxhbWJkYXModGhpcy5MYW1iZGFzKTtcblxuICAgICAgICB0aGlzLkxhbWJkYVJlY29yZHMgPSB0aGlzLmNyZWF0ZVJlY29yZEZvckxhbWJkYSh0aGlzLkxhbWJkYXMpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHNjb3BlLCByZXNvdXJjZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogTm9kZWpzRnVuY3Rpb25bXSB7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVMYW1iZGFzKHRoaXMuY29uZmlnKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCwgY3JlYXRlZEFzc2V0czogVFtdKTogdm9pZCB7XG4gICAgICAgIGNyZWF0ZWRBc3NldHMuZm9yRWFjaCgoeCwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBsYW1iZGEtJHtpZHh9YCwge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB2YWx1ZTogeC5mdW5jdGlvbk5hbWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYXMoY29uZmlnOiBBcHBDb25maWcpOiBOb2RlanNGdW5jdGlvbltdIHtcblxuICAgICAgICBjb25zdCBjcmVhdGVkTGFtYmRhczogTm9kZWpzRnVuY3Rpb25bXSA9IHRoaXMuY3JlYXRlTGFtYmRhRnVuY3Rpb25zKHRoaXMuc2NvcGUsIHVuZGVmaW5lZCwgdGhpcy5sYXllcnMpO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyhzY29wZTogQ29uc3RydWN0LCByb2xlPzogSVJvbGUsIGxheWVycz86IExheWVyVmVyc2lvbltdKSB7ICAgICAgICBcblxuICAgICAgICBjb25zdCBjcmVhdGVkTGFtYmRhcyA9IHRoaXMuY29uZmlnLlJFU09VUkNFUy5MQU1CREEubWFwKChjb25maWc6IFRzZ0xhbWJkYVByb3ApID0+IHtcblxuICAgICAgICAgICAgbGV0IGxhbWJkYVByb3BzID0gdGhpcy5jcmVhdGVMYW1iZGFQcm9wcyhjb25maWcsIHJvbGUsIGxheWVycyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGxhbWJkYUlkID0gQ3JlYXRlTGFtYmRhLmdldElkRm9yTGFtYmRhKGNvbmZpZywgdGhpcy5jb25maWcpO1xuICAgICAgICAgICAgbGV0IGZjdG4gPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsIGxhbWJkYUlkLCBsYW1iZGFQcm9wcyk7XG5cbiAgICAgICAgICAgIGlmIChsYW1iZGFJZCA9PT0gZmN0bi5ub2RlLmlkKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYGZvdW5kIExhbWJkYSBmb3IgOiAke2ZjdG4ubm9kZS5pZH1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZjdG47XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcyB8fCBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYVByb3BzKHByb3A6IFRzZ0xhbWJkYVByb3AsIHJvbGU/OiBJUm9sZSwgbGF5ZXJzPzogTGF5ZXJWZXJzaW9uW10sIHByb3BzPzogVHNnTGFtYmRhUHJvcHMpIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVMYW1iZGFGdW5jdGlvblByb3BzKHtcbiAgICAgICAgICAgIHByb3AsXG4gICAgICAgICAgICByb2xlLFxuICAgICAgICAgICAgbGF5ZXJzLFxuICAgICAgICAgICAgcHJvcHNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFGdW5jdGlvblByb3BzKHByb3BzOiBDcmVhdGVMYW1iZGFGdW5jdGlvbklucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgcHJvcCwgcm9sZSwgbGF5ZXJzIH0gPSBwcm9wcztcblxuICAgICAgICBjb25zb2xlLmxvZyhgZnVuY3Rpb24gTmFtZTogJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7cHJvcC5uYW1lfWApO1xuXG4gICAgICAgIGNvbnN0IGxhbWJkYVByb3A6IE5vZGVqc0Z1bmN0aW9uUHJvcHMgPSB7XG4gICAgICAgICAgICBlbnRyeTogcGF0aC5qb2luKHByb3AuY29kZVBhdGgpLFxuICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7cHJvcC5uYW1lfWAsXG4gICAgICAgICAgICBoYW5kbGVyOiBwcm9wLmhhbmRsZXIsXG4gICAgICAgICAgICBsb2dSZXRlbnRpb246ICghcHJvcC5sb2dEdXJhdGlvbikgPyBSZXRlbnRpb25EYXlzLkZJVkVfREFZUyA6IGdldERheVRvU2F2ZUxvZ3MocHJvcC5sb2dEdXJhdGlvbiksXG4gICAgICAgICAgICBydW50aW1lOiBwcm9wLnJ1bnRpbWUgfHwgdGhpcy5jb25maWcuR0xPQkFMUy5zdGFja1J1bnRpbWUsXG4gICAgICAgICAgICB0aW1lb3V0OiBwcm9wLmR1cmF0aW9uIHx8IER1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICAgICAgICBtZW1vcnlTaXplOiBwcm9wLm1lbW9yeSB8fCA1MTIsXG4gICAgICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgICAgIFwiVkVSQk9TRV9MT0dHSU5HXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIC4uLnByb3AuZW52aXJvbm1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiAnZXMyMDIwJyxcbiAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5FWFRFUk5BTCxcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogcHJvcC5lbnZpcm9ubWVudCB8fCBwcm9wLmVudmlyb25tZW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvbGUsXG4gICAgICAgICAgICBsYXllcnNcblxuICAgICAgICB9XG5cblxuICAgICAgICByZXR1cm4gbGFtYmRhUHJvcDtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBjcmVhdGVBbGFybXNGb3JMYW1iZGFzKGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHtcblxuICAgICAgICBsYW1iZGFzLmZvckVhY2goKGxhbWJkYSwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWV0cmljID0gbGFtYmRhLm1ldHJpY0Vycm9ycyh7XG4gICAgICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDMpLFxuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgZHVyYXRpb25NZXRyaWMgPSBsYW1iZGEubWV0cmljRHVyYXRpb24oe1xuICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygzKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbnZvY2F0aW9uTWV0cmljID0gbGFtYmRhLm1ldHJpY0ludm9jYXRpb25zKHtcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMyksXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbmV3IEFsYXJtKHRoaXMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWVycm9yLWFsYXJtYCwge1xuICAgICAgICAgICAgICAgIG1ldHJpYzogZXJyb3JNZXRyaWMsXG4gICAgICAgICAgICAgICAgdGhyZXNob2xkOiA1LFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0gZXJyb3JzIG92ZXIgMyBtaW4gcGVyaW9kYCxcbiAgICAgICAgICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWVycm9yLWFsYXJtYFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ldyBBbGFybSh0aGlzLnNjb3BlLCBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1kdXJhdGlvbi1hbGFybWAsIHtcbiAgICAgICAgICAgICAgICBtZXRyaWM6IGR1cmF0aW9uTWV0cmljLFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAzLFxuICAgICAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9IGR1cmF0aW9uIGVycm9ycyBvdmVyIDMgbWluIHBlcmlvZGAsXG4gICAgICAgICAgICAgICAgYWxhcm1OYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1kdXJhdGlvbi1hbGFybWBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbnZvY2F0aW9uQWxhcm0gPSBuZXcgQWxhcm0odGhpcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0taW52b2NhdGlvbi1hbGFybWAsIHtcbiAgICAgICAgICAgICAgICBtZXRyaWM6IGVycm9yTWV0cmljLFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMTAwMCxcbiAgICAgICAgICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAzLFxuICAgICAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9IGVycm9ycyBvdmVyIDMgbWluIHBlcmlvZGAsXG4gICAgICAgICAgICAgICAgYWxhcm1OYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1pbnZvY2F0aW9uLU1ldHJpYy1hbGFybWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldElkRm9yTGFtYmRhKGxhbWJkYVByb3A6IFRzZ0xhbWJkYVByb3AsIGFwcENvbmZpZzogQXBwQ29uZmlnKSB7XG4gICAgICAgIHJldHVybiBgJHthcHBDb25maWcuQXBwUHJlZml4fS0ke2xhbWJkYVByb3AubmFtZX1gLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgY3JlYXRlUmVjb3JkRm9yTGFtYmRhKGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHtcblxuICAgICAgICBjb25zdCBuYW1lcyA9IHRoaXMuY29uZmlnLlJFU09VUkNFUy5MQU1CREEubWFwKChsYW1iZGEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBsYW1iZGEubmFtZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgbGFtYmRhTmFtZXMgPSBbLi4ubmFtZXNdIGFzIGNvbnN0O1xuXG4gICAgICAgIHR5cGUgTGFtYmRhTmFtZSA9IHR5cGVvZiBsYW1iZGFOYW1lc1tudW1iZXJdO1xuICAgIFxuXG4gICAgICAgIGNvbnN0IGxhbWJkYVJlY29yZDogUmVjb3JkPExhbWJkYU5hbWUsIE5vZGVqc0Z1bmN0aW9uPiA9IHt9IGFzIFJlY29yZDxMYW1iZGFOYW1lLCBOb2RlanNGdW5jdGlvbj47XG5cbiAgICAgICAgbGFtYmRhcy5mb3JFYWNoKChsYW1iZGEsIGlkeCkgPT4ge1xuICAgICAgICAgICAgbGFtYmRhUmVjb3JkW2xhbWJkYU5hbWVzW2lkeF0gIGFzIExhbWJkYU5hbWVdID0gbGFtYmRhc1tpZHhdO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBsYW1iZGFSZWNvcmQ7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXREYXlUb1NhdmVMb2dzKHNhdmVMb2dEdXJhdGlvbjogTG9nRHVyYXRpb24pOiBSZXRlbnRpb25EYXlzIHtcblxuICAgIHN3aXRjaCAoc2F2ZUxvZ0R1cmF0aW9uKSB7XG4gICAgICAgIGNhc2UgTG9nRHVyYXRpb24uT05FX0RBWTpcbiAgICAgICAgICAgIHJldHVybiBSZXRlbnRpb25EYXlzLk9ORV9EQVk7XG5cbiAgICAgICAgY2FzZSBMb2dEdXJhdGlvbi5PTkVfV0VFSzpcbiAgICAgICAgICAgIHJldHVybiBSZXRlbnRpb25EYXlzLk9ORV9XRUVLO1xuXG4gICAgICAgIGNhc2UgTG9nRHVyYXRpb24uT05FX01PTlRIOlxuICAgICAgICAgICAgcmV0dXJuIFJldGVudGlvbkRheXMuT05FX01PTlRIO1xuXG4gICAgICAgIGNhc2UgTG9nRHVyYXRpb24uT05FX1lFQVI6XG4gICAgICAgICAgICByZXR1cm4gUmV0ZW50aW9uRGF5cy5PTkVfWUVBUjtcblxuICAgICAgICBjYXNlIExvZ0R1cmF0aW9uLkZJVkVfWUVBUlM6XG4gICAgICAgICAgICByZXR1cm4gUmV0ZW50aW9uRGF5cy5GSVZFX1lFQVJTO1xuXG4gICAgICAgIGNhc2UgTG9nRHVyYXRpb24uRk9SRVZFUjpcbiAgICAgICAgICAgIHJldHVybiBSZXRlbnRpb25EYXlzLklORklOSVRFO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFJldGVudGlvbkRheXMuRklWRV9EQVlTO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { TokenAuthorizer } from "aws-cdk-lib/aws-apigateway";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
3
|
import { AppConfig } from "../../config/AppConfig";
|
|
4
|
-
import { TsgLambdaProp } from "../../config/types";
|
|
5
4
|
import { BaseResource } from "../base/baseResource";
|
|
6
|
-
export declare class
|
|
7
|
-
protected authProps: TsgLambdaProp;
|
|
5
|
+
export declare class TsgJwtTokenAuthorizer extends BaseResource<TokenAuthorizer> {
|
|
8
6
|
get JwtAuthorizer(): TokenAuthorizer;
|
|
9
|
-
constructor(scope: Construct, props: AppConfig
|
|
7
|
+
constructor(scope: Construct, props: AppConfig);
|
|
10
8
|
protected createResource(scope: Construct): TokenAuthorizer[] | null;
|
|
11
9
|
private createLambdaAuthorizer;
|
|
12
10
|
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|