From 87d740b2adc00b4f1f21aca60cf4d8573f36df87 Mon Sep 17 00:00:00 2001 From: Thanos Baskous Date: Sat, 25 Mar 2017 11:37:23 -0700 Subject: [PATCH] API Gateway 504 Gotcha Nits (#400) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1030ced..0599567 100644 --- a/README.md +++ b/README.md @@ -1292,7 +1292,7 @@ API Gateway - 🔸API Gateway endpoints are always public, i.e. internet facing, and there is no mechanism to build private endpoints, e.g. for internal use on a [VPC](#vpcs-network-security-and-security-groups) but endpoints and their related resources can, optionally, [require authentication](http://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-to-api.html). - 🔸API Gateway doesn’t support multi-region deployments for high availability. It is a service that is deployed in a single region but comes with a global endpoint that is served from AWS edge locations (similar to a CloudFront distribution). You cannot have multiple API Gateways with the same hostname in different AWS regions and use Route 53 to distribute the traffic. More in [this forum post](https://forums.aws.amazon.com/thread.jspa?messageID=735342򳡮). - 🔸Integration timeout: All of the various integration types (eg: Lambda, HTTP) for API Gateway have timeouts, as described [here](http://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html#api-gateway-limits). Unlike some limits, these timeouts can't be increased. -- 🔸API Gateway returns a 504 status code for any network or low level transport related issue. When this happens, you may see something in the cloudwatch logs for the request that says something like this: `Execution failed due to an internal error`. In reality, this means that even if your backend server is up and running, it may be doing something outside the HTTP specifications (like not sending well-formed chunked messages). Hit your backend directly with the `curl --raw -S -i ` and see if it complains. +- 🔸API Gateway returns a 504 status code for any network or low level transport related issue. When this happens, you may see a message in the CloudWatch logs for the request that includes the message: `Execution failed due to an internal error`. One possible reason for this error is that even though your backend server is up and running, it may be doing something outside of the HTTP specification (like not sending well-formed chunked messages). You can test by hitting your backend directly with the `curl --raw -S -i ` and seeing if it complains. 🚧 [*Please help expand this incomplete section.*](CONTRIBUTING.md)