Есть ли способ программно проверить успешность работы AWS EMR в рамках непрерывной интеграции? - PullRequest
1 голос
/ 10 октября 2019

Я работаю над некоторым кодом, который включает в себя скрипт my_script.sh, который включает

aws emr create-cluster \
  --name "${JOB_NAME}" \
  <some other flags>
  --auto-terminate \
  --steps \
  <some steps>

Если я затем войду в AWS и выберу сервисы 'EMR', я смогу увидеть, было ли задание выполнено успешноили нет.

НО было бы неплохо иметь возможность получить эту информацию программно, проверить, работает ли она. Затем я мог бы добавить это к моему .gitlab-ci.yml файлу.

Итак, есть ли способ программно получить состояние задания AWS EMR во время непрерывной интеграции? В противном случае, как я могу проверить, что мой bash-скрипт (который запускает кластер) работает должным образом, без необходимости делать это вручную при каждом изменении кода?

1 Ответ

0 голосов
/ 10 октября 2019

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

Вы можете использовать CLI (или соответствующий SDK на вашем языке по вашему выбору). ) запросить статус кластера. Учитывая, что вы используете bash, это может выглядеть следующим образом:

aws emr create-cluster \
  --name "${JOB_NAME}" \
  <some other flags>
  --auto-terminate \
  --steps \
  <some steps>

aws emr list-clusters --created-after CURRENT-TIME

# pull out CLUSTER-ID for the result of the above CLI call in whatever method you prefer

aws emr describe-cluster --cluster-id CLUSTER-ID

# setup a loop as needed to poll the cluster status as it moves from provisioning to a definite state (active, terminated, etc).

В качестве альтернативы, учитывая, что кажется, что вы не держите кластеры EMR снаружи, когда они выполняют задания, вы можете использоватьЧтобы исключить список кластеров в активном состоянии, выполните следующие действия: (ЗАПУСК, ЗАГРУЗКА, ВЫПОЛНЕНИЕ, ОЖИДАНИЕ или ПРЕКРАЩЕНИЕ)

aws emr list-clusters --active

Если вы предпочитаете подход pubsub, вы также можете настроить Сигналы тревоги CloudWatch для задания EMR . Это руководство демонстрирует, как вы можете настроить тему SNS, на которую другое приложение может подписаться на , чтобы получать обновления статуса для вашего задания EMR при изменении состояния.

Независимо от вашего выбора, если вычтобы получить более детальное представление о состоянии и поведении кластера, у вас есть широкий выбор метрик , для которых вы можете либо настроить сигналы тревоги CloudWatch, либо напрямую опросить.

...