diff --git a/lambdas/indexer/.chalice/config.json.template.py b/lambdas/indexer/.chalice/config.json.template.py index 6751ef223..dd77ae946 100644 --- a/lambdas/indexer/.chalice/config.json.template.py +++ b/lambdas/indexer/.chalice/config.json.template.py @@ -25,7 +25,6 @@ "manage_iam_role": False, "iam_role_arn": "${aws_iam_role.%s.arn}" % app_name, "environment_variables": config.lambda_env, - "minimum_compression_size": config.minimum_compression_size, "lambda_timeout": config.api_gateway_lambda_timeout, "lambda_memory_size": 128, **chalice.vpc_lambda_config(app_name), diff --git a/lambdas/indexer/openapi.json b/lambdas/indexer/openapi.json index 7cc35b914..cd155a05a 100644 --- a/lambdas/indexer/openapi.json +++ b/lambdas/indexer/openapi.json @@ -5,6 +5,7 @@ "description": "\nThis is the internal API for Azul's indexer component.\n", "version": "1.0" }, + "x-amazon-apigateway-minimum-compression-size": 1024, "paths": { "/openapi": { "get": { diff --git a/lambdas/service/.chalice/config.json.template.py b/lambdas/service/.chalice/config.json.template.py index 46747fb3d..c40dff944 100644 --- a/lambdas/service/.chalice/config.json.template.py +++ b/lambdas/service/.chalice/config.json.template.py @@ -25,7 +25,6 @@ "manage_iam_role": False, "iam_role_arn": "${aws_iam_role.%s.arn}" % app_name, "environment_variables": config.lambda_env, - "minimum_compression_size": config.minimum_compression_size, "lambda_timeout": config.api_gateway_lambda_timeout, "lambda_memory_size": 2048, **chalice.vpc_lambda_config(app_name), diff --git a/lambdas/service/openapi.json b/lambdas/service/openapi.json index 5cfd7759f..173338ff4 100644 --- a/lambdas/service/openapi.json +++ b/lambdas/service/openapi.json @@ -23,6 +23,7 @@ "description": "\nDescribes various aspects of the Azul service\n" } ], + "x-amazon-apigateway-minimum-compression-size": 1024, "paths": { "/openapi": { "get": { diff --git a/src/azul/chalice.py b/src/azul/chalice.py index f7ad22b12..5c5575b39 100644 --- a/src/azul/chalice.py +++ b/src/azul/chalice.py @@ -126,6 +126,7 @@ def __init__(self, self.non_interactive_routes: set[tuple[str, str]] = set() if spec is not None: assert 'paths' not in spec, 'The top-level spec must not define paths' + spec['x-amazon-apigateway-minimum-compression-size'] = config.minimum_compression_size self._specs: Optional[MutableJSON] = copy_json(spec) self._specs['paths'] = {} else: diff --git a/test/test_openapi.py b/test/test_openapi.py index 0fb24e034..5bf142a1e 100644 --- a/test/test_openapi.py +++ b/test/test_openapi.py @@ -33,9 +33,16 @@ def app(self, spec): return AzulChaliceApp('testing', '/app.py', spec=spec) def test_top_level_spec(self): - spec = {'foo': 'bar'} + spec = { + 'foo': 'bar', + 'x-amazon-apigateway-minimum-compression-size': 1024 + } app = self.app(spec) - self.assertEqual(app._specs, {'foo': 'bar', 'paths': {}}, "Confirm 'paths' is added") + self.assertEqual(app._specs, { + 'foo': 'bar', + 'x-amazon-apigateway-minimum-compression-size': 1024, + 'paths': {} + }, "Confirm 'paths' is added") spec['new key'] = 'new value' self.assertNotIn('new key', app.spec(), 'Changing input object should not affect specs') @@ -54,7 +61,8 @@ def route(): 'foo': 'bar', 'paths': {}, 'tags': [], - 'servers': [{'url': 'https://fake.url/'}] + 'servers': [{'url': 'https://fake.url/'}], + 'x-amazon-apigateway-minimum-compression-size': 1024 } self.assertEqual(app.spec(), expected) @@ -74,7 +82,8 @@ def route(): } }, 'tags': [], - 'servers': [{'url': 'https://fake.url/'}] + 'servers': [{'url': 'https://fake.url/'}], + 'x-amazon-apigateway-minimum-compression-size': 1024 } self.assertEqual(app.spec(), expected_spec) @@ -91,7 +100,8 @@ def route(): '/foo': {'a': 'b'} }, 'tags': [], - 'servers': [{'url': 'https://fake.url/'}] + 'servers': [{'url': 'https://fake.url/'}], + 'x-amazon-apigateway-minimum-compression-size': 1024 } self.assertEqual(app.spec(), expected_spec) @@ -130,7 +140,8 @@ def route(): } }, 'tags': [], - 'servers': [{'url': 'https://fake.url/'}] + 'servers': [{'url': 'https://fake.url/'}], + 'x-amazon-apigateway-minimum-compression-size': 1024 } self.assertEqual(app.spec(), expected_specs)