Skip to content

Commit 289a1e3

Browse files
authored
2 parents 3d1c06e + f294ac2 commit 289a1e3

File tree

279 files changed

+88947
-41352
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

279 files changed

+88947
-41352
lines changed

.github/workflows/github-merit-badger.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ jobs:
1717
badges: '[beginning-contributor,repeat-contributor,valued-contributor,admired-contributor,star-contributor,distinguished-contributor]'
1818
thresholds: '[0,3,6,13,25,50]'
1919
badge-type: 'achievement'
20-
ignore-usernames: '[rix0rrr,iliapolo,otaviomacedo,kaizencc,comcalvi,TheRealAmazonKendra,vinayak-kukreja,mrgrain,pahud,cgarvis,kellertk,HBobertz,sumupitchayan,SankyRed,udaypant,colifran,khushail,scanlonp,mikewrighton,moelasmar,paulhcsun,awsmjs,evgenyka,GavinZZ,aaythapa,xazhao,ConnorRobertson,ssenchenko,gracelu0,jfuss,SimonCMoore,shikha372,kirtishrinkhala,godwingrs22,bergjaak,aws-cdk-automation,dependabot[bot],mergify[bot]]'
20+
ignore-usernames: '[rix0rrr,iliapolo,otaviomacedo,kaizencc,comcalvi,TheRealAmazonKendra,vinayak-kukreja,mrgrain,pahud,cgarvis,kellertk,HBobertz,sumupitchayan,SankyRed,udaypant,colifran,khushail,scanlonp,mikewrighton,moelasmar,paulhcsun,awsmjs,evgenyka,GavinZZ,aaythapa,xazhao,ConnorRobertson,ssenchenko,gracelu0,jfuss,SimonCMoore,shikha372,kirtishrinkhala,godwingrs22,bergjaak,Leo10Gama,scorbiere,aws-cdk-automation,dependabot[bot],mergify[bot]]'

.github/workflows/request-cli-integ-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
persist-credentials: false
2020
- name: Find changed cli files
2121
id: changed-cli-files
22-
uses: tj-actions/changed-files@0874344d6ebbaa00a27da73276ae7162fadcaf69
22+
uses: tj-actions/changed-files@a29e8b565651ce417abb5db7164b4a2ad8b6155c
2323
with:
2424
base_sha: ${{ github.event.pull_request.base.sha }}
2525
files_yaml: |

.mergify.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pull_request_rules:
1111
label:
1212
add: [ contribution/core ]
1313
conditions:
14-
- author~=^(rix0rrr|iliapolo|otaviomacedo|kaizencc|comcalvi|TheRealAmazonKendra|vinayak-kukreja|mrgrain|pahud|cgarvis|kellertk|HBobertz|sumupitchayan|SankyRed|udaypant|colifran|scanlonp|mikewrighton|moelasmar|paulhcsun|awsmjs|evgenyka|GavinZZ|aaythapa|xazhao|ConnorRobertson|ssenchenko|gracelu0|jfuss|SimonCMoore|shikha372|kirtishrinkhala|godwingrs22|bergjaak)$
14+
- author~=^(rix0rrr|iliapolo|otaviomacedo|kaizencc|comcalvi|TheRealAmazonKendra|vinayak-kukreja|mrgrain|pahud|cgarvis|kellertk|HBobertz|sumupitchayan|SankyRed|udaypant|colifran|scanlonp|mikewrighton|moelasmar|paulhcsun|awsmjs|evgenyka|GavinZZ|aaythapa|xazhao|ConnorRobertson|ssenchenko|gracelu0|jfuss|SimonCMoore|shikha372|kirtishrinkhala|godwingrs22|bergjaak|Leo10Gama|scorbiere)$
1515
- -label~="contribution/core"
1616
- name: automatic merge
1717
actions:

