我在私有子网和私有esg中的ec2上部署了一个服务。我能够从公共子网和publicSG中的EC2访问此服务。我想创建一个API网关,将这个API暴露给我的客户端[移动应用程序]。
实现这一目标的方法是什么?
我已经创建了API网关、资源和方法,但是这个API调用没有到达ec2上的服务。下面是错误Wed Feb 17 10:14:38 UTC 2021 : Starting execution for request: c7290ccc-5859-44cf-bta2-90ff498cdec6
Wed Feb 17 10:14:38 UTC 2021 : HTTP Method: GET, Resource Path: /item/item-1
Wed Feb 17 10:14:38 UTC 2021 : Method request path: {id=item-1}
Wed Feb 17 10:14:38 UTC 2021 : Method request query string: {}
Wed Feb 17 10:14:38 UTC 2021 : Method request headers: {}
Wed Feb 17 10:14:38 UTC 2021 : Method request body before transformations:
Wed Feb 17 10:14:38 UTC 2021 : Execution failed due to configuration error: Invalid endpoint address
Wed Feb 17 10:14:38 UTC 2021 : Method completed with status: 500```
要启用API网关访问私有实例,您可以设置API网关私有集成:
API网关私有集成使得在Amazon VPC内公开HTTP/HTTPS资源变得很简单
另一种方法是使用与VPC集成的lambda函数作为代理。所以你的API会调用这个函数,这个函数反过来会在私有实例上调用你的API并返回答案给API。