可以使用AWS Elastic Beanstalk的DescribeInstances API调用来获取正在运行的主机列表及其IP地址。以下是使用AWS SDK for Python(Boto3)的示例代码:
import boto3
# 创建Elastic Beanstalk客户端
eb_client = boto3.client('elasticbeanstalk')
# 获取环境名称
env_name = "your-environment-name"
# 获取环境中正在运行的实例
response_instances = eb_client.describe_instances_health(
EnvironmentName=env_name,
AttributeNames=['HealthStatus'],
IncludeAllInstances=True
)
# 从实例中提取IP地址
running_ips = []
for instance in response_instances['InstanceHealthList']:
if instance['HealthStatus'] == 'Green':
running_ips.append(instance['PrivateIpAddress'])
print(running_ips)
在上面的示例代码中,我们首先创建一个AWS Elastic Beanstalk客户端。然后,我们指定环境的名称并调用DescribeInstances API。该API将返回包含每个实例的健康状态和其他相关信息的响应对象。我们遍历该响应对象,将健康状态为“Green”的实例的私有IP地址添加到一个列表中。最后,我们打印该列表来获取正在运行的主机列表及其IP地址。