Есть ли способ выполнить связующее задание через API Gateway? - PullRequest
3 голосов
/ 17 марта 2020

Я хочу знать, есть ли способ выполнить AWS Glue Job (Python тип оболочки) напрямую через API-шлюз. Работа My Glue считывает файл из корзины AWS S3 и выполняет операцию с использованием содержимого файла. Я уже создал сценарий python в клейком задании AWS, и он успешно запущен. Я хочу выполнить Glue Job через API Gateway.

Возможно ли это сделать?

Не могли бы вы дать мне подсказку, чтобы сделать это? Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 18 марта 2020

Да, можно вызывать любой AWS API в API Gateway через механизм AWS Proxy.

На основании того, на что указал Марцин, нажмите здесь для руководство по общей возможности вызывать AWS API через API Gateway

В частности, вы хотите настроить таргетинг на действие StartJobRun API Glue Jobs

В основном вам нужно прочитать документацию, чтобы понять, как AWS запускается API REST StartJobRun, и передать эту полезную нагрузку на ваш API-шлюз, и API-шлюз с радостью перенаправит запрос в собственный GEST Jobs REST API.

Преимуществом этого является то, что у вас есть прямая интеграция без необходимости в другой инфраструктуре, и задержка, которая сопровождается скачками через эти дополнительные циклы.

Недостатком является то, что у вас нет контроля над вводом / выводом в / из вашего API и вы должны передать именно то, что AWS хочет передать вам, чтобы вызвать их собственные API REST. Кроме того, лично я нахожу документацию REST API AWS гораздо более трудной для понимания и более сложной для использования, чем их Python и Node SDK. Вот почему многие люди создают простой лямбда-компонент между двумя службами, чтобы они могли определять форматы запросов и ответов (которые вы можете сделать очень простыми для клиентов), и вы можете использовать уже знакомый вам SDK.

2 голосов
/ 17 марта 2020

Вы можете настроить Лямбда-прокси интеграции для шлюза API. Интеграция - это самый простой и рекомендуемый способ вызова лямбды с использованием API-шлюза.

Так что единственное, что вам нужно сделать, - это написать лямбду, которая запускает клейкую работу. Вы также можете вернуть некоторую полезную информацию конечному пользователю через шлюз API. Может быть, Glue Job ID или что-то вроде этого.

Хороший учебник, объясняющий, как создать интеграцию Lambda, здесь;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...