From ed338f5c4c20be74923e4fa01c8ef0f62d2e77ed Mon Sep 17 00:00:00 2001 From: Raphael Manke Date: Thu, 10 Sep 2026 17:12:09 +0200 Subject: [PATCH] ci: switch integration-test API Gateways to REGIONAL endpoints EDGE-type REST APIs share a hard 120-per-region account quota. Each PR's integration-test stack creates 17 of them, so as few as 7 concurrently open PRs exhausts the quota and fails every subsequent PR's deploy with "This operation would breach the limit of 120 apis for EDGE endpoint type" -- unrelated to the PR's actual changes. REGIONAL endpoints serve the same test purpose without that shared ceiling. --- integration-tests/iac/lib/integration-tests-stack.ts | 4 ++++ integration-tests/iac/lib/node-tracing-scenarios-stack.ts | 4 ++++ integration-tests/iac/lib/python-tracing-scenarios-stack.ts | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/integration-tests/iac/lib/integration-tests-stack.ts b/integration-tests/iac/lib/integration-tests-stack.ts index faf8151..965a789 100644 --- a/integration-tests/iac/lib/integration-tests-stack.ts +++ b/integration-tests/iac/lib/integration-tests-stack.ts @@ -242,6 +242,10 @@ class PythonStack extends cdk.NestedStack { restApiName: `${props.prefix}apigw-error-500-${suffix}`, handler: fn, proxy: true, + // REGIONAL avoids the account-wide 120-per-region quota on EDGE-type + // APIs, which every concurrently open PR's integration-test stack + // otherwise eats into (17 REST APIs per stack). + endpointConfiguration: { types: [apigateway.EndpointType.REGIONAL] }, }); } } diff --git a/integration-tests/iac/lib/node-tracing-scenarios-stack.ts b/integration-tests/iac/lib/node-tracing-scenarios-stack.ts index 7b7141e..67b49d1 100644 --- a/integration-tests/iac/lib/node-tracing-scenarios-stack.ts +++ b/integration-tests/iac/lib/node-tracing-scenarios-stack.ts @@ -264,6 +264,10 @@ export class NodeTracingScenariosStack extends cdk.NestedStack { restApiName: `${prefix}tracing-test-api-${runtimeName}`, handler: apiGatewayConsumer, proxy: true, + // REGIONAL avoids the account-wide 120-per-region quota on EDGE-type + // APIs, which every concurrently open PR's integration-test stack + // otherwise eats into. + endpointConfiguration: { types: [apigateway.EndpointType.REGIONAL] }, }); const apiGatewayProducer = new lambda.Function(this, `ApiGatewayProducerLambda-${runtimeName}`, { diff --git a/integration-tests/iac/lib/python-tracing-scenarios-stack.ts b/integration-tests/iac/lib/python-tracing-scenarios-stack.ts index f3672d4..c660186 100644 --- a/integration-tests/iac/lib/python-tracing-scenarios-stack.ts +++ b/integration-tests/iac/lib/python-tracing-scenarios-stack.ts @@ -281,6 +281,10 @@ export class PythonTracingScenariosStack extends cdk.NestedStack { restApiName: `${prefix}tracing-test-api-${runtimeName}`, handler: apiGatewayConsumer, proxy: true, + // REGIONAL avoids the account-wide 120-per-region quota on EDGE-type + // APIs, which every concurrently open PR's integration-test stack + // otherwise eats into. + endpointConfiguration: { types: [apigateway.EndpointType.REGIONAL] }, }); const apiGatewayProducer = new lambda.Function(this, `ApiGatewayProducerLambda-${runtimeName}`, {