Skip to content

Commit 775bc9f

Browse files
authored
Merge branch 'main' into vpcv2_doc_fix
2 parents 789224f + 0da4f43 commit 775bc9f

21 files changed

Lines changed: 388 additions & 71 deletions

File tree

.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,ashishdhingra,HBobertz,sumupitchayan,SankyRed,udaypant,colifran,khushail,scanlonp,mikewrighton,moelasmar,paulhcsun,awsmjs,evgenyka,GavinZZ,aaythapa,xazhao,ConnorRobertson,ssenchenko,gracelu0,jfuss,SimonCMoore,shikha372,kirtishrinkhala,godwingrs22,bergjaak,IanKonlog,Leo10Gama,samson-keung,scorbiere,michelle-wangg,aws-cdk-automation,dependabot[bot],mergify[bot]]'
20+
ignore-usernames: '[rix0rrr,iliapolo,otaviomacedo,kaizencc,comcalvi,TheRealAmazonKendra,vinayak-kukreja,mrgrain,pahud,cgarvis,kellertk,ashishdhingra,HBobertz,sumupitchayan,SankyRed,udaypant,colifran,khushail,scanlonp,mikewrighton,moelasmar,paulhcsun,awsmjs,evgenyka,GavinZZ,aaythapa,xazhao,ConnorRobertson,ssenchenko,gracelu0,jfuss,SimonCMoore,shikha372,kirtishrinkhala,godwingrs22,bergjaak,IanKonlog,Leo10Gama,samson-keung,scorbiere,michelle-wangg,jiayiwang7,aws-cdk-automation,dependabot[bot],mergify[bot]]'

.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|ashishdhingra|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|samson-keung|IanKonlog|Leo10Gama|scorbiere|michelle-wangg)$
14+
- author~=^(rix0rrr|iliapolo|otaviomacedo|kaizencc|comcalvi|TheRealAmazonKendra|vinayak-kukreja|mrgrain|pahud|ashishdhingra|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|samson-keung|IanKonlog|Leo10Gama|scorbiere|michelle-wangg|jiayiwang7)$
1515
- -label~="contribution/core"
1616
- name: automatic merge
1717
actions:

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ if (process.env.PACKAGE_LAYOUT_VERSION === '1') {
1313
var lambda = require('@aws-cdk/aws-lambda');
1414
var sso = require('@aws-cdk/aws-sso');
1515
var docker = require('@aws-cdk/aws-ecr-assets');
16+
var appsync = require('@aws-cdk/aws-appsync');
1617
} else {
1718
var cdk = require('aws-cdk-lib');
1819
var {
@@ -28,6 +29,7 @@ if (process.env.PACKAGE_LAYOUT_VERSION === '1') {
2829
aws_sqs: sqs,
2930
aws_lambda: lambda,
3031
aws_ecr_assets: docker,
32+
aws_appsync: appsync,
3133
Stack
3234
} = require('aws-cdk-lib');
3335
}
@@ -637,6 +639,34 @@ class BuiltinLambdaStack extends cdk.Stack {
637639
}
638640
}
639641

