2014-12-07 4 views
0

Как часть моего конвейера CD в snap-ci.com, я хочу запустить экземпляры в стеке AWS opsworks перед развертыванием приложения.Как опросить AWS CLI в сценарии оболочки?

Поскольку стартовые хосты занимают определенное количество времени (после того, как команда уже вернулась), мне необходимо опросить экземпляры, которые будут выполняться (с использованием команды describe-instance в AWS CLI). Эта команда возвращает полный ответ JSON, в котором одно из полей содержит статус экземпляра (например, «running»).

Я новичок в сценариях оболочки и AWS CLI и ценю некоторые указатели. Я знаю, что я также могу использовать SDK AWS для его программирования в java, но для этого потребуется развернуть эту программу на узлах snap-ci, что также звучит сложно.

+0

Какие инструменты AWS cli вы используете? Питон можно использовать из python достаточно легко, что позволит вам легко управлять объектами результата json. Вы можете сделать это с помощью python, даже если вы используете инструменты AWS cli в качестве инструментов (путем подачи вывода на python или что-то еще, а затем на json). –

+0

Я использую AWS CLI и скрипты оболочки, которые отлично работают. Основными проблемами являются поведение вызовов AWS, которые должны быть независимы от используемых инструментов CLI. – monohusche

ответ

4

AWS CLI поддерживает команды wait, они будут блокировать и ждать указанного вами условия, например, ждать, пока экземпляр будет готов.

Advanced Usage of the AWS CLI talk from Re: Invent 2014 показывает, как использовать официантов (18:55), запросы, профили и другие советы по использованию CLI.

+0

Thx. проблема заключается только в том, что при использовании команды ec2 wait для опроса для запуска экземпляров команда возвращается, даже если сервер еще не запущен. Я также написал следующий скрипт, который выдает InvalidInstanceID на последнем шаге. Есть идеи ? aws opsworks --region us-east-1 start-stack --stack-id 9e1b0534-5b38-4fa5-b30c-f849dda8f46b instance_id = $ (aws opsworks --область us-east-1 описать экземпляры --stack -id 9e1b0534-5b38-4fa5-b30c-f849dda8f46b --query "Экземпляры []. Ec2InstanceId" --outout текст) aws ec2 wait --region ap-south-1 экземпляр-run -instance-ids $ instance_id – monohusche

+0

извините для искаженного сообщения, добавление комментариев к ответам не самая удобная для пользователя функция здесь – monohusche

Смежные вопросы