linux curl命令,可以检查aws ec2实例状态检查 - 通过

时间:2018-05-22 02:29:47

标签: bash amazon-web-services curl amazon-ec2 cloud-init

如何利用bash curl命令检查远程aws ec2实例状态,以便我可以评估响应以确定服务器是否可以在cloud-init进程中使用?但是,远程EC2实例的IP地址是预定义的。

当EC2实例可以使用时,AWS控制台将显示“已通过2/2检查”,但我想在不使用AWS CLI的情况下以编程方式确定这一点。

2 个答案:

答案 0 :(得分:0)

如果您使用bash,AWS CLI肯定是最好的方式:describe-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']])

答案 1 :(得分:0)

如约翰所述; CLI是实现它的最简洁,最简单的方法。其他任何东西都是黑客。

使用curl,您可以轻松检索EC2实例的完整元数据。但是这不会给ec2的运行时状态。请参考https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html ..

可能的hack可能是:在EC2上运行apache / nginx ..并在该apache / nginx的测试页面上卷曲。一旦Ec2上升;你的apache / nginx也会启动,你会得到HTTP响应200。