642+
class AppSyncHotswapStack extends cdk.Stack {
643+
constructor(parent, id, props) {
644+
super(parent, id, props);
645+
646+
const api = new appsync.GraphqlApi(this, "Api", {
647+
name: "appsync-hotswap",
648+
definition: appsync.Definition.fromFile(path.join(__dirname, 'appsync.hotswap.graphql')),
649+
authorizationConfig: {
650+
defaultAuthorization: {
651+
authorizationType: appsync.AuthorizationType.IAM,
652+
},
653+
},
654+
});
655+
656+
const noneDataSource = api.addNoneDataSource("none");
657+
// create 50 appsync functions to hotswap
658+
for (const i of Array(50).keys()) {
659+
const appsyncFunction = new appsync.AppsyncFunction(this, `Function${i}`, {
660+
name: `appsync_function${i}`,
661+
api,
662+
dataSource: noneDataSource,
663+
requestMappingTemplate: appsync.MappingTemplate.fromString(process.env.DYNAMIC_APPSYNC_PROPERTY_VALUE ?? "$util.toJson({})"),
664+
responseMappingTemplate: appsync.MappingTemplate.fromString('$util.toJson({})'),
665+
});
666+
}
667+
}
668+
}
669+
640670
const app = new cdk.App({
641671
context: {
642672
'@aws-cdk/core:assetHashSalt': process.env.CODEBUILD_BUILD_ID, // Force all assets to be unique, but consistent in one build
@@ -674,6 +704,7 @@ switch (stackSet) {
674704
new LambdaStack(app, `${stackPrefix}-lambda`);
675705
new LambdaHotswapStack(app, `${stackPrefix}-lambda-hotswap`);
676706
new EcsHotswapStack(app, `${stackPrefix}-ecs-hotswap`);
707+
new AppSyncHotswapStack(app, `${stackPrefix}-appsync-hotswap`);
677708
new DockerStack(app, `${stackPrefix}-docker`);
678709
new DockerStackWithCustomFile(app, `${stackPrefix}-docker-with-custom-file`);
679710

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
type Query {
2+
listString: [String]
3+
}

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2176,6 +2176,37 @@ integTest(
21762176
}),
21772177
);
21782178

2179+
integTest('hotswap deployment supports AppSync APIs with many functions',
2180+
withDefaultFixture(async (fixture) => {
2181+
// GIVEN
2182+
const stackArn = await fixture.cdkDeploy('appsync-hotswap', {
2183+
captureStderr: false,
2184+
});
2185+
2186+
// WHEN
2187+
const deployOutput = await fixture.cdkDeploy('appsync-hotswap', {
2188+
options: ['--hotswap'],
2189+
captureStderr: true,
2190+
onlyStderr: true,
2191+
modEnv: {
2192+
DYNAMIC_APPSYNC_PROPERTY_VALUE: '$util.qr($ctx.stash.put("newTemplate", []))\n$util.toJson({})',
2193+
},
2194+
});
2195+
2196+
const response = await fixture.aws.cloudFormation.send(
2197+
new DescribeStacksCommand({
2198+
StackName: stackArn,
2199+
}),
2200+
);
2201+
2202+
expect(response.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE');
2203+
// assert all 50 functions were hotswapped
2204+
for (const i of Array(50).keys()) {
2205+
expect(deployOutput).toContain(`AWS::AppSync::FunctionConfiguration 'appsync_function${i}' hotswapped!`);
2206+
}
2207+
}),
2208+
);
2209+
21792210
async function listChildren(parent: string, pred: (x: string) => Promise<boolean>) {
21802211
const ret = new Array<string>();
21812212
for (const child of await fs.readdir(parent, { encoding: 'utf-8' })) {

packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.assets.json renamed to packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.assets.json

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

packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.template.json renamed to packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.template.json

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"Resources": {
3-
"Domain66AC69E0": {
3+
"OpenSearch213B37A164B": {
44
"Type": "AWS::OpenSearchService::Domain",
55
"Properties": {
66
"ClusterConfig": {
@@ -30,6 +30,37 @@
3030
},
3131
"UpdateReplacePolicy": "Delete",
3232
"DeletionPolicy": "Delete"
33+
},
34+
"OpenSearch21566632C3A": {
35+
"Type": "AWS::OpenSearchService::Domain",
36+
"Properties": {
37+
"ClusterConfig": {
38+
"DedicatedMasterEnabled": false,
39+
"InstanceCount": 1,
40+
"InstanceType": "r5.large.search",
41+
"MultiAZWithStandbyEnabled": false,
42+
"ZoneAwarenessEnabled": false
43+
},
44+
"DomainEndpointOptions": {
45+
"EnforceHTTPS": false,
46+
"TLSSecurityPolicy": "Policy-Min-TLS-1-0-2019-07"
47+
},
48+
"EBSOptions": {
49+
"EBSEnabled": true,
50+
"VolumeSize": 10,
51+
"VolumeType": "gp2"
52+
},
53+
"EncryptionAtRestOptions": {
54+
"Enabled": false
55+
},
56+
"EngineVersion": "OpenSearch_2.15",
57+
"LogPublishingOptions": {},
58+
"NodeToNodeEncryptionOptions": {
59+
"Enabled": false
60+
}
61+
},
62+
"UpdateReplacePolicy": "Delete",
63+
"DeletionPolicy": "Delete"
3364
}
3465
},
3566
"Parameters": {
@@ -66,4 +97,4 @@
6697
]
6798
}
6899
}
69-
}
100+
}

packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk.out

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integ.json

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

packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json renamed to packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integopenseachminDefaultTestDeployAssert0EB58658.assets.json

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

0 commit comments

Comments
 (0)