From 4a7617f2e504cd218999545e68366d129d463f72 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Thu, 4 Nov 2021 13:52:59 -0700 Subject: [PATCH 1/5] Add resource asset metadata for NestedStack --- .../@aws-cdk/aws-cloudformation/package.json | 5 ++ .../test/integ.nested-stack.expected.json | 30 +++++++---- .../integ.nested-stacks-assets.expected.json | 6 ++- ...teg.nested-stacks-multi-refs.expected.json | 6 ++- .../integ.nested-stacks-multi.expected.json | 6 ++- ...cks-nested-export-to-sibling.expected.json | 6 ++- .../integ.nested-stacks-refs1.expected.json | 6 ++- .../integ.nested-stacks-refs2.expected.json | 6 ++- .../integ.nested-stacks-refs3.expected.json | 12 ++++- packages/@aws-cdk/core/lib/nested-stack.ts | 15 ++++++ packages/@aws-cdk/core/test/stack.test.ts | 23 ++++++++ .../cdk-integ-tools/bin/cdk-integ-assert.ts | 6 ++- .../@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts | 5 +- .../cdk-integ-tools/lib/integ-helpers.ts | 52 ++++++++++++++++--- 14 files changed, 155 insertions(+), 29 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudformation/package.json b/packages/@aws-cdk/aws-cloudformation/package.json index 3a8c455bf4557..03901ce816869 100644 --- a/packages/@aws-cdk/aws-cloudformation/package.json +++ b/packages/@aws-cdk/aws-cloudformation/package.json @@ -56,6 +56,11 @@ "cdk-build": { "cloudformation": "AWS::CloudFormation" }, + "cdk-integ": { + "env": { + "ENABLE_ASSET_METADATA": true + } + }, "keywords": [ "aws", "cdk", diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json index d290134fa1cb6..bc71028c325e5 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json @@ -160,7 +160,7 @@ }, "/", { - "Ref": "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3Bucket06F505B9" + "Ref": "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3BucketCD285144" }, "/", { @@ -170,7 +170,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3VersionKey06BEDE93" + "Ref": "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3VersionKey678C5A99" } ] } @@ -183,7 +183,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3VersionKey06BEDE93" + "Ref": "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3VersionKey678C5A99" } ] } @@ -200,7 +200,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstackstestNestedStack1C289F6D5.nested.template.json", + "aws:asset:property": "TemplateURL" + } }, "NestedStack2NestedStackNestedStack2NestedStackResourceFDF82E43": { "Type": "AWS::CloudFormation::Stack", @@ -256,21 +260,25 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstackstestNestedStack209C5218A.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Parameters": { - "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3Bucket06F505B9": { + "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3BucketCD285144": { "Type": "String", - "Description": "S3 bucket for asset \"91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4\"" + "Description": "S3 bucket for asset \"f5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbc\"" }, - "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3VersionKey06BEDE93": { + "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3VersionKey678C5A99": { "Type": "String", - "Description": "S3 key for asset version \"91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4\"" + "Description": "S3 key for asset version \"f5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbc\"" }, - "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4ArtifactHash407EE1C2": { + "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcArtifactHash5F083B4E": { "Type": "String", - "Description": "Artifact hash for asset \"91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4\"" + "Description": "Artifact hash for asset \"f5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbc\"" }, "AssetParameters0d0404717d8867c09534f2cf382e8e24531ff64a968afa2efd7f071ad65a22dfS3BucketB322F951": { "Type": "String", diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json index 45b52a4c8016d..b63eaf6009d2d 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json @@ -59,7 +59,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstacksassetsNested51BEE8E8.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json index 8e1abf0743734..a0e62182008f9 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json @@ -74,7 +74,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstacksmultirefsNested146CE1F9F.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json index 0145629ff176e..76de77978f9b5 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json @@ -59,7 +59,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstacksmultiNestedStack08DBC739.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json index 115a1f9130ae3..c14e7196275dd 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json @@ -52,7 +52,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "Stack1NestedUnderStack15F1F8640.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json index 299d5005eff0f..42fed61a0ee1c 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json @@ -72,7 +72,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstacksrefs1parentwithconsumerNested151B8A692.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json index c6e818da02313..6e792f3c5bc4b 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json @@ -52,7 +52,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstacksrefs2parentwithproducerNested1BBFBB3D5.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json index 2ef738be2c023..44162dd10f997 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json @@ -51,7 +51,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstacksrefs3siblingsNested1C1211E86.nested.template.json", + "aws:asset:property": "TemplateURL" + } }, "Nested2NestedStackNested2NestedStackResource877A1112": { "Type": "AWS::CloudFormation::Stack", @@ -112,7 +116,11 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" + "DeletionPolicy": "Delete", + "Metadata": { + "aws:asset:path": "nestedstacksrefs3siblingsNested22C7C46E6.nested.template.json", + "aws:asset:property": "TemplateURL" + } } }, "Parameters": { diff --git a/packages/@aws-cdk/core/lib/nested-stack.ts b/packages/@aws-cdk/core/lib/nested-stack.ts index fd8c47f6a0731..cb4d1e638b39c 100644 --- a/packages/@aws-cdk/core/lib/nested-stack.ts +++ b/packages/@aws-cdk/core/lib/nested-stack.ts @@ -1,4 +1,5 @@ import * as crypto from 'crypto'; +import * as cxapi from '@aws-cdk/cx-api'; import { Construct, Node } from 'constructs'; import { FileAssetPackaging } from './assets'; import { Fn } from './cfn-fn'; @@ -213,6 +214,8 @@ export class NestedStack extends Stack { fileName: this.templateFile, }); + this.addResourceMetadata(this.resource, 'TemplateURL'); + // if bucketName/objectKey are cfn parameters from a stack other than the parent stack, they will // be resolved as cross-stack references like any other (see "multi" tests). this._templateUrl = `https://s3.${this._parentStack.region}.${this._parentStack.urlSuffix}/${templateLocation.bucketName}/${templateLocation.objectKey}`; @@ -230,6 +233,18 @@ export class NestedStack extends Stack { }, }); } + + private addResourceMetadata(resource: CfnResource, resourceProperty: string) { + if (!this.node.tryGetContext(cxapi.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT)) { + return; // not enabled + } + + // tell tools such as SAM CLI that the "Code" property of this resource + // points to a local path in order to enable local invocation of this function. + resource.cfnOptions.metadata = resource.cfnOptions.metadata || { }; + resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PATH_KEY] = this.templateFile; + resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PROPERTY_KEY] = resourceProperty; + } } /** diff --git a/packages/@aws-cdk/core/test/stack.test.ts b/packages/@aws-cdk/core/test/stack.test.ts index 7c67f545d4b87..cd7186fea9f7d 100644 --- a/packages/@aws-cdk/core/test/stack.test.ts +++ b/packages/@aws-cdk/core/test/stack.test.ts @@ -661,6 +661,29 @@ describe('stack', () => { })); }); + test('asset metadata added to NestedStack resource that contains asset path and property', () => { + const app = new App(); + + // WHEN + const parentStack = new Stack(app, 'parent'); + parentStack.node.setContext(cxapi.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT, true); + const childStack = new NestedStack(parentStack, 'child'); + new CfnResource(childStack, 'ChildResource', { type: 'Resource::Child' }); + + const assembly = app.synth(); + expect(assembly.getStackByName(parentStack.stackName).template).toEqual(expect.objectContaining({ + Resources: { + childNestedStackchildNestedStackResource7408D03F: expect.objectContaining({ + Metadata: { + 'aws:asset:path': 'parentchild13F9359B.nested.template.json', + 'aws:asset:property': 'TemplateURL', + }, + }), + }, + })); + + }); + test('cross-stack reference (substack references parent stack)', () => { // GIVEN const app = new App(); diff --git a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts index 3c5cb049cf0d0..1810b91ba1efc 100644 --- a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts +++ b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts @@ -2,7 +2,7 @@ // Verify that all integration tests still match their expected output import { canonicalizeTemplate } from '@aws-cdk/assert-internal'; import { diffTemplate, formatDifferences } from '@aws-cdk/cloudformation-diff'; -import { DEFAULT_SYNTH_OPTIONS, IntegrationTests } from '../lib/integ-helpers'; +import { cdkIntegSynthesizeOptions, IntegrationTests } from '../lib/integ-helpers'; /* eslint-disable no-console */ @@ -12,6 +12,8 @@ async function main() { const tests = await new IntegrationTests('test').fromCliArgs(); // always assert all tests const failures: string[] = []; + const synthOptions = cdkIntegSynthesizeOptions(); + for (const test of tests) { process.stdout.write(`Verifying ${test.name} against ${test.expectedFileName} ... `); @@ -20,7 +22,7 @@ async function main() { } let expected = await test.readExpected(); - let actual = await test.cdkSynthFast(DEFAULT_SYNTH_OPTIONS); + let actual = await test.cdkSynthFast(synthOptions); if ((await test.pragmas()).includes(IGNORE_ASSETS_PRAGMA)) { expected = canonicalizeTemplate(expected); diff --git a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts index 30afa7c8102b9..5f245d4e1d28c 100644 --- a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts +++ b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node // Exercise all integ stacks and if they deploy, update the expected synth files import * as yargs from 'yargs'; -import { DEFAULT_SYNTH_OPTIONS, IntegrationTests } from '../lib/integ-helpers'; +import { cdkIntegSynthesizeOptions, IntegrationTests } from '../lib/integ-helpers'; /* eslint-disable no-console */ @@ -15,6 +15,7 @@ async function main() { .argv; const tests = await new IntegrationTests('test').fromCliArgs(argv._.map(x => x.toString())); + const synthOptions = cdkIntegSynthesizeOptions(); if (argv.list) { process.stdout.write(tests.map(t => t.name).join(' ') + '\n'); @@ -50,7 +51,7 @@ async function main() { } // If this all worked, write the new expectation file - const actual = await test.cdkSynthFast(DEFAULT_SYNTH_OPTIONS); + const actual = await test.cdkSynthFast(synthOptions); await test.writeExpected(actual); } finally { diff --git a/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts b/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts index 6b725d980a6f6..e3fa8d5b82846 100644 --- a/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts +++ b/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts @@ -73,6 +73,14 @@ export interface SynthOptions { readonly env?: Record; } +export interface CDKIntegAssertOptions { + + /** + * Environment variables to be passed to 'cdk-integ' and all of its child processes. + */ + env?: NodeJS.ProcessEnv; +} + export class IntegrationTest { public readonly expectedFileName: string; private readonly expectedFilePath: string; @@ -154,9 +162,9 @@ export class IntegrationTest { const names = Object.keys(stacks); if (names.length !== 1) { throw new Error('"cdk-integ" can only operate on apps with a single stack.\n\n' + - ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + - ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + - ` Available stacks: ${names.join(' ')} (wildcards are also supported)\n`); + ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + + ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + + ` Available stacks: ${names.join(' ')} (wildcards are also supported)\n`); } return stacks[names[0]]; } @@ -233,9 +241,9 @@ export class IntegrationTest { const stacks = (await this.invokeCli(['ls'], { ...DEFAULT_SYNTH_OPTIONS })).split('\n'); if (stacks.length !== 1) { throw new Error('"cdk-integ" can only operate on apps with a single stack.\n\n' + - ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + - ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + - ` Available stacks: ${stacks.join(' ')} (wildcards are also supported)\n`); + ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + + ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + + ` Available stacks: ${stacks.join(' ')} (wildcards are also supported)\n`); } return stacks; @@ -360,6 +368,38 @@ export const DEFAULT_SYNTH_OPTIONS = { }, }; +/** + * Return the package JSON for the current package + */ +export function currentPackageJson(): any { + // eslint-disable-next-line @typescript-eslint/no-require-imports + return require(path.join(process.cwd(), 'package.json')); +} + +/** + * Return the CDK integ options + */ +export function cdkIntegOptions(): CDKIntegAssertOptions { + return currentPackageJson()['cdk-integ'] || {}; +} + +/** + * Return CDK Integration Synthesize options + */ +export function cdkIntegSynthesizeOptions(): any { + const integAssertOptions = cdkIntegOptions(); + const synthOptions = { + context: { + ...DEFAULT_SYNTH_OPTIONS.context, + ['aws:cdk:enable-asset-metadata']: !!integAssertOptions.env && !!integAssertOptions.env.ENABLE_ASSET_METADATA, + }, + env: { + ...DEFAULT_SYNTH_OPTIONS.env, + }, + }; + return synthOptions; +} + /** * Our own execute function which doesn't use shells and strings. */ From 3ab82c2e60d05d65dd3157d30a3e9c1e8a52fc59 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Thu, 4 Nov 2021 14:19:10 -0700 Subject: [PATCH 2/5] Edit code comment --- packages/@aws-cdk/core/lib/nested-stack.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/core/lib/nested-stack.ts b/packages/@aws-cdk/core/lib/nested-stack.ts index cb4d1e638b39c..f240853123aca 100644 --- a/packages/@aws-cdk/core/lib/nested-stack.ts +++ b/packages/@aws-cdk/core/lib/nested-stack.ts @@ -239,8 +239,8 @@ export class NestedStack extends Stack { return; // not enabled } - // tell tools such as SAM CLI that the "Code" property of this resource - // points to a local path in order to enable local invocation of this function. + // tell tools such as SAM CLI that the "TemplateURL" property of this resource + // points to the nested stack template for local emulation resource.cfnOptions.metadata = resource.cfnOptions.metadata || { }; resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PATH_KEY] = this.templateFile; resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PROPERTY_KEY] = resourceProperty; From 694bf00a8a2ec44c2564ee01301eec3a2ab2c657 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Thu, 4 Nov 2021 15:20:13 -0700 Subject: [PATCH 3/5] Update un-supported integration test runtimes --- .../integ.core-custom-resources.expected.json | 18 ++++----- .../test/integ.nested-stack.ts | 2 +- .../integ.nested-stacks-assets.expected.json | 18 ++++----- .../test/integ.nested-stacks-assets.ts | 2 +- ...teg.nested-stacks-multi-refs.expected.json | 38 +++++++++---------- .../integ.nested-stacks-multi.expected.json | 18 ++++----- ...nteg.trivial-lambda-resource.expected.json | 4 +- .../test/integ.trivial-lambda-resource.ts | 2 +- 8 files changed, 51 insertions(+), 51 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json index e5db15d48809b..4ba4e912a2764 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json @@ -27,7 +27,7 @@ "Properties": { "Code": { "S3Bucket": { - "Ref": "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3Bucket8B4D0E9E" + "Ref": "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3BucketF4E265D4" }, "S3Key": { "Fn::Join": [ @@ -40,7 +40,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3VersionKeyDECB34FE" + "Ref": "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3VersionKey99E965FF" } ] } @@ -53,7 +53,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3VersionKeyDECB34FE" + "Ref": "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3VersionKey99E965FF" } ] } @@ -99,17 +99,17 @@ } }, "Parameters": { - "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3Bucket8B4D0E9E": { + "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3BucketF4E265D4": { "Type": "String", - "Description": "S3 bucket for asset \"925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226\"" + "Description": "S3 bucket for asset \"a9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2d\"" }, - "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3VersionKeyDECB34FE": { + "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3VersionKey99E965FF": { "Type": "String", - "Description": "S3 key for asset version \"925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226\"" + "Description": "S3 key for asset version \"a9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2d\"" }, - "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226ArtifactHashEEC400F2": { + "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dArtifactHash254CE64B": { "Type": "String", - "Description": "Artifact hash for asset \"925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226\"" + "Description": "Artifact hash for asset \"a9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2d\"" } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts index 3b3a26346c2be..575a6f541c0a6 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts @@ -42,7 +42,7 @@ class MyNestedStack extends cfn.NestedStack { if (props.subscriber) { new lambda.Function(this, 'fn', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, code: lambda.Code.fromInline('console.error("hi")'), handler: 'index.handler', environment: { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json index b63eaf6009d2d..0ef03e7031597 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json @@ -17,7 +17,7 @@ }, "/", { - "Ref": "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3Bucket2E4E0318" + "Ref": "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3BucketB5534B29" }, "/", { @@ -27,7 +27,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3VersionKeyF6AB1DF2" + "Ref": "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3VersionKey45204672" } ] } @@ -40,7 +40,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3VersionKeyF6AB1DF2" + "Ref": "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3VersionKey45204672" } ] } @@ -79,17 +79,17 @@ "Type": "String", "Description": "Artifact hash for asset \"bbe209afddb09a12327bab7a105e085758a29b769b5b4bf5b6320ac41b05fc51\"" }, - "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3Bucket2E4E0318": { + "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3BucketB5534B29": { "Type": "String", - "Description": "S3 bucket for asset \"7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aab\"" + "Description": "S3 bucket for asset \"b0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75\"" }, - "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3VersionKeyF6AB1DF2": { + "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3VersionKey45204672": { "Type": "String", - "Description": "S3 key for asset version \"7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aab\"" + "Description": "S3 key for asset version \"b0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75\"" }, - "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabArtifactHash63670210": { + "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75ArtifactHash9B541DF5": { "Type": "String", - "Description": "Artifact hash for asset \"7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aab\"" + "Description": "Artifact hash for asset \"b0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75\"" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts index 996ef461b0d2c..6663be9d14ec9 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts @@ -16,7 +16,7 @@ class NestedStack extends cfn.NestedStack { new lambda.Function(this, 'Handler', { code: lambda.Code.fromAsset(path.join(__dirname, 'asset-directory-fixture')), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', }); } diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json index a0e62182008f9..da648be26ba6d 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json @@ -20,7 +20,7 @@ }, "/", { - "Ref": "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3BucketD17502DC" + "Ref": "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3BucketC828FDEB" }, "/", { @@ -30,7 +30,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3VersionKeyA042251F" + "Ref": "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3VersionKey771CD3D2" } ] } @@ -43,7 +43,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3VersionKeyA042251F" + "Ref": "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3VersionKey771CD3D2" } ] } @@ -65,11 +65,11 @@ "referencetonestedstacksmultirefsAssetParameters495a6bc36c13a0adeb3778c921d18ac4a8205f5471108fcc199a291d14855c3aS3VersionKey5F9CF809Ref": { "Ref": "AssetParameters495a6bc36c13a0adeb3778c921d18ac4a8205f5471108fcc199a291d14855c3aS3VersionKey2CCE0573" }, - "referencetonestedstacksmultirefsAssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3Bucket119ED767Ref": { - "Ref": "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3BucketAF9A3A0F" + "referencetonestedstacksmultirefsAssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3BucketD9691A6DRef": { + "Ref": "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3Bucket0481F1ED" }, - "referencetonestedstacksmultirefsAssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3VersionKeyDCF85FE2Ref": { - "Ref": "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3VersionKey2F85340C" + "referencetonestedstacksmultirefsAssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3VersionKey33044C1ARef": { + "Ref": "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3VersionKeyB386C7B0" } } }, @@ -94,29 +94,29 @@ "Type": "String", "Description": "Artifact hash for asset \"495a6bc36c13a0adeb3778c921d18ac4a8205f5471108fcc199a291d14855c3a\"" }, - "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3BucketAF9A3A0F": { + "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3Bucket0481F1ED": { "Type": "String", - "Description": "S3 bucket for asset \"c2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441\"" + "Description": "S3 bucket for asset \"d5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9a\"" }, - "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3VersionKey2F85340C": { + "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3VersionKeyB386C7B0": { "Type": "String", - "Description": "S3 key for asset version \"c2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441\"" + "Description": "S3 key for asset version \"d5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9a\"" }, - "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441ArtifactHash5D93ED07": { + "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aArtifactHash9CB39AF3": { "Type": "String", - "Description": "Artifact hash for asset \"c2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441\"" + "Description": "Artifact hash for asset \"d5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9a\"" }, - "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3BucketD17502DC": { + "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3BucketC828FDEB": { "Type": "String", - "Description": "S3 bucket for asset \"2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703\"" + "Description": "S3 bucket for asset \"c0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98\"" }, - "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3VersionKeyA042251F": { + "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3VersionKey771CD3D2": { "Type": "String", - "Description": "S3 key for asset version \"2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703\"" + "Description": "S3 key for asset version \"c0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98\"" }, - "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703ArtifactHash8853E261": { + "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98ArtifactHashBB8A2691": { "Type": "String", - "Description": "Artifact hash for asset \"2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703\"" + "Description": "Artifact hash for asset \"c0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98\"" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json index 76de77978f9b5..eea79b4ed9594 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json @@ -17,7 +17,7 @@ }, "/", { - "Ref": "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3BucketDF3BC15F" + "Ref": "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3BucketE9B14550" }, "/", { @@ -27,7 +27,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3VersionKey1BCA0E57" + "Ref": "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3VersionKey6C570BFA" } ] } @@ -40,7 +40,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3VersionKey1BCA0E57" + "Ref": "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3VersionKey6C570BFA" } ] } @@ -79,17 +79,17 @@ "Type": "String", "Description": "Artifact hash for asset \"e3410ccec04414535f1c8035ce0ea42f59eedf66d0e6d0eec8bc435c4a4e809d\"" }, - "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3BucketDF3BC15F": { + "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3BucketE9B14550": { "Type": "String", - "Description": "S3 bucket for asset \"686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856\"" + "Description": "S3 bucket for asset \"f2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62f\"" }, - "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3VersionKey1BCA0E57": { + "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3VersionKey6C570BFA": { "Type": "String", - "Description": "S3 key for asset version \"686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856\"" + "Description": "S3 key for asset version \"f2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62f\"" }, - "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856ArtifactHash9043932C": { + "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fArtifactHashBD5EDD0E": { "Type": "String", - "Description": "Artifact hash for asset \"686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856\"" + "Description": "Artifact hash for asset \"f2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62f\"" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json index f033100eeec5a..9c64a42c529e5 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json @@ -51,14 +51,14 @@ "Code": { "ZipFile": "def main(event, context):\n import logging as log\n import cfnresponse\n log.getLogger().setLevel(log.INFO)\n\n # This needs to change if there are to be multiple resources in the same stack\n physical_id = 'TheOnlyCustomResource'\n\n try:\n log.info('Input event: %s', event)\n\n # Check if this is a Create and we're failing Creates\n if event['RequestType'] == 'Create' and event['ResourceProperties'].get('FailCreate', False):\n raise RuntimeError('Create failure requested')\n\n # Do the thing\n message = event['ResourceProperties']['Message']\n attributes = {\n 'Response': 'You said \"%s\"' % message\n }\n\n cfnresponse.send(event, context, cfnresponse.SUCCESS, attributes, physical_id)\n except Exception as e:\n log.exception(e)\n # cfnresponse's error message is always \"see CloudWatch\"\n cfnresponse.send(event, context, cfnresponse.FAILED, {}, physical_id)\n" }, - "Handler": "index.main", "Role": { "Fn::GetAtt": [ "SingletonLambdaf7d4f7304ee111e89c2dfa7ae01bbebcServiceRoleFE9ABB04", "Arn" ] }, - "Runtime": "python2.7", + "Handler": "index.main", + "Runtime": "python3.9", "Timeout": 300 }, "DependsOn": [ diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts index e88b7113cb113..7fbbdee928144 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts @@ -34,7 +34,7 @@ class DemoResource extends Construct { code: new lambda.InlineCode(fs.readFileSync('integ.trivial-lambda-provider.py', { encoding: 'utf-8' })), handler: 'index.main', timeout: cdk.Duration.minutes(5), - runtime: lambda.Runtime.PYTHON_2_7, + runtime: lambda.Runtime.PYTHON_3_9, })), properties: props, }); From b85b8af7e78742ef076995be7d51a04f310e13f2 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Wed, 10 Nov 2021 10:33:16 -0800 Subject: [PATCH 4/5] Undo integration test changes --- .../@aws-cdk/aws-cloudformation/package.json | 5 -- .../test/integ.nested-stack.expected.json | 30 ++++------- .../integ.nested-stacks-assets.expected.json | 6 +-- ...teg.nested-stacks-multi-refs.expected.json | 6 +-- .../integ.nested-stacks-multi.expected.json | 6 +-- ...cks-nested-export-to-sibling.expected.json | 6 +-- .../integ.nested-stacks-refs1.expected.json | 6 +-- .../integ.nested-stacks-refs2.expected.json | 6 +-- .../integ.nested-stacks-refs3.expected.json | 12 +---- .../cdk-integ-tools/bin/cdk-integ-assert.ts | 6 +-- .../@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts | 5 +- .../cdk-integ-tools/lib/integ-helpers.ts | 52 +++---------------- 12 files changed, 29 insertions(+), 117 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudformation/package.json b/packages/@aws-cdk/aws-cloudformation/package.json index b40b5296bdefc..39e73c2be2948 100644 --- a/packages/@aws-cdk/aws-cloudformation/package.json +++ b/packages/@aws-cdk/aws-cloudformation/package.json @@ -56,11 +56,6 @@ "cdk-build": { "cloudformation": "AWS::CloudFormation" }, - "cdk-integ": { - "env": { - "ENABLE_ASSET_METADATA": true - } - }, "keywords": [ "aws", "cdk", diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json index bc71028c325e5..d290134fa1cb6 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.expected.json @@ -160,7 +160,7 @@ }, "/", { - "Ref": "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3BucketCD285144" + "Ref": "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3Bucket06F505B9" }, "/", { @@ -170,7 +170,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3VersionKey678C5A99" + "Ref": "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3VersionKey06BEDE93" } ] } @@ -183,7 +183,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3VersionKey678C5A99" + "Ref": "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3VersionKey06BEDE93" } ] } @@ -200,11 +200,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstackstestNestedStack1C289F6D5.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" }, "NestedStack2NestedStackNestedStack2NestedStackResourceFDF82E43": { "Type": "AWS::CloudFormation::Stack", @@ -260,25 +256,21 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstackstestNestedStack209C5218A.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Parameters": { - "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3BucketCD285144": { + "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3Bucket06F505B9": { "Type": "String", - "Description": "S3 bucket for asset \"f5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbc\"" + "Description": "S3 bucket for asset \"91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4\"" }, - "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcS3VersionKey678C5A99": { + "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4S3VersionKey06BEDE93": { "Type": "String", - "Description": "S3 key for asset version \"f5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbc\"" + "Description": "S3 key for asset version \"91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4\"" }, - "AssetParametersf5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbcArtifactHash5F083B4E": { + "AssetParameters91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4ArtifactHash407EE1C2": { "Type": "String", - "Description": "Artifact hash for asset \"f5d931a1052f5b2b67e5e0a1fbde6756f92078c301af91c343f27533a7acdfbc\"" + "Description": "Artifact hash for asset \"91169429f2b5b85501c7b1b9d7beeb80c9bb6f4891f4e600fcaf65a8817ce0f4\"" }, "AssetParameters0d0404717d8867c09534f2cf382e8e24531ff64a968afa2efd7f071ad65a22dfS3BucketB322F951": { "Type": "String", diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json index 0ef03e7031597..e7ae9fee60e3e 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json @@ -59,11 +59,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstacksassetsNested51BEE8E8.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json index da648be26ba6d..0db87b8b085bf 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json @@ -74,11 +74,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstacksmultirefsNested146CE1F9F.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json index eea79b4ed9594..7ca71da41b0fd 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json @@ -59,11 +59,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstacksmultiNestedStack08DBC739.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json index c14e7196275dd..115a1f9130ae3 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-nested-export-to-sibling.expected.json @@ -52,11 +52,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "Stack1NestedUnderStack15F1F8640.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json index 42fed61a0ee1c..299d5005eff0f 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs1.expected.json @@ -72,11 +72,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstacksrefs1parentwithconsumerNested151B8A692.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Parameters": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json index 6e792f3c5bc4b..c6e818da02313 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs2.expected.json @@ -52,11 +52,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstacksrefs2parentwithproducerNested1BBFBB3D5.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json index 44162dd10f997..2ef738be2c023 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-refs3.expected.json @@ -51,11 +51,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstacksrefs3siblingsNested1C1211E86.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" }, "Nested2NestedStackNested2NestedStackResource877A1112": { "Type": "AWS::CloudFormation::Stack", @@ -116,11 +112,7 @@ } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "Metadata": { - "aws:asset:path": "nestedstacksrefs3siblingsNested22C7C46E6.nested.template.json", - "aws:asset:property": "TemplateURL" - } + "DeletionPolicy": "Delete" } }, "Parameters": { diff --git a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts index 1810b91ba1efc..3c5cb049cf0d0 100644 --- a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts +++ b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ-assert.ts @@ -2,7 +2,7 @@ // Verify that all integration tests still match their expected output import { canonicalizeTemplate } from '@aws-cdk/assert-internal'; import { diffTemplate, formatDifferences } from '@aws-cdk/cloudformation-diff'; -import { cdkIntegSynthesizeOptions, IntegrationTests } from '../lib/integ-helpers'; +import { DEFAULT_SYNTH_OPTIONS, IntegrationTests } from '../lib/integ-helpers'; /* eslint-disable no-console */ @@ -12,8 +12,6 @@ async function main() { const tests = await new IntegrationTests('test').fromCliArgs(); // always assert all tests const failures: string[] = []; - const synthOptions = cdkIntegSynthesizeOptions(); - for (const test of tests) { process.stdout.write(`Verifying ${test.name} against ${test.expectedFileName} ... `); @@ -22,7 +20,7 @@ async function main() { } let expected = await test.readExpected(); - let actual = await test.cdkSynthFast(synthOptions); + let actual = await test.cdkSynthFast(DEFAULT_SYNTH_OPTIONS); if ((await test.pragmas()).includes(IGNORE_ASSETS_PRAGMA)) { expected = canonicalizeTemplate(expected); diff --git a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts index 5f245d4e1d28c..30afa7c8102b9 100644 --- a/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts +++ b/tools/@aws-cdk/cdk-integ-tools/bin/cdk-integ.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node // Exercise all integ stacks and if they deploy, update the expected synth files import * as yargs from 'yargs'; -import { cdkIntegSynthesizeOptions, IntegrationTests } from '../lib/integ-helpers'; +import { DEFAULT_SYNTH_OPTIONS, IntegrationTests } from '../lib/integ-helpers'; /* eslint-disable no-console */ @@ -15,7 +15,6 @@ async function main() { .argv; const tests = await new IntegrationTests('test').fromCliArgs(argv._.map(x => x.toString())); - const synthOptions = cdkIntegSynthesizeOptions(); if (argv.list) { process.stdout.write(tests.map(t => t.name).join(' ') + '\n'); @@ -51,7 +50,7 @@ async function main() { } // If this all worked, write the new expectation file - const actual = await test.cdkSynthFast(synthOptions); + const actual = await test.cdkSynthFast(DEFAULT_SYNTH_OPTIONS); await test.writeExpected(actual); } finally { diff --git a/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts b/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts index e3fa8d5b82846..6b725d980a6f6 100644 --- a/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts +++ b/tools/@aws-cdk/cdk-integ-tools/lib/integ-helpers.ts @@ -73,14 +73,6 @@ export interface SynthOptions { readonly env?: Record; } -export interface CDKIntegAssertOptions { - - /** - * Environment variables to be passed to 'cdk-integ' and all of its child processes. - */ - env?: NodeJS.ProcessEnv; -} - export class IntegrationTest { public readonly expectedFileName: string; private readonly expectedFilePath: string; @@ -162,9 +154,9 @@ export class IntegrationTest { const names = Object.keys(stacks); if (names.length !== 1) { throw new Error('"cdk-integ" can only operate on apps with a single stack.\n\n' + - ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + - ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + - ` Available stacks: ${names.join(' ')} (wildcards are also supported)\n`); + ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + + ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + + ` Available stacks: ${names.join(' ')} (wildcards are also supported)\n`); } return stacks[names[0]]; } @@ -241,9 +233,9 @@ export class IntegrationTest { const stacks = (await this.invokeCli(['ls'], { ...DEFAULT_SYNTH_OPTIONS })).split('\n'); if (stacks.length !== 1) { throw new Error('"cdk-integ" can only operate on apps with a single stack.\n\n' + - ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + - ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + - ` Available stacks: ${stacks.join(' ')} (wildcards are also supported)\n`); + ' If your app has multiple stacks, specify which stack to select by adding this to your test source:\n\n' + + ` ${CDK_INTEG_STACK_PRAGMA} STACK ...\n\n` + + ` Available stacks: ${stacks.join(' ')} (wildcards are also supported)\n`); } return stacks; @@ -368,38 +360,6 @@ export const DEFAULT_SYNTH_OPTIONS = { }, }; -/** - * Return the package JSON for the current package - */ -export function currentPackageJson(): any { - // eslint-disable-next-line @typescript-eslint/no-require-imports - return require(path.join(process.cwd(), 'package.json')); -} - -/** - * Return the CDK integ options - */ -export function cdkIntegOptions(): CDKIntegAssertOptions { - return currentPackageJson()['cdk-integ'] || {}; -} - -/** - * Return CDK Integration Synthesize options - */ -export function cdkIntegSynthesizeOptions(): any { - const integAssertOptions = cdkIntegOptions(); - const synthOptions = { - context: { - ...DEFAULT_SYNTH_OPTIONS.context, - ['aws:cdk:enable-asset-metadata']: !!integAssertOptions.env && !!integAssertOptions.env.ENABLE_ASSET_METADATA, - }, - env: { - ...DEFAULT_SYNTH_OPTIONS.env, - }, - }; - return synthOptions; -} - /** * Our own execute function which doesn't use shells and strings. */ From 776387804ad353e446134a3fbbcd06b1081c45ea Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Wed, 10 Nov 2021 10:34:34 -0800 Subject: [PATCH 5/5] Revert "Update un-supported integration test runtimes" This reverts commit 694bf00a8a2ec44c2564ee01301eec3a2ab2c657. --- .../integ.core-custom-resources.expected.json | 18 ++++----- .../test/integ.nested-stack.ts | 2 +- .../integ.nested-stacks-assets.expected.json | 18 ++++----- .../test/integ.nested-stacks-assets.ts | 2 +- ...teg.nested-stacks-multi-refs.expected.json | 38 +++++++++---------- .../integ.nested-stacks-multi.expected.json | 18 ++++----- ...nteg.trivial-lambda-resource.expected.json | 4 +- .../test/integ.trivial-lambda-resource.ts | 2 +- 8 files changed, 51 insertions(+), 51 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json index 4ba4e912a2764..e5db15d48809b 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.core-custom-resources.expected.json @@ -27,7 +27,7 @@ "Properties": { "Code": { "S3Bucket": { - "Ref": "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3BucketF4E265D4" + "Ref": "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3Bucket8B4D0E9E" }, "S3Key": { "Fn::Join": [ @@ -40,7 +40,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3VersionKey99E965FF" + "Ref": "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3VersionKeyDECB34FE" } ] } @@ -53,7 +53,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3VersionKey99E965FF" + "Ref": "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3VersionKeyDECB34FE" } ] } @@ -99,17 +99,17 @@ } }, "Parameters": { - "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3BucketF4E265D4": { + "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3Bucket8B4D0E9E": { "Type": "String", - "Description": "S3 bucket for asset \"a9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2d\"" + "Description": "S3 bucket for asset \"925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226\"" }, - "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dS3VersionKey99E965FF": { + "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226S3VersionKeyDECB34FE": { "Type": "String", - "Description": "S3 key for asset version \"a9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2d\"" + "Description": "S3 key for asset version \"925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226\"" }, - "AssetParametersa9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2dArtifactHash254CE64B": { + "AssetParameters925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226ArtifactHashEEC400F2": { "Type": "String", - "Description": "Artifact hash for asset \"a9bcec1a80862b1651d283af31493ae401294a90f1588f444999287348eede2d\"" + "Description": "Artifact hash for asset \"925e7fbbec7bdbf0136ef5a07b8a0fbe0b1f1bb4ea50ae2154163df78aa9f226\"" } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts index 575a6f541c0a6..3b3a26346c2be 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stack.ts @@ -42,7 +42,7 @@ class MyNestedStack extends cfn.NestedStack { if (props.subscriber) { new lambda.Function(this, 'fn', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_10_X, code: lambda.Code.fromInline('console.error("hi")'), handler: 'index.handler', environment: { diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json index e7ae9fee60e3e..45b52a4c8016d 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.expected.json @@ -17,7 +17,7 @@ }, "/", { - "Ref": "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3BucketB5534B29" + "Ref": "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3Bucket2E4E0318" }, "/", { @@ -27,7 +27,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3VersionKey45204672" + "Ref": "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3VersionKeyF6AB1DF2" } ] } @@ -40,7 +40,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3VersionKey45204672" + "Ref": "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3VersionKeyF6AB1DF2" } ] } @@ -75,17 +75,17 @@ "Type": "String", "Description": "Artifact hash for asset \"bbe209afddb09a12327bab7a105e085758a29b769b5b4bf5b6320ac41b05fc51\"" }, - "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3BucketB5534B29": { + "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3Bucket2E4E0318": { "Type": "String", - "Description": "S3 bucket for asset \"b0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75\"" + "Description": "S3 bucket for asset \"7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aab\"" }, - "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75S3VersionKey45204672": { + "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabS3VersionKeyF6AB1DF2": { "Type": "String", - "Description": "S3 key for asset version \"b0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75\"" + "Description": "S3 key for asset version \"7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aab\"" }, - "AssetParametersb0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75ArtifactHash9B541DF5": { + "AssetParameters7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aabArtifactHash63670210": { "Type": "String", - "Description": "Artifact hash for asset \"b0e19b75a6d13d03af431223d16b5c11f2d1b51c02f9c20efc517d0d5a1c2c75\"" + "Description": "Artifact hash for asset \"7bd7ccfde94a4ad94f13971f10733ee01020eb6d7538b7a5c2b05966db2c0aab\"" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts index 6663be9d14ec9..996ef461b0d2c 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-assets.ts @@ -16,7 +16,7 @@ class NestedStack extends cfn.NestedStack { new lambda.Function(this, 'Handler', { code: lambda.Code.fromAsset(path.join(__dirname, 'asset-directory-fixture')), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_10_X, handler: 'index.handler', }); } diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json index 0db87b8b085bf..8e1abf0743734 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi-refs.expected.json @@ -20,7 +20,7 @@ }, "/", { - "Ref": "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3BucketC828FDEB" + "Ref": "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3BucketD17502DC" }, "/", { @@ -30,7 +30,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3VersionKey771CD3D2" + "Ref": "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3VersionKeyA042251F" } ] } @@ -43,7 +43,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3VersionKey771CD3D2" + "Ref": "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3VersionKeyA042251F" } ] } @@ -65,11 +65,11 @@ "referencetonestedstacksmultirefsAssetParameters495a6bc36c13a0adeb3778c921d18ac4a8205f5471108fcc199a291d14855c3aS3VersionKey5F9CF809Ref": { "Ref": "AssetParameters495a6bc36c13a0adeb3778c921d18ac4a8205f5471108fcc199a291d14855c3aS3VersionKey2CCE0573" }, - "referencetonestedstacksmultirefsAssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3BucketD9691A6DRef": { - "Ref": "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3Bucket0481F1ED" + "referencetonestedstacksmultirefsAssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3Bucket119ED767Ref": { + "Ref": "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3BucketAF9A3A0F" }, - "referencetonestedstacksmultirefsAssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3VersionKey33044C1ARef": { - "Ref": "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3VersionKeyB386C7B0" + "referencetonestedstacksmultirefsAssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3VersionKeyDCF85FE2Ref": { + "Ref": "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3VersionKey2F85340C" } } }, @@ -90,29 +90,29 @@ "Type": "String", "Description": "Artifact hash for asset \"495a6bc36c13a0adeb3778c921d18ac4a8205f5471108fcc199a291d14855c3a\"" }, - "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3Bucket0481F1ED": { + "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3BucketAF9A3A0F": { "Type": "String", - "Description": "S3 bucket for asset \"d5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9a\"" + "Description": "S3 bucket for asset \"c2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441\"" }, - "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aS3VersionKeyB386C7B0": { + "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441S3VersionKey2F85340C": { "Type": "String", - "Description": "S3 key for asset version \"d5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9a\"" + "Description": "S3 key for asset version \"c2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441\"" }, - "AssetParametersd5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9aArtifactHash9CB39AF3": { + "AssetParametersc2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441ArtifactHash5D93ED07": { "Type": "String", - "Description": "Artifact hash for asset \"d5789c9ad1fe1e7cb67fe6cfafc8d7bc7bab9f9b3a5784c4c25955331cd05e9a\"" + "Description": "Artifact hash for asset \"c2fbfb6df004b51bb870bd1f5cabda73830a59765a6c766aca0e906ec1e22441\"" }, - "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3BucketC828FDEB": { + "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3BucketD17502DC": { "Type": "String", - "Description": "S3 bucket for asset \"c0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98\"" + "Description": "S3 bucket for asset \"2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703\"" }, - "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98S3VersionKey771CD3D2": { + "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703S3VersionKeyA042251F": { "Type": "String", - "Description": "S3 key for asset version \"c0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98\"" + "Description": "S3 key for asset version \"2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703\"" }, - "AssetParametersc0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98ArtifactHashBB8A2691": { + "AssetParameters2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703ArtifactHash8853E261": { "Type": "String", - "Description": "Artifact hash for asset \"c0510abea22ac75f627b53ff11ce1b0c380d41ecb31ede2337408d99cedf8a98\"" + "Description": "Artifact hash for asset \"2fa66e9dea71b1e05ebeed281df124cbaca34247ae93c767a533b6346cc17703\"" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json index 7ca71da41b0fd..0145629ff176e 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.nested-stacks-multi.expected.json @@ -17,7 +17,7 @@ }, "/", { - "Ref": "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3BucketE9B14550" + "Ref": "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3BucketDF3BC15F" }, "/", { @@ -27,7 +27,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3VersionKey6C570BFA" + "Ref": "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3VersionKey1BCA0E57" } ] } @@ -40,7 +40,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3VersionKey6C570BFA" + "Ref": "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3VersionKey1BCA0E57" } ] } @@ -75,17 +75,17 @@ "Type": "String", "Description": "Artifact hash for asset \"e3410ccec04414535f1c8035ce0ea42f59eedf66d0e6d0eec8bc435c4a4e809d\"" }, - "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3BucketE9B14550": { + "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3BucketDF3BC15F": { "Type": "String", - "Description": "S3 bucket for asset \"f2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62f\"" + "Description": "S3 bucket for asset \"686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856\"" }, - "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fS3VersionKey6C570BFA": { + "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856S3VersionKey1BCA0E57": { "Type": "String", - "Description": "S3 key for asset version \"f2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62f\"" + "Description": "S3 key for asset version \"686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856\"" }, - "AssetParametersf2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62fArtifactHashBD5EDD0E": { + "AssetParameters686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856ArtifactHash9043932C": { "Type": "String", - "Description": "Artifact hash for asset \"f2f025beed446e29125eafd8968b109b557452e9c4cbdb45746c26cd4852e62f\"" + "Description": "Artifact hash for asset \"686794a6d724e01e517bba15106edebf9db8d4bb309f0c60d5ff55a11db4a856\"" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json index 9c64a42c529e5..f033100eeec5a 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.expected.json @@ -51,14 +51,14 @@ "Code": { "ZipFile": "def main(event, context):\n import logging as log\n import cfnresponse\n log.getLogger().setLevel(log.INFO)\n\n # This needs to change if there are to be multiple resources in the same stack\n physical_id = 'TheOnlyCustomResource'\n\n try:\n log.info('Input event: %s', event)\n\n # Check if this is a Create and we're failing Creates\n if event['RequestType'] == 'Create' and event['ResourceProperties'].get('FailCreate', False):\n raise RuntimeError('Create failure requested')\n\n # Do the thing\n message = event['ResourceProperties']['Message']\n attributes = {\n 'Response': 'You said \"%s\"' % message\n }\n\n cfnresponse.send(event, context, cfnresponse.SUCCESS, attributes, physical_id)\n except Exception as e:\n log.exception(e)\n # cfnresponse's error message is always \"see CloudWatch\"\n cfnresponse.send(event, context, cfnresponse.FAILED, {}, physical_id)\n" }, + "Handler": "index.main", "Role": { "Fn::GetAtt": [ "SingletonLambdaf7d4f7304ee111e89c2dfa7ae01bbebcServiceRoleFE9ABB04", "Arn" ] }, - "Handler": "index.main", - "Runtime": "python3.9", + "Runtime": "python2.7", "Timeout": 300 }, "DependsOn": [ diff --git a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts index 7fbbdee928144..e88b7113cb113 100644 --- a/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts +++ b/packages/@aws-cdk/aws-cloudformation/test/integ.trivial-lambda-resource.ts @@ -34,7 +34,7 @@ class DemoResource extends Construct { code: new lambda.InlineCode(fs.readFileSync('integ.trivial-lambda-provider.py', { encoding: 'utf-8' })), handler: 'index.main', timeout: cdk.Duration.minutes(5), - runtime: lambda.Runtime.PYTHON_3_9, + runtime: lambda.Runtime.PYTHON_2_7, })), properties: props, });