【发布时间】:2019-06-17 20:39:47
【问题描述】:
我正在尝试编写一个 lambda 函数来解除分配专用主机
我需要帮助过滤 dict 数据
这里是代码
import boto3
client = boto3.client('ec2')
response = client.describe_hosts(Filters=[{'Name': 'state', 'Values':
['available']}])
print(response)
上面返回dict数据(2个专用主机)..到目前为止我在网上看到的所有关于python的例子
HOSTS 是什么>>> 它与 EC2 实例的 RESERVATION 非常相似
{
u'Hosts': [
{
u'HostId': 'h-0e9--some-ID',
u'Tags': [
],
u'HostProperties': {
u'Cores': 36,
u'TotalVCpus': 72,
u'InstanceType': 'c5.large',
u'Sockets': 2
},
u'Instances': [
],
u'State': 'available',
u'AvailabilityZone': 'us-east-1a',
u'AvailableCapacity': {
u'AvailableInstanceCapacity': [
{
u'AvailableCapacity': 36,
u'InstanceType': 'c5.large',
u'TotalCapacity': 36
}
],
u'AvailableVCpus': 72
},
u'AllocationTime': datetime.datetime(2019,
1,
24,
4,
30,
48,
tzinfo=tzlocal()),
u'AutoPlacement': 'off'
},
{
u'HostId': 'h-0e9--some-ID',
u'Tags': [
],
u'HostProperties': {
u'Cores': 36,
u'TotalVCpus': 72,
u'InstanceType': 'c5.large',
u'Sockets': 2
},
u'Instances': [
],
u'State': 'available',
u'AvailabilityZone': 'us-east-1a',
u'AvailableCapacity': {
u'AvailableInstanceCapacity': [
{
u'AvailableCapacity': 36,
u'InstanceType': 'c5.large',
u'TotalCapacity': 36
}
],
u'AvailableVCpus': 72
},
u'AllocationTime': datetime.datetime(2019,
1,
24,
4,
30,
48,
tzinfo=tzlocal()),
u'AutoPlacement': 'off'
}
],
我想使用输出过滤 HostId 并声明“可用”并使用下面的 api 释放它们
response = client.release_hosts(
HostIds=[
'string',
]
)
简而言之,我想使用 python 描述主机,获取主机 ID 并提供主机 ID 给 release_host
我试图找到 describe_instance 和 start_instance 或 stop_instance 或 terminate_instance 的示例代码,但无法找到
对于 EC2 实例,有一些保留,对于专用主机,我注意到 Hosts.. 我不太明白这一点.. 请告诉我
典型的字典会像 my_dict = {'name':'Jack', 'age': 26}
对于 s3 > 它与上面的字典示例非常相似...对于 ec2 它令人困惑。
s3client = boto3.client('s3')
list_buckets_resp = s3client.list_buckets()
for bucket in list_buckets_resp['Buckets']:
print bucket
【问题讨论】:
标签: python-3.x amazon-web-services amazon-ec2 aws-lambda boto3