Как получить связанные с лямбда-функцией методы API Gateway с помощью boto3

#amazon-web-services #aws-lambda #aws-api-gateway #boto3

#amazon-веб-сервисы #aws-lambda #aws-api-gateway #boto3

Вопрос:

Я пытаюсь написать скрипт на Python, который позволяет переименовывать лямбда-функцию, копируя весь код и конфигурацию в новую функцию. В рамках этого процесса я хочу использовать все методы API Gateway, которые указывают на старую функцию, и перенаправить их, чтобы они указывали на новую функцию.

Есть ли способ выполнить это с помощью boto3?

Комментарии:

1. Рассматривали ли вы возможность переноса вашего шлюза lambda и API в CloudFormation? Это позволит вам легко повторно использовать и повторно развертывать вашу инфраструктуру в разных регионах и учетных записях.

2. Да, я планирую сделать это в конечном итоге. Это временное решение.

Ответ №1:

Да, это выполнимо, но у вас должно быть два клиента для APIGateway.

Следуя вызовам, которые вы можете выполнить для этого:

  1. get_apis> предоставляет все развернутые API, затем вы можете перейти к отдельным API с помощью get_api
  2. get_resources > Это дает вам все пути в выбранном rest API.
  3. get_integration> Дает вам что-то вроде приведенного ниже:
          {
             "type": "AWS_PROXY",
             "httpMethod": "POST",
             "uri": "arn:aws:apigateway:us-east1-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:1234567890:function:myfunction/invocations",
             "credentials": "arn:aws:iam::1234567890:role/myrole",
     ...
         }