首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS API网关和EC2服务代理

AWS API网关和EC2服务代理
EN

Stack Overflow用户
提问于 2016-04-12 01:11:29
回答 1查看 10.8K关注 0票数 12

我尝试将json字符串发送到API Gateway,然后让API Gateway将JSON发送到EC2服务器。

我的问题是,我找不到来自Amazon的关于如何实现这一点的好文档。

当我测试设置时,我得到这样的结果:

代码语言:javascript
复制
"<?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

这对这个场景没有多大帮助。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 04:51:21

我想你混淆了AWS服务代理和HTTP服务代理。

API网关可以将API调用转发到不同类型的后端:

  • a lambda function
  • an AWS Service (参见http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html获取示例)
  • 一个现有的API,在AWS或本地运行(您的使用案例)

定义API时,请确保定义POST谓词并将端点URL指向EC2实例URL

我刚刚使用http://gurujsonrpc.appspot.com/上在线提供的JSON POST服务进行了测试,它的工作情况与预期一致。

下面是我的测试API的Swagger导出。

代码语言:javascript
复制
{
  "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"
    }
  }
}
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36555038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档