Определение API экспорта шлюза API с почтальоном - PullRequest
0 голосов
/ 16 марта 2019

Я проверял пару методов из amazon-api-gateway-developer-guide , и я наткнулся на api-gateway-export-api , мне удалось получить AWSCLIКоманда (aws apigateway get-export --parameters extensions='apigateway' --rest-api-id abcdefg123 --stage-name dev --export-type swagger latestswagger2.json --profile profile --region us-east-1) работает путем добавления параметров --profile и --region, но по какой-то причине я не могу получить URL-адрес запроса для возврата ответа определения API.

Я пытаюсьсделать следующую пару вещей (почтальон):

  • GET запрос с URL: https://apigateway.us -east-1.amazonaws.com / restapis / abcdefg123 / stage / dev/ exports / oas30
  • Добавить тип авторизации AWS-Signature в запрос со всеми заполненными параметрами (AccessKey, SecretKey, регион AWS, имя службы и токен сеанса)
  • Авторизация,Маркер x-Amz-Date и x-Amz-Security сгенерирован успешно, насколько я могу судить
  • Я также отправляю хост заголовков (apigateway.us-east-1.amazonaws.com) иAccept (application / yaml)

Это приводит к следующей ошибкеили:

{"logref": "2734hu2r2873", "message": "Пользователь: arn: aws: sts :: 7216832187: предполагаемая роль / DEVELOPER / xxxx не авторизован для выполнения: apigateway: GET на ресурсе: arn: aws: apigateway: us-east-1 :: / restapis / abcdefg123 / stage / dev / exports / oas30 "}

Я фактически получал ту же ошибку сКоманда AWSCLI до того, как я добавил параметры --profile и --region.Я уже проверил пару постов о таких проблемах, как у меня, это пример экспорта определения API-интерфейса swagger из API-шлюза через http-запрос? , но я делаю в основном то же самое (отправляю одинаковые заголовки,хост и URL) и получаю эту ошибку.Я не думаю, что мой ключ доступа, секретный ключ, токен или любая другая информация могут быть неверными ... потому что это учетные данные, которые я использую для команды AWSCLI.

Спасибо, что нашли время прочитатьи / или ответьте на мой пост, я очень благодарен за любые отзывы.

1 Ответ

0 голосов
/ 21 марта 2019

Смысл попытки заставить этот запрос работать, я хотел добавить его в качестве HTTP-прокси к API, к сожалению, я не смог заставить его работать. Моя проблема заключалась в том, что в моем сеансе было несколько профилей, и у каждого из них были разные разрешения, я не нашел способа указать профиль, который я хотел использовать в запросе, и, таким образом, это вызвало ошибку, упомянутую выше.

В итоге я решил написать лямбда-функцию с интеграцией прокси-сервера, и все прошло нормально, после того, как я дал профилю лямбды apigateway: разрешение GET.

Если у меня есть неправильное представление о том, о чем я писал, или я неправильно использую термин, пожалуйста, исправьте меня, я все еще довольно новичок в AWS и мне есть чему поучиться!

...