首页 > 解决方案 > 无法通过 API Websocket 和 HTTP 集成在 API Gateway 中使用不同的 HTTP 动词

问题描述

这可能是 AWS 中的一个错误,但以防万一我想在这里问一下,以防有人发现同样的问题。

重现步骤:

  1. 创建一个新的 Api Gateway Websocket API
  2. 创建路由 $connect, $disconnect, $default
  3. 选择http集成
  4. 为每个动词选择不同的动词(例如:POST、DELETE、PUT)
  5. 保存并部署

预期的结果是新的 api 与选定的 http 集成动词,但实际行为是所有 HTTP 方法在 AWS CLI 和 AWS 控制台中都是 POST。

这是一个错误吗?还是对这应该如何工作的误解?

$ aws apigatewayv2 get-integrations --api-id 1734p2p4sj

{
  "Items": [
  {
    "ConnectionType": "INTERNET",
    "IntegrationId": "6pja8ch",
    "IntegrationMethod": "POST",
    "IntegrationType": "HTTP_PROXY",
    "IntegrationUri": "https://websocketsample.free.beeceptor.com",
    "PassthroughBehavior": "WHEN_NO_MATCH",
    "PayloadFormatVersion": "1.0",
    "TimeoutInMillis": 29000
  },
  {
    "ConnectionType": "INTERNET",
    "IntegrationId": "gcepsb2",
    "IntegrationMethod": "POST",
    "IntegrationType": "HTTP_PROXY",
    "IntegrationUri": "https://websocketsample.free.beeceptor.com",
    "PassthroughBehavior": "WHEN_NO_MATCH",
    "PayloadFormatVersion": "1.0",
    "TimeoutInMillis": 29000
  },
  {
    "ConnectionType": "INTERNET",
    "IntegrationId": "szb6ahp",
    "IntegrationMethod": "POST",
    "IntegrationType": "HTTP_PROXY",
    "IntegrationUri": "https://websocketsample.free.beeceptor.com",
    "PassthroughBehavior": "WHEN_NO_MATCH",
    "PayloadFormatVersion": "1.0",
    "TimeoutInMillis": 29000
  }]
} 

更新:我在 AWS 论坛上问过,如果它是一个错误,不确定它是否是报告问题的正确地方。https://forums.aws.amazon.com/thread.jspa?threadID=337522 重现问题的视频https://youtu.be/BULd-9eoytU

标签: amazon-web-serviceswebsocketaws-api-gateway

解决方案


推荐阅读