Python 如何验证从新创建的AMI启动的EC2实例的状态?
如何使用boto3检查EC2实例是否已启动并正在运行/某个特定服务是否已启动或关闭。实例是从新创建的AMI创建的 您可以使用以下各项: 将Python 如何验证从新创建的AMI启动的EC2实例的状态?,python,amazon-web-services,amazon-ec2,boto3,Python,Amazon Web Services,Amazon Ec2,Boto3,如何使用boto3检查EC2实例是否已启动并正在运行/某个特定服务是否已启动或关闭。实例是从新创建的AMI创建的 您可以使用以下各项: 将instance.image\u id与所需图像的id进行比较 若要检查实例是否已在运行,请使用watter。检查EC2实例是否已启动: import sys import boto3 ec2 = boto3.client('ec2') if sys.argv[1] == 'ON': response = ec2.monitor_instances
instance.image\u id
与所需图像的id进行比较
若要检查实例是否已在运行,请使用watter。检查EC2实例是否已启动:
import sys
import boto3
ec2 = boto3.client('ec2')
if sys.argv[1] == 'ON':
response = ec2.monitor_instances(InstanceIds=['INSTANCE_ID'])
else:
response = ec2.unmonitor_instances(InstanceIds=['INSTANCE_ID'])
print(response)
要检查实例的运行状况,请执行以下操作:
# Boto 2.x
for status in ec2_connection.get_all_instance_statuses():
print(status)
# Boto 3
for status in ec2.meta.client.describe_instance_status()['InstanceStatuses']:
print(status)
有关更多详细信息,请参阅:
更新:(检查EC2中的特定服务是否正在运行)
当您特别询问boto3时,有一种方法可以确保某些服务以更自然的方式处于就绪状态 将实例的创建移动到CloudFormation模板并定义
CreationPolicy
,如AWS博文中所述:
TL;DR:当实例启动时,它将运行一个脚本,该脚本将检查您需要的任何服务是否正常工作,然后向CloudFormation发出“所有系统都正常”的信号。如果没有及时发出信号,实例将被标记为
CREATE\u FAILED
并被删除。如何运行脚本来检查服务是否在实例中启动???@prejithprasanna没有特定于python的方法来使用bot3检查此情况。您必须使用AWS Cloudwatch进行设置。是否已更新答案?您所说的“一项特定服务是向上还是向下”是什么意思?这是什么服务?如果这是一台普通计算机(不在EC2上),您将如何检查此服务是启动还是关闭?如果我运行脚本,它将返回Apache服务正在运行、失败、关闭等。否则,我希望通过ssh连接到新启动的实例并发送主题为“成功登录”的邮件。由于Apache是一台web服务器,您可以尝试转到实例提供的页面。当操作系统和Apache启动时,它不会提供内容。然后,一旦Apache运行,它将能够为请求的web页面提供服务。要做到这一点,您需要编写自己的软件。或者,如果实例位于负载平衡目标组中,则负载平衡服务会在向实例交付流量之前为您执行此类检查。
# Boto 2.x
for status in ec2_connection.get_all_instance_statuses():
print(status)
# Boto 3
for status in ec2.meta.client.describe_instance_status()['InstanceStatuses']:
print(status)