Используя AWS api gateway, как определить, какие apis настроены, используя интеграцию Lambda-прокси или Lambda-непрокси (пользовательскую) интеграцию - PullRequest
1 голос
/ 09 апреля 2020

У меня есть API, настроенные в AWS API-шлюзе (немногие с лямбда-интеграцией и немногие с лямбда-прокси).

Мы решили опередить go только с лямбда-прокси-интеграцией , поскольку она проста в развертывании и обслуживании. Экспортировал файл json, используя «Расширения Swagger + API Gateway».

Как определить, какие конечные точки используют лямбда-интеграцию из файла json. Нужно ли вручную открывать каждую конечную точку в интерфейсе API Gateway и проверять, включен ли лямбда-прокси или есть лучший способ определить?

Спасибо.

1 Ответ

0 голосов
/ 10 апреля 2020

Если вы посмотрите в файл Swagger с пользовательскими расширениями, у каждой конечной точки / метода должно быть свойство с именем x-amazon-apigateway-integration. Под этим будет другое свойство с именем type.

Значение для конечных точек без Лямбда-интеграция прокси будет aws, а лямбда-выражения с прокси-интеграцией aws_proxy

paths:
   # This is not a lambda proxy integration
  /v1/noproxy:
    get:
      produces:
      - "application/json"
      responses: {}
      x-amazon-apigateway-integration:
        uri: "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:****:function:***/invocations"
        responses:
          default:
            statusCode: "200"
        passthroughBehavior: "when_no_match"
        httpMethod: "POST"
        contentHandling: "CONVERT_TO_TEXT"
        type: "aws"

  # This is a lambda proxy integration
  /v1/myproxyintegration:
    post:
      responses: {}
      security:
      - sigv4: []
      x-amazon-apigateway-integration:
        uri: "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:*****:function:***/invocations"
        passthroughBehavior: "when_no_match"
        httpMethod: "POST"
        type: "aws_proxy"
...