我尝试将json字符串发送到API Gateway,然后让API Gateway将JSON发送到EC2服务器。
我的问题是,我找不到来自Amazon的关于如何实现这一点的好文档。
当我测试设置时,我得到这样的结果:
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response><Errors><Error><Code>InvalidHttpRequest</Code><Message>The HTTP request is invalid. Reason: Unable to parse request</Message></Error></Errors><RequestID>1fa47f52-d75c-4ff8-8992-3eac11a79015</RequestID></Response>"这对我来说意义不大。我假设是API Gateway尝试将请求发送到EC2时出现了问题,但无法发送,因此会生成此错误。因此,也许我在API中错误地设置了EC2 AWS服务代理。这很可能是因为我不知道应该将“操作”设置为什么,现在我让它指向EC2实例,只是因为我看不到任何其他地方可以放置该信息。
这真的不是那么难,我已经成功地完成了这个连接到Lambda的事情,并浏览了所有的文档,我能找到的只有http://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-aws-proxy.html#getting-started-aws-proxy-add-resources:
这对这个场景没有多大帮助。有什么想法吗?
发布于 2016-04-12 04:51:21
我想你混淆了AWS服务代理和HTTP服务代理。
API网关可以将API调用转发到不同类型的后端:
定义API时,请确保定义POST谓词并将端点URL指向EC2实例URL
我刚刚使用http://gurujsonrpc.appspot.com/上在线提供的JSON POST服务进行了测试,它的工作情况与预期一致。
下面是我的测试API的Swagger导出。
{
"swagger": "2.0",
"info": {
"version": "2016-04-11T20:46:13Z",
"title": "test"
},
"host": "c22wfjg4d7.execute-api.eu-west-1.amazonaws.com",
"basePath": "/prod",
"schemes": [
"https"
],
"paths": {
"/": {
"post": {
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "200 response",
"schema": {
"$ref": "#/definitions/Empty"
}
}
},
"x-amazon-apigateway-integration": {
"responses": {
"default": {
"statusCode": "200"
}
},
"uri": "http://gurujsonrpc.appspot.com/guru",
"httpMethod": "POST",
"type": "http"
}
}
}
},
"definitions": {
"Empty": {
"type": "object"
}
}
}https://stackoverflow.com/questions/36555038
复制相似问题