【发布时间】:2020-03-27 21:29:30
【问题描述】:
现在我想获取public_dns_name,然后登录到一个aws实例来获取CPU利用率。我知道用cloudwatch可以查,但是现在不想依赖amazon提供的功能直接基于linux查。我怎样才能得到它?
ec2 = boto3.resource('ec2',
aws_access_key_id=settings.AWS.get("aws_access_key_id"),
aws_secret_access_key=settings.AWS.get("aws_secret_access_key"),
region_name=settings.AWS.get("region_name"))
user_data_script = """#cloud-config
runcmd:
- sudo systemctl start docker
- cd /srv/app/kfquantum
- sudo docker run --env broker=%s \
--env result=redis://10.0.0.245:6379/0 \
--env host=kf-db.cluster-crietao0wrdu.rds.cn-northwest-1.amazonaws.com.cn \
--env user=db \
--env pw=y6y83aGagY8hgXZ \
-w /kfquantum -d --restart unless-stopped --name kf-celery kf-celery \
celery -A kfquantum worker --pool=solo -l info
""" % settings.BROKER_URL
instance_type = "c5.large"
instance = ec2.create_instances(
BlockDeviceMappings=[
{
"DeviceName": "/dev/xvda",
'Ebs': {
'DeleteOnTermination': True,
'VolumeSize': 8
},
},
],
ImageId="ami-09feea664bfc54194",
MinCount=1,
MaxCount=1,
Placement={'AvailabilityZone': 'cn-northwest-1a'},
InstanceType=instance_type,
UserData=user_data_script,
NetworkInterfaces=[
{
'DeviceIndex': 0,
'SubnetId': "subnet-093161e8b00deb367",
'AssociatePublicIpAddress': True
},
]
)
instance = instance[0]
print("1",instance.private_ip_address)
print("2",instance.public_dns_name)
控制台
1,10.0.0.73
2
【问题讨论】:
标签: python amazon-web-services amazon-ec2 boto3