Использовать travis CI для автоматического запуска лямбда-функции AWS? - PullRequest
0 голосов
/ 25 сентября 2019

Как я могу заставить Travis CI автоматически запускать лямбда-функцию AWS после того, как все тесты пройдены и сборка travis CI прошла успешно?Обратите внимание, что репозиторий github является общедоступным.

Справочная информация

Большая проблема, которую я решаю, состоит в том, что у меня есть travis CI в репо.Каждый раз, когда я нажимаю, после того, как все проходит, я вручную запускаю лямбду, которая запускает процессы в AWS.Я буду открывать исходные тексты репо, чтобы каждый мог внести свой вклад, поэтому я хочу избежать запуска лямбды вручную, а вместо этого автоматически запускать ее при успешном объединении запроса на извлечение.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019
  • Просто изложу мою идею здесь, просто хотел проверить, возможно это или нет.Если ваш контейнер имеет доступ в интернет.
  • Почему бы не использовать команду curl для публикации сообщения с соответствующей полезной нагрузкой на конечной точке шлюза API.
  • Лямбда может быть зарезервирована за шлюзом API.
  • ЕСЛИ еебудет публичным репозиторием, в этом случае мы не хотим хранить какие-либо учетные данные в каком-либо докере / контейнере.
  • Создайте пользователя IAM для контейнера с политиками для взаимодействия только с AWS Lambda, а затем используйтеопция aws cli.
- curl -X POST -H "Content-Type: application/json" -d '{"xyz":"testing","abc":"random stuff"}' https://tst.nhsd.io/restapi/Xyzxyz/testing/
0 голосов
/ 25 сентября 2019

Вы можете обновить свою сборку travis-ci, чтобы вызывать лямбду с помощью aws-cli, если вы устанавливаете ее в свою сборку travis.Вот пример:

aws lambda invoke --function-name awesome-function --payload '{"some":"data", "targetState": true}' /dev/stdout

разбивка:

  1. aws lambda invoke - это базовая команда aws-cli, которую мы хотим запустить
  2. --function-name указывает, какаяфункция для запуска
  3. --payload указывает данные события для вызова функции, а
  4. /dev/stdout указывает, что мы хотим, чтобы вывод вызова поступил на наш вывод терминала

вот документация: https://docs.aws.amazon.com/cli/latest/reference/lambda/invoke.html

...