@aws-solutions-constructs/aws-lambda-elasticachememcached 2.94.0 → 2.95.1
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/.jsii +31 -5
- package/lib/index.js +1 -1
- package/package.json +6 -6
- package/test/integ.lammem-existingResources.js.snapshot/asset.69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36/index.js +21 -0
- package/test/integ.lammem-existingResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/test/integ.lammem-existingResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
- package/test/integ.lammem-existingResources.js.snapshot/cdk.out +1 -1
- package/test/integ.lammem-existingResources.js.snapshot/integ.json +2 -2
- package/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.assets.json +4 -4
- package/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.template.json +0 -10
- package/test/integ.lammem-existingResources.js.snapshot/lammemexistingResourcesIntegDefaultTestDeployAssertD269DF67.assets.json +1 -1
- package/test/integ.lammem-existingResources.js.snapshot/manifest.json +65 -57
- package/test/integ.lammem-existingResources.js.snapshot/tree.json +1 -1
- package/test/integ.lammem-newResources.js.snapshot/asset.69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36/index.js +21 -0
- package/test/integ.lammem-newResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/test/integ.lammem-newResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
- package/test/integ.lammem-newResources.js.snapshot/cdk.out +1 -1
- package/test/integ.lammem-newResources.js.snapshot/integ.json +2 -2
- package/test/integ.lammem-newResources.js.snapshot/lammem-newResources.assets.json +4 -4
- package/test/integ.lammem-newResources.js.snapshot/lammem-newResources.template.json +0 -10
- package/test/integ.lammem-newResources.js.snapshot/lammemnewResourcesIntegDefaultTestDeployAssert30C906BF.assets.json +1 -1
- package/test/integ.lammem-newResources.js.snapshot/manifest.json +65 -57
- package/test/integ.lammem-newResources.js.snapshot/tree.json +1 -1
- package/test/integ.lammem-withClientProps.js.snapshot/asset.69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36/index.js +21 -0
- package/test/integ.lammem-withClientProps.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/test/integ.lammem-withClientProps.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
- package/test/integ.lammem-withClientProps.js.snapshot/cdk.out +1 -1
- package/test/integ.lammem-withClientProps.js.snapshot/integ.json +2 -2
- package/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.assets.json +4 -4
- package/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.template.json +0 -10
- package/test/integ.lammem-withClientProps.js.snapshot/lammemwithClientPropsIntegDefaultTestDeployAssertDB086BD1.assets.json +1 -1
- package/test/integ.lammem-withClientProps.js.snapshot/manifest.json +65 -57
- package/test/integ.lammem-withClientProps.js.snapshot/tree.json +1 -1
package/.jsii
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@aws-solutions-constructs/core": "2.
|
|
12
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"@aws-solutions-constructs/core": "2.95.1",
|
|
12
|
+
"aws-cdk-lib": "^2.223.0",
|
|
13
13
|
"constructs": "^10.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencyClosure": {
|
|
@@ -3242,6 +3242,19 @@
|
|
|
3242
3242
|
}
|
|
3243
3243
|
}
|
|
3244
3244
|
},
|
|
3245
|
+
"aws-cdk-lib.aws_rtbfabric": {
|
|
3246
|
+
"targets": {
|
|
3247
|
+
"dotnet": {
|
|
3248
|
+
"package": "Amazon.CDK.AWS.RTBFabric"
|
|
3249
|
+
},
|
|
3250
|
+
"java": {
|
|
3251
|
+
"package": "software.amazon.awscdk.services.rtbfabric"
|
|
3252
|
+
},
|
|
3253
|
+
"python": {
|
|
3254
|
+
"module": "aws_cdk.aws_rtbfabric"
|
|
3255
|
+
}
|
|
3256
|
+
}
|
|
3257
|
+
},
|
|
3245
3258
|
"aws-cdk-lib.aws_rum": {
|
|
3246
3259
|
"targets": {
|
|
3247
3260
|
"dotnet": {
|
|
@@ -3359,6 +3372,19 @@
|
|
|
3359
3372
|
}
|
|
3360
3373
|
}
|
|
3361
3374
|
},
|
|
3375
|
+
"aws-cdk-lib.aws_s3vectors": {
|
|
3376
|
+
"targets": {
|
|
3377
|
+
"dotnet": {
|
|
3378
|
+
"package": "Amazon.CDK.AWS.S3Vectors"
|
|
3379
|
+
},
|
|
3380
|
+
"java": {
|
|
3381
|
+
"package": "software.amazon.awscdk.services.s3vectors"
|
|
3382
|
+
},
|
|
3383
|
+
"python": {
|
|
3384
|
+
"module": "aws_cdk.aws_s3vectors"
|
|
3385
|
+
}
|
|
3386
|
+
}
|
|
3387
|
+
},
|
|
3362
3388
|
"aws-cdk-lib.aws_sagemaker": {
|
|
3363
3389
|
"targets": {
|
|
3364
3390
|
"dotnet": {
|
|
@@ -4104,7 +4130,7 @@
|
|
|
4104
4130
|
},
|
|
4105
4131
|
"description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon Elasticache memcached cache.",
|
|
4106
4132
|
"homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
|
|
4107
|
-
"jsiiVersion": "5.
|
|
4133
|
+
"jsiiVersion": "5.9.8 (build 3d2e131)",
|
|
4108
4134
|
"keywords": [
|
|
4109
4135
|
"aws",
|
|
4110
4136
|
"cdk",
|
|
@@ -4387,6 +4413,6 @@
|
|
|
4387
4413
|
"symbolId": "lib/index:LambdaToElasticachememcachedProps"
|
|
4388
4414
|
}
|
|
4389
4415
|
},
|
|
4390
|
-
"version": "2.
|
|
4391
|
-
"fingerprint": "
|
|
4416
|
+
"version": "2.95.1",
|
|
4417
|
+
"fingerprint": "334I/dz2SdLCMhoy9C9EuHbCYVoQ5rI2eXO71M6g/h4="
|
|
4392
4418
|
}
|
package/lib/index.js
CHANGED
|
@@ -60,7 +60,7 @@ class LambdaToElasticachememcached extends constructs_1.Construct {
|
|
|
60
60
|
}
|
|
61
61
|
exports.LambdaToElasticachememcached = LambdaToElasticachememcached;
|
|
62
62
|
_a = JSII_RTTI_SYMBOL_1;
|
|
63
|
-
LambdaToElasticachememcached[_a] = { fqn: "@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached", version: "2.
|
|
63
|
+
LambdaToElasticachememcached[_a] = { fqn: "@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached", version: "2.95.1" };
|
|
64
64
|
function AddLambdaEnvironmentVariable(targetFunction, value, defaultName, clientName) {
|
|
65
65
|
const variableName = clientName || defaultName;
|
|
66
66
|
targetFunction.addEnvironment(variableName, value);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-solutions-constructs/aws-lambda-elasticachememcached",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.95.1",
|
|
4
4
|
"description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon Elasticache memcached cache.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -55,14 +55,14 @@
|
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@aws-solutions-constructs/core": "2.
|
|
58
|
+
"@aws-solutions-constructs/core": "2.95.1",
|
|
59
59
|
"constructs": "^10.0.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
62
|
+
"@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0",
|
|
63
63
|
"@types/node": "^10.3.0",
|
|
64
64
|
"constructs": "^10.0.0",
|
|
65
|
-
"aws-cdk-lib": "2.
|
|
65
|
+
"aws-cdk-lib": "2.223.0"
|
|
66
66
|
},
|
|
67
67
|
"jest": {
|
|
68
68
|
"moduleFileExtensions": [
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
]
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|
|
82
|
-
"@aws-solutions-constructs/core": "2.
|
|
82
|
+
"@aws-solutions-constructs/core": "2.95.1",
|
|
83
83
|
"constructs": "^10.0.0",
|
|
84
|
-
"aws-cdk-lib": "^2.
|
|
84
|
+
"aws-cdk-lib": "^2.223.0"
|
|
85
85
|
},
|
|
86
86
|
"keywords": [
|
|
87
87
|
"aws",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
5
|
+
* with the License. A copy of the License is located at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
10
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
|
+
* and limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
exports.handler = async function (event) {
|
|
15
|
+
console.log(`request:${JSON.stringify(event, undefined, 2)}`);
|
|
16
|
+
return {
|
|
17
|
+
statusCode: 200,
|
|
18
|
+
headers: { "Content-Type": "text/plain" },
|
|
19
|
+
body: `Hello, AWS Solutions Constructs! You've hit ${event.path}`,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.external=void 0,exports.handler=handler,exports.withRetries=withRetries;const https=require("https"),url=require("url");exports.external={sendHttpRequest:defaultSendHttpRequest,log:defaultLog,includeStackTraces:!0,userHandlerIndex:"./index"};const CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function handler(event,context){const sanitizedEvent={...event,ResponseURL:"..."};if(exports.external.log(JSON.stringify(sanitizedEvent,void 0,2)),event.RequestType==="Delete"&&event.PhysicalResourceId===CREATE_FAILED_PHYSICAL_ID_MARKER){exports.external.log("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{const userHandler=require(exports.external.userHandlerIndex).handler,result=await userHandler(sanitizedEvent,context),responseEvent=renderResponse(event,result);await submitResponse("SUCCESS",responseEvent)}catch(e){const resp={...event,Reason:exports.external.includeStackTraces?e.stack:e.message};resp.PhysicalResourceId||(event.RequestType==="Create"?(exports.external.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),resp.PhysicalResourceId=CREATE_FAILED_PHYSICAL_ID_MARKER):exports.external.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(event)}`)),await submitResponse("FAILED",resp)}}function renderResponse(cfnRequest,handlerResponse={}){const physicalResourceId=handlerResponse.PhysicalResourceId??cfnRequest.PhysicalResourceId??cfnRequest.RequestId;if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${handlerResponse.PhysicalResourceId}" during deletion`);return{...cfnRequest,...handlerResponse,PhysicalResourceId:physicalResourceId}}async function submitResponse(status,event){const json={Status:status,Reason:event.Reason??status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:event.NoEcho,Data:event.Data},parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;exports.external.log("submit response to cloudformation",loggingSafeUrl,json);const responseBody=JSON.stringify(json),req={hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}};await withRetries({attempts:5,sleep:1e3},exports.external.sendHttpRequest)(req,responseBody)}async function defaultSendHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}function defaultLog(fmt,...params){console.log(fmt,...params)}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var I=Object.create,t=Object.defineProperty,y=Object.getOwnPropertyDescriptor,P=Object.getOwnPropertyNames,g=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,G=(r,e)=>{for(var o in e)t(r,o,{get:e[o],enumerable:!0})},n=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of P(e))!l.call(r,s)&&s!==o&&t(r,s,{get:()=>e[s],enumerable:!(i=y(e,s))||i.enumerable});return r},R=(r,e,o)=>(o=r!=null?I(g(r)):{},n(e||!r||!r.__esModule?t(o,"default",{value:r,enumerable:!0}):o,r)),S=r=>n(t({},"__esModule",{value:!0}),r),k={};G(k,{handler:()=>f}),module.exports=S(k);var a=R(require("@aws-sdk/client-ec2")),u=new a.EC2({});function c(r,e){return{GroupId:r,IpPermissions:[{UserIdGroupPairs:[{GroupId:r,UserId:e}],IpProtocol:"-1"}]}}function d(r){return{GroupId:r,IpPermissions:[{IpRanges:[{CidrIp:"0.0.0.0/0"}],IpProtocol:"-1"}]}}async function f(r){let e=r.ResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.Account;switch(r.RequestType){case"Create":return p(e,o);case"Update":return h(r);case"Delete":return m(e,o)}}async function h(r){let e=r.OldResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.DefaultSecurityGroupId;e!==o&&(await m(e,r.ResourceProperties.Account),await p(o,r.ResourceProperties.Account))}async function p(r,e){try{await u.revokeSecurityGroupEgress(d(r))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}try{await u.revokeSecurityGroupIngress(c(r,e))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}}async function m(r,e){await u.authorizeSecurityGroupIngress(c(r,e)),await u.authorizeSecurityGroupEgress(d(r))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"48.0.0"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "48.0.0",
|
|
3
3
|
"testCases": {
|
|
4
4
|
"lammem-existingResources/Integ/DefaultTest": {
|
|
5
5
|
"stacks": [
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"assertionStackName": "lammemexistingResourcesIntegDefaultTestDeployAssertD269DF67"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
|
-
"minimumCliVersion": "2.
|
|
12
|
+
"minimumCliVersion": "2.1029.2"
|
|
13
13
|
}
|
package/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.assets.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "48.0.0",
|
|
3
3
|
"files": {
|
|
4
4
|
"7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200": {
|
|
5
5
|
"displayName": "lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider Code",
|
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
|
-
"
|
|
32
|
+
"3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b": {
|
|
33
33
|
"displayName": "lammem-existingResources Template",
|
|
34
34
|
"source": {
|
|
35
35
|
"path": "lammem-existingResources.template.json",
|
|
36
36
|
"packaging": "file"
|
|
37
37
|
},
|
|
38
38
|
"destinations": {
|
|
39
|
-
"current_account-current_region-
|
|
39
|
+
"current_account-current_region-9391d9ef": {
|
|
40
40
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
41
|
-
"objectKey": "
|
|
41
|
+
"objectKey": "3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b.json",
|
|
42
42
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"validateOnSynth": false,
|
|
67
67
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}",
|
|
68
68
|
"cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}",
|
|
69
|
-
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/
|
|
69
|
+
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b.json",
|
|
70
70
|
"requiresBootstrapStackVersion": 6,
|
|
71
71
|
"bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
|
|
72
72
|
"additionalDependencies": [
|
|
@@ -244,14 +244,6 @@
|
|
|
244
244
|
"*"
|
|
245
245
|
]
|
|
246
246
|
}
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
"type": "aws:cdk:analytics:method",
|
|
250
|
-
"data": {
|
|
251
|
-
"addToPrincipalPolicy": [
|
|
252
|
-
{}
|
|
253
|
-
]
|
|
254
|
-
}
|
|
255
247
|
}
|
|
256
248
|
],
|
|
257
249
|
"/lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole": [
|
|
@@ -287,14 +279,6 @@
|
|
|
287
279
|
]
|
|
288
280
|
}
|
|
289
281
|
},
|
|
290
|
-
{
|
|
291
|
-
"type": "aws:cdk:analytics:method",
|
|
292
|
-
"data": {
|
|
293
|
-
"addStatements": [
|
|
294
|
-
{}
|
|
295
|
-
]
|
|
296
|
-
}
|
|
297
|
-
},
|
|
298
282
|
{
|
|
299
283
|
"type": "aws:cdk:analytics:method",
|
|
300
284
|
"data": {
|
|
@@ -494,57 +478,48 @@
|
|
|
494
478
|
"properties": {
|
|
495
479
|
"module": "aws-cdk-lib",
|
|
496
480
|
"flags": {
|
|
497
|
-
"@aws-cdk/
|
|
498
|
-
"recommendedValue": true,
|
|
499
|
-
"explanation": "Allow multiple stacks with the same name"
|
|
500
|
-
},
|
|
501
|
-
"aws-cdk:enableDiffNoFail": {
|
|
481
|
+
"@aws-cdk/aws-signer:signingProfileNamePassedToCfn": {
|
|
502
482
|
"recommendedValue": true,
|
|
503
|
-
"explanation": "
|
|
483
|
+
"explanation": "Pass signingProfileName to CfnSigningProfile"
|
|
504
484
|
},
|
|
505
485
|
"@aws-cdk/core:newStyleStackSynthesis": {
|
|
506
486
|
"recommendedValue": true,
|
|
507
|
-
"explanation": "Switch to new stack synthesis method which enables CI/CD"
|
|
487
|
+
"explanation": "Switch to new stack synthesis method which enables CI/CD",
|
|
488
|
+
"unconfiguredBehavesLike": {
|
|
489
|
+
"v2": true
|
|
490
|
+
}
|
|
508
491
|
},
|
|
509
492
|
"@aws-cdk/core:stackRelativeExports": {
|
|
510
493
|
"recommendedValue": true,
|
|
511
|
-
"explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path"
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
"explanation": "DockerImageAsset properly supports `.dockerignore` files by default"
|
|
516
|
-
},
|
|
517
|
-
"@aws-cdk/aws-secretsmanager:parseOwnedSecretName": {
|
|
518
|
-
"recommendedValue": true,
|
|
519
|
-
"explanation": "Fix the referencing of SecretsManager names from ARNs"
|
|
520
|
-
},
|
|
521
|
-
"@aws-cdk/aws-kms:defaultKeyPolicies": {
|
|
522
|
-
"recommendedValue": true,
|
|
523
|
-
"explanation": "Tighten default KMS key policies"
|
|
524
|
-
},
|
|
525
|
-
"@aws-cdk/aws-s3:grantWriteWithoutAcl": {
|
|
526
|
-
"recommendedValue": true,
|
|
527
|
-
"explanation": "Remove `PutObjectAcl` from Bucket.grantWrite"
|
|
494
|
+
"explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path",
|
|
495
|
+
"unconfiguredBehavesLike": {
|
|
496
|
+
"v2": true
|
|
497
|
+
}
|
|
528
498
|
},
|
|
529
|
-
"@aws-cdk/aws-ecs-patterns:
|
|
499
|
+
"@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": {
|
|
530
500
|
"recommendedValue": true,
|
|
531
|
-
"explanation": "
|
|
501
|
+
"explanation": "Disable implicit openListener when custom security groups are provided"
|
|
532
502
|
},
|
|
533
503
|
"@aws-cdk/aws-rds:lowercaseDbIdentifier": {
|
|
534
504
|
"recommendedValue": true,
|
|
535
|
-
"explanation": "Force lowercasing of RDS Cluster names in CDK"
|
|
505
|
+
"explanation": "Force lowercasing of RDS Cluster names in CDK",
|
|
506
|
+
"unconfiguredBehavesLike": {
|
|
507
|
+
"v2": true
|
|
508
|
+
}
|
|
536
509
|
},
|
|
537
510
|
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": {
|
|
538
511
|
"recommendedValue": true,
|
|
539
|
-
"explanation": "Allow adding/removing multiple UsagePlanKeys independently"
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
"explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default."
|
|
512
|
+
"explanation": "Allow adding/removing multiple UsagePlanKeys independently",
|
|
513
|
+
"unconfiguredBehavesLike": {
|
|
514
|
+
"v2": true
|
|
515
|
+
}
|
|
544
516
|
},
|
|
545
517
|
"@aws-cdk/aws-lambda:recognizeVersionProps": {
|
|
546
518
|
"recommendedValue": true,
|
|
547
|
-
"explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`."
|
|
519
|
+
"explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.",
|
|
520
|
+
"unconfiguredBehavesLike": {
|
|
521
|
+
"v2": true
|
|
522
|
+
}
|
|
548
523
|
},
|
|
549
524
|
"@aws-cdk/aws-lambda:recognizeLayerVersion": {
|
|
550
525
|
"userValue": true,
|
|
@@ -553,7 +528,10 @@
|
|
|
553
528
|
},
|
|
554
529
|
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": {
|
|
555
530
|
"recommendedValue": true,
|
|
556
|
-
"explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default."
|
|
531
|
+
"explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.",
|
|
532
|
+
"unconfiguredBehavesLike": {
|
|
533
|
+
"v2": true
|
|
534
|
+
}
|
|
557
535
|
},
|
|
558
536
|
"@aws-cdk/core:checkSecretUsage": {
|
|
559
537
|
"userValue": true,
|
|
@@ -630,7 +608,7 @@
|
|
|
630
608
|
"@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": {
|
|
631
609
|
"userValue": true,
|
|
632
610
|
"recommendedValue": true,
|
|
633
|
-
"explanation": "Enable this feature to
|
|
611
|
+
"explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in."
|
|
634
612
|
},
|
|
635
613
|
"@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": {
|
|
636
614
|
"userValue": true,
|
|
@@ -774,7 +752,10 @@
|
|
|
774
752
|
},
|
|
775
753
|
"@aws-cdk/pipelines:reduceAssetRoleTrustScope": {
|
|
776
754
|
"recommendedValue": true,
|
|
777
|
-
"explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy"
|
|
755
|
+
"explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy",
|
|
756
|
+
"unconfiguredBehavesLike": {
|
|
757
|
+
"v2": true
|
|
758
|
+
}
|
|
778
759
|
},
|
|
779
760
|
"@aws-cdk/aws-eks:nodegroupNameAttribute": {
|
|
780
761
|
"userValue": true,
|
|
@@ -803,7 +784,10 @@
|
|
|
803
784
|
},
|
|
804
785
|
"@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": {
|
|
805
786
|
"recommendedValue": true,
|
|
806
|
-
"explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model."
|
|
787
|
+
"explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.",
|
|
788
|
+
"unconfiguredBehavesLike": {
|
|
789
|
+
"v2": true
|
|
790
|
+
}
|
|
807
791
|
},
|
|
808
792
|
"@aws-cdk/core:explicitStackTags": {
|
|
809
793
|
"userValue": true,
|
|
@@ -867,7 +851,10 @@
|
|
|
867
851
|
},
|
|
868
852
|
"@aws-cdk/core:aspectStabilization": {
|
|
869
853
|
"recommendedValue": true,
|
|
870
|
-
"explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis."
|
|
854
|
+
"explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.",
|
|
855
|
+
"unconfiguredBehavesLike": {
|
|
856
|
+
"v2": true
|
|
857
|
+
}
|
|
871
858
|
},
|
|
872
859
|
"@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": {
|
|
873
860
|
"userValue": true,
|
|
@@ -901,7 +888,10 @@
|
|
|
901
888
|
},
|
|
902
889
|
"@aws-cdk/pipelines:reduceStageRoleTrustScope": {
|
|
903
890
|
"recommendedValue": true,
|
|
904
|
-
"explanation": "Remove the root account principal from Stage addActions trust policy"
|
|
891
|
+
"explanation": "Remove the root account principal from Stage addActions trust policy",
|
|
892
|
+
"unconfiguredBehavesLike": {
|
|
893
|
+
"v2": true
|
|
894
|
+
}
|
|
905
895
|
},
|
|
906
896
|
"@aws-cdk/aws-events:requireEventBusPolicySid": {
|
|
907
897
|
"userValue": true,
|
|
@@ -924,7 +914,10 @@
|
|
|
924
914
|
},
|
|
925
915
|
"@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": {
|
|
926
916
|
"recommendedValue": true,
|
|
927
|
-
"explanation": "When enabled, scopes down the trust policy for the cross-account action role"
|
|
917
|
+
"explanation": "When enabled, scopes down the trust policy for the cross-account action role",
|
|
918
|
+
"unconfiguredBehavesLike": {
|
|
919
|
+
"v2": true
|
|
920
|
+
}
|
|
928
921
|
},
|
|
929
922
|
"@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": {
|
|
930
923
|
"userValue": true,
|
|
@@ -954,6 +947,21 @@
|
|
|
954
947
|
"userValue": true,
|
|
955
948
|
"recommendedValue": true,
|
|
956
949
|
"explanation": "When enabled, CDK creates and manages loggroup for the lambda function"
|
|
950
|
+
},
|
|
951
|
+
"@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": {
|
|
952
|
+
"recommendedValue": true,
|
|
953
|
+
"explanation": "When enabled, Network Load Balancer will be created with a security group by default."
|
|
954
|
+
},
|
|
955
|
+
"@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": {
|
|
956
|
+
"recommendedValue": true,
|
|
957
|
+
"explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.",
|
|
958
|
+
"unconfiguredBehavesLike": {
|
|
959
|
+
"v2": true
|
|
960
|
+
}
|
|
961
|
+
},
|
|
962
|
+
"@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": {
|
|
963
|
+
"recommendedValue": true,
|
|
964
|
+
"explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement"
|
|
957
965
|
}
|
|
958
966
|
}
|
|
959
967
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"Vpc":{"id":"Vpc","path":"lammem-existingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.206.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-existingResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-existingResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.206.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-existingResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.206.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.206.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}},{"Action":"iam:PassRole","Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-existingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"test-sg-security-group":{"id":"test-sg-security-group","path":"lammem-existingResources/test-sg-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.206.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-sg-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-sg-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-function":{"id":"test-function","path":"lammem-existingResources/test-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"runtime":"*","handler":"*","code":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lammem-existingResources/test-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lammem-existingResources/test-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lammem-existingResources/test-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lammem-existingResources/test-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-existingResources/test-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testfunctionServiceRoleFB85AD63","Arn"]},"runtime":"nodejs20.x","vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testsgsecuritygroup89DCF621","GroupId"]}]}}}}}},"ec-subnetgroup-test-cache":{"id":"ec-subnetgroup-test-cache","path":"lammem-existingResources/ec-subnetgroup-test-cache","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"test-cache-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"test-cache-cachesg":{"id":"test-cache-cachesg","path":"lammem-existingResources/test-cache-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.206.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-cache-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-cache-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cache-cluster":{"id":"test-cache-cluster","path":"lammem-existingResources/test-cache-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"test-cache-subnet-group","clusterName":"test-cache-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["testcachecachesg7265880E","GroupId"]},{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]}]}}},"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources/lammem-existingResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.86.0"},"children":{"lammem-existingResources-cachesg":{"id":"lammem-existingResources-cachesg","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.206.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-existingResources-ingress":{"id":"lammem-existingResources-ingress","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]},"groupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"toPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}}}}}},"Integ":{"id":"Integ","path":"lammem-existingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-existingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}}
|
|
1
|
+
{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lammem-existingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-existingResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-existingResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-existingResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-existingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-sg-security-group":{"id":"test-sg-security-group","path":"lammem-existingResources/test-sg-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-sg-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-sg-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-function":{"id":"test-function","path":"lammem-existingResources/test-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lammem-existingResources/test-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lammem-existingResources/test-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lammem-existingResources/test-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-existingResources/test-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-existingResources/test-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testfunctionServiceRoleFB85AD63","Arn"]},"runtime":"nodejs20.x","vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testsgsecuritygroup89DCF621","GroupId"]}]}}}}}},"ec-subnetgroup-test-cache":{"id":"ec-subnetgroup-test-cache","path":"lammem-existingResources/ec-subnetgroup-test-cache","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"test-cache-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"test-cache-cachesg":{"id":"test-cache-cachesg","path":"lammem-existingResources/test-cache-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-cache-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-cache-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cache-cluster":{"id":"test-cache-cluster","path":"lammem-existingResources/test-cache-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"test-cache-subnet-group","clusterName":"test-cache-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["testcachecachesg7265880E","GroupId"]},{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]}]}}},"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources/lammem-existingResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.94.0"},"children":{"lammem-existingResources-cachesg":{"id":"lammem-existingResources-cachesg","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-existingResources-ingress":{"id":"lammem-existingResources-ingress","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]},"groupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"toPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}}}}}},"Integ":{"id":"Integ","path":"lammem-existingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-existingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
5
|
+
* with the License. A copy of the License is located at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
10
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
|
+
* and limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
exports.handler = async function (event) {
|
|
15
|
+
console.log(`request:${JSON.stringify(event, undefined, 2)}`);
|
|
16
|
+
return {
|
|
17
|
+
statusCode: 200,
|
|
18
|
+
headers: { "Content-Type": "text/plain" },
|
|
19
|
+
body: `Hello, AWS Solutions Constructs! You've hit ${event.path}`,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.external=void 0,exports.handler=handler,exports.withRetries=withRetries;const https=require("https"),url=require("url");exports.external={sendHttpRequest:defaultSendHttpRequest,log:defaultLog,includeStackTraces:!0,userHandlerIndex:"./index"};const CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function handler(event,context){const sanitizedEvent={...event,ResponseURL:"..."};if(exports.external.log(JSON.stringify(sanitizedEvent,void 0,2)),event.RequestType==="Delete"&&event.PhysicalResourceId===CREATE_FAILED_PHYSICAL_ID_MARKER){exports.external.log("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{const userHandler=require(exports.external.userHandlerIndex).handler,result=await userHandler(sanitizedEvent,context),responseEvent=renderResponse(event,result);await submitResponse("SUCCESS",responseEvent)}catch(e){const resp={...event,Reason:exports.external.includeStackTraces?e.stack:e.message};resp.PhysicalResourceId||(event.RequestType==="Create"?(exports.external.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),resp.PhysicalResourceId=CREATE_FAILED_PHYSICAL_ID_MARKER):exports.external.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(event)}`)),await submitResponse("FAILED",resp)}}function renderResponse(cfnRequest,handlerResponse={}){const physicalResourceId=handlerResponse.PhysicalResourceId??cfnRequest.PhysicalResourceId??cfnRequest.RequestId;if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${handlerResponse.PhysicalResourceId}" during deletion`);return{...cfnRequest,...handlerResponse,PhysicalResourceId:physicalResourceId}}async function submitResponse(status,event){const json={Status:status,Reason:event.Reason??status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:event.NoEcho,Data:event.Data},parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;exports.external.log("submit response to cloudformation",loggingSafeUrl,json);const responseBody=JSON.stringify(json),req={hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}};await withRetries({attempts:5,sleep:1e3},exports.external.sendHttpRequest)(req,responseBody)}async function defaultSendHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}function defaultLog(fmt,...params){console.log(fmt,...params)}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var I=Object.create,t=Object.defineProperty,y=Object.getOwnPropertyDescriptor,P=Object.getOwnPropertyNames,g=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,G=(r,e)=>{for(var o in e)t(r,o,{get:e[o],enumerable:!0})},n=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of P(e))!l.call(r,s)&&s!==o&&t(r,s,{get:()=>e[s],enumerable:!(i=y(e,s))||i.enumerable});return r},R=(r,e,o)=>(o=r!=null?I(g(r)):{},n(e||!r||!r.__esModule?t(o,"default",{value:r,enumerable:!0}):o,r)),S=r=>n(t({},"__esModule",{value:!0}),r),k={};G(k,{handler:()=>f}),module.exports=S(k);var a=R(require("@aws-sdk/client-ec2")),u=new a.EC2({});function c(r,e){return{GroupId:r,IpPermissions:[{UserIdGroupPairs:[{GroupId:r,UserId:e}],IpProtocol:"-1"}]}}function d(r){return{GroupId:r,IpPermissions:[{IpRanges:[{CidrIp:"0.0.0.0/0"}],IpProtocol:"-1"}]}}async function f(r){let e=r.ResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.Account;switch(r.RequestType){case"Create":return p(e,o);case"Update":return h(r);case"Delete":return m(e,o)}}async function h(r){let e=r.OldResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.DefaultSecurityGroupId;e!==o&&(await m(e,r.ResourceProperties.Account),await p(o,r.ResourceProperties.Account))}async function p(r,e){try{await u.revokeSecurityGroupEgress(d(r))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}try{await u.revokeSecurityGroupIngress(c(r,e))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}}async function m(r,e){await u.authorizeSecurityGroupIngress(c(r,e)),await u.authorizeSecurityGroupEgress(d(r))}
|