Добавление ответа интеграции в API веб-сокетов AWS с CloudFormation - PullRequest
0 голосов
/ 12 февраля 2019

AWS недавно выпустила поддержку Cloudformation для шаблонов шлюзов API веб-сокетов .У меня развернут рабочий пример, но я не могу понять, как включить ответ интеграции прокси (см. Скриншот, как это делается в консоли).Кто-нибудь знает, какой параметр cloudFormation можно использовать для включения ответа интеграции по умолчанию для интеграции лямбда-прокси?enter image description here

1 Ответ

0 голосов
/ 09 июня 2019

Пожалуйста, попробуйте следующие шаги

1- Добавьте RouteResponseSelectionExpression в Route как $ default (на данный момент поддерживается только одно)

2- Создайте RouteResponse для Route для всех маршрутов, которые вам нужны.быть двунаправленным
Примечание: - RouteResponseKey: $ default // это должно быть только значение по умолчанию

3- Добавить ConnectIntegResponse (Необязательно)

Ниже приведен проверенный фрагмент кода CF, не стесняйтесь использоватьэто

##########Socket API###############
  webSocket:
    Type: AWS::ApiGatewayV2::Api
    Properties:
      Name: WebSocket
      ProtocolType: WEBSOCKET
      RouteSelectionExpression: "$request.body.action"
  ConnectRoute:
    Type: AWS::ApiGatewayV2::Route
    Properties:
      ApiId: !Ref webSocket
      RouteKey: $connect
      AuthorizationType: NONE
      OperationName: ConnectRoute
      RouteResponseSelectionExpression: $default # add this 
      Target: !Join
        - '/'
        - - 'integrations'
          - !Ref ConnectInteg
  ConnectInteg:
    Type: AWS::ApiGatewayV2::Integration
    Properties:
      ApiId: !Ref webSocket
      Description: Connect Integration
      IntegrationType: AWS_PROXY
      IntegrationUri: 
        Fn::Sub:
            arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${restAndSocketLambda.Arn}/invocations

  ConnectRouteResponse: # Add this
    Type: 'AWS::ApiGatewayV2::RouteResponse'
    Properties:
      RouteId: !Ref ConnectRoute
      ApiId: !Ref webSocket
      RouteResponseKey: $default

  ConnectIntegResponse: # Add this(if required)
    Type: 'AWS::ApiGatewayV2::IntegrationResponse'
    Properties:
      IntegrationId: !Ref ConnectInteg
      IntegrationResponseKey: /201/
      ApiId: !Ref webSocket
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...