Amazon API Gateway HTTP Proxy Integration Example
Internal
Overview
Playground
Procedure
Create the API
API Gateway Console -> APIs -> Create API
Protocol
REST
Create new API
New API
Settings
API Name: themyscira
Description:
Endpoint Type: Regional.
Create API: the API, and its root resource will be created.
Create Resources
Additional resources can be created by going to API -> <API name> -> Resources -> "/" -> Actions -> Create Resource.
For the simplest possible proxy integration, the only resource created under root is a proxy resource, meaning that it forwards everything that comes to the integration endpoint.
Select "/" -> Actions -> Create Resource.
Configure as "proxy resource". This is just a convenience control, will fill out the fields with appropriate values,
Resource name: proxy
Resource path: {proxy+}
Enable API Gateway CORS.
Create Resource.
The resource thus created comes with an "ANY" method.
Select it and configure it as follows:
Integration type: VPC Link.
Use Proxy Integration: Check. Why do we need to check that, while we're selecting "VPC Link" above anyway?
VPC Link: Use Stage Variables
Stage Variable: ${stageVariables.vpcLinkId}
We can select the VPC Link directly in the drop-down box, but using a stage variable gives us more flexibility, as we can simultaneously deploy in two different stages and use two different VPC Links.
Endpoint URL: http://playground-nlb-95d74901c7b728b1.elb.us-west-2.amazonaws.com:10001/{proxy} More clarifications here. Why do I need to specify an endpoint URL, when the VPC Link should already be wired into the network load balancer.
Use Default Timeout.
Test
{proxy+} -> ANY -> Test:
Method: GET
Path: amazons
Stage Variables:
vpcLinkId: xemf89
Test.
Should get 200.
Deploy API
API -> themyscira -> / -> Actions -> Deploy API
Deployment Stage: New Stage
Stage name: test
Stage Settings
Stage Variables
Add Stage Variables.
Name: vpcLinkId
Value: xemf89
Make sure to click the check sign, otherwise they won't be saved and the invocations will get "Internal server error"
Back to Settings -> Save Changes.