CHANGELOG.v2.alpha.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [2.142.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.141.0-alpha.0...v2.142.0-alpha.0) (2024-05-15)
6+
7+
8+
### Features
9+
10+
* **pipes-targets:** add step function target ([#29987](https://github.com/aws/aws-cdk/issues/29987)) ([b0975e4](https://github.com/aws/aws-cdk/commit/b0975e410a404d07952e01303af01224ccfad864)), closes [#29665](https://github.com/aws/aws-cdk/issues/29665) [#29665](https://github.com/aws/aws-cdk/issues/29665)
11+
* **redshift:** multi AZ cluster ([#29976](https://github.com/aws/aws-cdk/issues/29976)) ([a53517c](https://github.com/aws/aws-cdk/commit/a53517c6772332cc2a15c9b38e964a933e9c8355))
12+
513
## [2.141.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.140.0-alpha.0...v2.141.0-alpha.0) (2024-05-08)
614

715
## [2.140.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.139.1-alpha.0...v2.140.0-alpha.0) (2024-05-02)

CHANGELOG.v2.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,33 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [2.142.0](https://github.com/aws/aws-cdk/compare/v2.141.0...v2.142.0) (2024-05-15)
6+
7+
8+
### Features
9+
10+
* **asg:** support keypair functionality for asg ([#29679](https://github.com/aws/aws-cdk/issues/29679)) ([f6b649d](https://github.com/aws/aws-cdk/commit/f6b649d47f8bc30ca741fbb7a4852d51e8275002)), closes [#29237](https://github.com/aws/aws-cdk/issues/29237)
11+
* **codepipeline:** `GitPullRequestFilter` for pipeline trigger ([#29128](https://github.com/aws/aws-cdk/issues/29128)) ([5ce1b64](https://github.com/aws/aws-cdk/commit/5ce1b6485eb4336634f4f14bfe3d0b17b071e83b)), closes [#29126](https://github.com/aws/aws-cdk/issues/29126)
12+
* **docdb:** add copyTagsToSnapshot property to the DatabaseCluster Construct ([#30120](https://github.com/aws/aws-cdk/issues/30120)) ([30f0db6](https://github.com/aws/aws-cdk/commit/30f0db6ad810f0e93187082bd50ddb46726d8f5f)), closes [#30090](https://github.com/aws/aws-cdk/issues/30090)
13+
* **docdb:** support CA certificate for cluster instances ([#28791](https://github.com/aws/aws-cdk/issues/28791)) ([e87f25e](https://github.com/aws/aws-cdk/commit/e87f25e1e93350e53aadb15e19ed7a9bf378c315)), closes [#27138](https://github.com/aws/aws-cdk/issues/27138) [#28356](https://github.com/aws/aws-cdk/issues/28356)
14+
* **events-targets:** add support for AppSync as an EventBridge rule target ([#29584](https://github.com/aws/aws-cdk/issues/29584)) ([5be88a3](https://github.com/aws/aws-cdk/commit/5be88a3055fe1e6b55884847d1b8a75b03341b39)), closes [#29884](https://github.com/aws/aws-cdk/issues/29884)
15+
* **servicecatalog:** `ProductStack` memoryLimit prop ([#30105](https://github.com/aws/aws-cdk/issues/30105)) ([4b6dc8c](https://github.com/aws/aws-cdk/commit/4b6dc8c650822bcd0231c8890bd94a934a0cd34d)), closes [#29862](https://github.com/aws/aws-cdk/issues/29862)
16+
17+
18+
### Bug Fixes
19+
20+
* **apigateway:** set authorization scope when authorization type is Cognito ([#30035](https://github.com/aws/aws-cdk/issues/30035)) ([38a2284](https://github.com/aws/aws-cdk/commit/38a2284bccd9119f3bcc8d0baef8525ab416bb67))
21+
* **autoscaling:** cooldown cannot be set with step scaling actions ([#30150](https://github.com/aws/aws-cdk/issues/30150)) ([6810762](https://github.com/aws/aws-cdk/commit/68107624e50d738be7e10fd22072b5a40983e720)), closes [#29779](https://github.com/aws/aws-cdk/issues/29779)
22+
* **cli:** cdk bootstrap --help does not show some options ([#30113](https://github.com/aws/aws-cdk/issues/30113)) ([8debd20](https://github.com/aws/aws-cdk/commit/8debd205b1f52e172de844f349d4e76e39df269d))
23+
* **cli:** handle attributes of AWS::KMS::Key when hotswapping ([#30112](https://github.com/aws/aws-cdk/issues/30112)) ([a1dcaa6](https://github.com/aws/aws-cdk/commit/a1dcaa6c4a3db245d1becf0e9ace1d488b6d528d)), closes [#25418](https://github.com/aws/aws-cdk/issues/25418)
24+
* **cli:** template created during import should be written to assets folder ([#29830](https://github.com/aws/aws-cdk/issues/29830)) ([a96cf55](https://github.com/aws/aws-cdk/commit/a96cf5500242890cddbbaa46af7f7228c7126d98)), closes [#22928](https://github.com/aws/aws-cdk/issues/22928) [#22530](https://github.com/aws/aws-cdk/issues/22530)
25+
* **diff:** properties from ChangeSet diff were ignored ([#30093](https://github.com/aws/aws-cdk/issues/30093)) ([9c3f3f5](https://github.com/aws/aws-cdk/commit/9c3f3f5dbb9b4b9f86911d9cd7c056a9fc0432b3)), closes [#29731](https://github.com/aws/aws-cdk/issues/29731)
26+
* **ecs:** require task pidMode for Linux-based Fargate tasks, not host ([#30020](https://github.com/aws/aws-cdk/issues/30020)) ([3e9e0a8](https://github.com/aws/aws-cdk/commit/3e9e0a8696630c9368adf012aff1fb919e398164)), closes [#29995](https://github.com/aws/aws-cdk/issues/29995)
27+
* **eks:** in place updates for EKS security group and Subnets ([#30114](https://github.com/aws/aws-cdk/issues/30114)) ([eb39d9e](https://github.com/aws/aws-cdk/commit/eb39d9e1924240d433dc91b7f8d98ebcf5cd87c8)), closes [#28584](https://github.com/aws/aws-cdk/issues/28584)
28+
* **iam:** fromUserArn returns incorrect principalAccount ([#30023](https://github.com/aws/aws-cdk/issues/30023)) ([f9f3681](https://github.com/aws/aws-cdk/commit/f9f3681be9fc6a0c998cd26119053c5832ef9806)), closes [/github.com/aws/aws-cdk/issues/29999#issuecomment-2087672380](https://github.com/aws//github.com/aws/aws-cdk/issues/29999/issues/issuecomment-2087672380)
29+
* **s3:** add bucket policy dependency to notification resource ([#30053](https://github.com/aws/aws-cdk/issues/30053)) ([71986ff](https://github.com/aws/aws-cdk/commit/71986ff986d13bbb496b33c0554f657e77dbb2d0)), closes [#27600](https://github.com/aws/aws-cdk/issues/27600) [#16811](https://github.com/aws/aws-cdk/issues/16811)
30+
* **stepfunctions-tasks:** documentation fix for retryOnServiceExceptions ([#30077](https://github.com/aws/aws-cdk/issues/30077)) ([205163f](https://github.com/aws/aws-cdk/commit/205163fc0d2cac84d3d746a98c393e137f0e2388))
31+
532
## [2.141.0](https://github.com/aws/aws-cdk/compare/v2.140.0...v2.141.0) (2024-05-08)
633

734

packages/@aws-cdk-testing/cli-integ/lib/aws.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export class AwsClients {
2020
public readonly ecr: AwsCaller<AWS.ECR>;
2121
public readonly ecs: AwsCaller<AWS.ECS>;
2222
public readonly sso: AwsCaller<AWS.SSO>;
23+
public readonly ssm: AwsCaller<AWS.SSM>;
2324
public readonly sns: AwsCaller<AWS.SNS>;
2425
public readonly iam: AwsCaller<AWS.IAM>;
2526
public readonly lambda: AwsCaller<AWS.Lambda>;
@@ -39,6 +40,7 @@ export class AwsClients {
3940
this.ecs = makeAwsCaller(AWS.ECS, this.config);
4041
this.sso = makeAwsCaller(AWS.SSO, this.config);
4142
this.sns = makeAwsCaller(AWS.SNS, this.config);
43+
this.ssm = makeAwsCaller(AWS.SSM, this.config);
4244
this.iam = makeAwsCaller(AWS.IAM, this.config);
4345
this.lambda = makeAwsCaller(AWS.Lambda, this.config);
4446
this.sts = makeAwsCaller(AWS.STS, this.config);

packages/@aws-cdk-testing/cli-integ/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
"license": "Apache-2.0",
3131
"devDependencies": {
3232
"@aws-cdk/cdk-build-tools": "0.0.0",
33-
"@types/semver": "^7.5.8",
34-
"@types/yargs": "^15.0.19",
33+
"@aws-cdk/pkglint": "0.0.0",
3534
"@types/fs-extra": "^9.0.13",
3635
"@types/glob": "^7.2.0",
3736
"@types/npm": "^7.19.3",
38-
"@aws-cdk/pkglint": "0.0.0"
37+
"@types/semver": "^7.5.8",
38+
"@types/yargs": "^15.0.19"
3939
},
4040
"dependencies": {
4141
"@octokit/rest": "^18.12.0",

packages/@aws-cdk-testing/cli-integ/resources/cdk-apps/app/app.js

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,22 @@ class SsoInstanceAccessControlConfig extends Stack {
126126
}
127127
}
128128

129+
class DiffFromChangeSetStack extends Stack {
130+
constructor(scope, id) {
131+
super(scope, id);
132+
133+
const queueNameFromParameter = ssm.StringParameter.valueForStringParameter(this, 'for-queue-name-defined-by-ssm-param');
134+
new sqs.Queue(this, "DiffFromChangeSetQueue", {
135+
queueName: queueNameFromParameter,
136+
})
137+
138+
new ssm.StringParameter(this, 'DiffFromChangeSetSSMParam', {
139+
parameterName: 'DiffFromChangeSetSSMParamName',
140+
stringValue: queueNameFromParameter,
141+
});
142+
}
143+
}
144+
129145
class ListMultipleDependentStack extends Stack {
130146
constructor(scope, id) {
131147
super(scope, id);
@@ -232,10 +248,37 @@ class MigrateStack extends cdk.Stack {
232248
}
233249
}
234250

235-
class ImportableStack extends MigrateStack {
251+
class ImportableStack extends cdk.Stack {
236252
constructor(parent, id, props) {
237253
super(parent, id, props);
238254
new cdk.CfnWaitConditionHandle(this, 'Handle');
255+
256+
if (process.env.INCLUDE_SINGLE_QUEUE === '1') {
257+
const queue = new sqs.Queue(this, 'Queue', {
258+
removalPolicy: (process.env.RETAIN_SINGLE_QUEUE === '1') ? cdk.RemovalPolicy.RETAIN : cdk.RemovalPolicy.DESTROY,
259+
});
260+
261+
new cdk.CfnOutput(this, 'QueueName', {
262+
value: queue.queueName,
263+
});
264+
265+
new cdk.CfnOutput(this, 'QueueUrl', {
266+
value: queue.queueUrl,
267+
});
268+
269+
new cdk.CfnOutput(this, 'QueueLogicalId', {
270+
value: queue.node.defaultChild.logicalId,
271+
});
272+
}
273+
274+
if (process.env.LARGE_TEMPLATE === '1') {
275+
for (let i = 1; i <= 70; i++) {
276+
new sqs.Queue(this, `cdk-import-queue-test${i}`, {
277+
enforceSSL: true,
278+
removalPolicy: cdk.RemovalPolicy.DESTROY,
279+
});
280+
}
281+
}
239282
}
240283
}
241284

@@ -658,6 +701,8 @@ switch (stackSet) {
658701

659702
const failed = new FailedStack(app, `${stackPrefix}-failed`)
660703

704+
new DiffFromChangeSetStack(app, `${stackPrefix}-queue-name-defined-by-ssm-param`)
705+
661706
// A stack that depends on the failed stack -- used to test that '-e' does not deploy the failing stack
662707
const dependsOnFailed = new OutputsStack(app, `${stackPrefix}-depends-on-failed`);
663708
dependsOnFailed.addDependency(failed);

packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts

Lines changed: 85 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { promises as fs, existsSync } from 'fs';
22
import * as os from 'os';
33
import * as path from 'path';
4-
import { integTest, cloneDirectory, shell, withDefaultFixture, retry, sleep, randomInteger, withSamIntegrationFixture, RESOURCES_DIR, withCDKMigrateFixture, withExtendedTimeoutFixture } from '../../lib';
4+
import { integTest, cloneDirectory, shell, withDefaultFixture, retry, sleep, randomInteger, withSamIntegrationFixture, RESOURCES_DIR, withCDKMigrateFixture, withExtendedTimeoutFixture, randomString } from '../../lib';
55

66
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
77

@@ -944,6 +944,50 @@ integTest('cdk diff --quiet does not print \'There were no differences\' message
944944
expect(diff).not.toContain('There were no differences');
945945
}));
946946

947+
integTest('cdk diff picks up changes that are only present in changeset', withDefaultFixture(async (fixture) => {
948+
// GIVEN
949+
await fixture.aws.ssm('putParameter', {
950+
Name: 'for-queue-name-defined-by-ssm-param',
951+
Value: randomString(),
952+
Type: 'String',
953+
Overwrite: true,
954+
});
955+
956+
try {
957+
await fixture.cdkDeploy('queue-name-defined-by-ssm-param');
958+
959+
// WHEN
960+
// We want to change the ssm value. Then the CFN changeset will detect that the queue will be changed upon deploy.
961+
await fixture.aws.ssm('putParameter', {
962+
Name: 'for-queue-name-defined-by-ssm-param',
963+
Value: randomString(),
964+
Type: 'String',
965+
Overwrite: true,
966+
});
967+
968+
const diff = await fixture.cdk(['diff', fixture.fullStackName('queue-name-defined-by-ssm-param')]);
969+
970+
// THEN
971+
const normalizedPlainTextOutput = diff.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g, '') // remove all color and formatting (bolding, italic, etc)
972+
.replace(/ /g, '') // remove all spaces
973+
.replace(/\n/g, '') // remove all new lines
974+
.replace(/\d+/g, ''); // remove all digits
975+
976+
const normalizedExpectedOutput = `
977+
Resources
978+
[~] AWS::SQS::Queue DiffFromChangeSetQueue DiffFromChangeSetQueue06622C07 replace
979+
└─ [~] QueueName (requires replacement)
980+
[~] AWS::SSM::Parameter DiffFromChangeSetSSMParam DiffFromChangeSetSSMParam92A9A723
981+
└─ [~] Value`
982+
.replace(/ /g, '')
983+
.replace(/\n/g, '')
984+
.replace(/\d+/g, '');
985+
expect(normalizedPlainTextOutput).toContain(normalizedExpectedOutput);
986+
} finally {
987+
await fixture.cdkDestroy('queue-name-defined-by-ssm-param');
988+
}
989+
}));
990+
947991
integTest('deploy stack with docker asset', withDefaultFixture(async (fixture) => {
948992
await fixture.cdkDeploy('docker');
949993
}));
@@ -1575,37 +1619,60 @@ integTest('skips notice refresh', withDefaultFixture(async (fixture) => {
15751619
}));
15761620

15771621
/**
1578-
* Create a queue with a fresh name, redeploy orphaning the queue, then import it again
1622+
* Create a queue, orphan that queue, then import the queue.
1623+
*
1624+
* We want to test with a large template to make sure large templates can work with import.
15791625
*/
15801626
integTest('test resource import', withDefaultFixture(async (fixture) => {
1581-
const outputsFile = path.join(fixture.integTestDir, 'outputs', 'outputs.json');
1627+
// GIVEN
1628+
const randomPrefix = randomString();
1629+
const uniqueOutputsFileName = `${randomPrefix}Outputs.json`; // other tests use the outputs file. Make sure we don't collide.
1630+
const outputsFile = path.join(fixture.integTestDir, 'outputs', uniqueOutputsFileName);
15821631
await fs.mkdir(path.dirname(outputsFile), { recursive: true });
15831632

1584-
// Initial deploy
1633+
// First, create a stack that includes many queues, and one queue that will be removed from the stack but NOT deleted from AWS.
15851634
await fixture.cdkDeploy('importable-stack', {
1586-
modEnv: { ORPHAN_TOPIC: '1' },
1635+
modEnv: { LARGE_TEMPLATE: '1', INCLUDE_SINGLE_QUEUE: '1', RETAIN_SINGLE_QUEUE: '1' },
15871636
options: ['--outputs-file', outputsFile],
15881637
});
15891638

1590-
const outputs = JSON.parse((await fs.readFile(outputsFile, { encoding: 'utf-8' })).toString());
1591-
const queueName = outputs.QueueName;
1592-
const queueLogicalId = outputs.QueueLogicalId;
1593-
fixture.log(`Setup complete, created queue ${queueName}`);
15941639
try {
1595-
// Deploy again, orphaning the queue
1640+
1641+
// Second, now the queue we will remove is in the stack and has a logicalId. We can now make the resource mapping file.
1642+
// This resource mapping file will be used to tell the import operation what queue to bring into the stack.
1643+
const fullStackName = fixture.fullStackName('importable-stack');
1644+
const outputs = JSON.parse((await fs.readFile(outputsFile, { encoding: 'utf-8' })).toString());
1645+
const queueLogicalId = outputs[fullStackName].QueueLogicalId;
1646+
const queueResourceMap = {
1647+
[queueLogicalId]: { QueueUrl: outputs[fullStackName].QueueUrl },
1648+
};
1649+
const mappingFile = path.join(fixture.integTestDir, 'outputs', `${randomPrefix}Mapping.json`);
1650+
await fs.writeFile(
1651+
mappingFile,
1652+
JSON.stringify(queueResourceMap),
1653+
{ encoding: 'utf-8' },
1654+
);
1655+
1656+
// Third, remove the queue from the stack, but don't delete the queue from AWS.
15961657
await fixture.cdkDeploy('importable-stack', {
1597-
modEnv: { OMIT_TOPIC: '1' },
1658+
modEnv: { LARGE_TEMPLATE: '1', INCLUDE_SINGLE_QUEUE: '0', RETAIN_SINGLE_QUEUE: '0' },
15981659
});
1660+
const cfnTemplateBeforeImport = await fixture.aws.cloudFormation('getTemplate', { StackName: fullStackName });
1661+
expect(cfnTemplateBeforeImport.TemplateBody).not.toContain(queueLogicalId);
15991662

1600-
// Write a resource mapping file based on the ID from step one, then run an import
1601-
const mappingFile = path.join(fixture.integTestDir, 'outputs', 'mapping.json');
1602-
await fs.writeFile(mappingFile, JSON.stringify({ [queueLogicalId]: { QueueName: queueName } }), { encoding: 'utf-8' });
1663+
// WHEN
1664+
await fixture.cdk(
1665+
['import', '--resource-mapping', mappingFile, fixture.fullStackName('importable-stack')],
1666+
{ modEnv: { LARGE_TEMPLATE: '1', INCLUDE_SINGLE_QUEUE: '1', RETAIN_SINGLE_QUEUE: '0' } },
1667+
);
16031668

1604-
await fixture.cdk(['import',
1605-
'--resource-mapping', mappingFile,
1606-
fixture.fullStackName('importable-stack')]);
1669+
// THEN
1670+
const describeStacksResponse = await fixture.aws.cloudFormation('describeStacks', { StackName: fullStackName });
1671+
const cfnTemplateAfterImport = await fixture.aws.cloudFormation('getTemplate', { StackName: fullStackName });
1672+
expect(describeStacksResponse.Stacks![0].StackStatus).toEqual('IMPORT_COMPLETE');
1673+
expect(cfnTemplateAfterImport.TemplateBody).toContain(queueLogicalId);
16071674
} finally {
1608-
// Cleanup
1675+
// Clean up
16091676
await fixture.cdkDestroy('importable-stack');
16101677
}
16111678
}));
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import json
2+
3+
def handler(event, context):
4+
print("Event: ", event)
5+
return {
6+
'statusCode': 200,
7+
'body': json.dumps({'message': 'Hello from Lambda l2!'})
8+
}

packages/@aws-cdk-testing/framework-integ/test/aws-apigateway/test/authorizers/integ.api-with-authorizer-and-proxy.js.snapshot/apigatewaywithauthorizerandproxyDefaultTestDeployAssertDBEA1774.assets.json

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)