команда linux curl, которая может проверять статус экземпляра aws ec2 - пройдено 2/2 проверки

Как я могу использовать команду bash curl для проверки состояния удаленного экземпляра aws ec2, чтобы я мог оценить ответ, чтобы определить, что сервер готов к использованию во время процесса cloud-init? Однако IP-адрес удаленного экземпляра EC2 задан заранее.

Консоль AWS отобразит «2/2 проверки пройдены», когда экземпляр EC2 будет готов к использованию, но я хочу определить это программно без использования интерфейса командной строки AWS.


person ikask    schedule 22.05.2018    source источник


Ответы (2)


AWS CLI, безусловно, лучший способ, если вы используете bash: description-instance-status - AWS CLI

Если бы вы сделали это программно, вы могли бы сделать это так. (Вы не упомянули предпочитаемый вами язык, так что вот он на Python.)

import boto3

client = boto3.client('ec2', region_name='ap-southeast-2')

response = client.describe_instance_status(InstanceIds=['i-0c9c9b95b3523afdc'])

print ([(i['InstanceId'], i['SystemStatus']['Status']) for i in response['InstanceStatuses']])
person John Rotenstein    schedule 22.05.2018

Как упоминал Джон; CLI - самый чистый и простой способ добиться этого. все остальное - это взлом.

Используя curl, вы можете легко получить полные метаданные экземпляра EC2. Но это не даст статуса выполнения ec2. См. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html ..

Возможный взлом: Запустите apache / nginx на этом EC2 .. и выполните curl на тестовой странице этого apache / nginx. Как только Ec2 поднят; ваш apache / nginx также будет работать, и вы получите HTTP-ответ 200.

person Deepak Singhal    schedule 22.05.2018