Python 如果我只想得到其值为';s env是「;“开发”,如何基于此脚本修改代码?

Python 如果我只想得到其值为';s env是「;“开发”,如何基于此脚本修改代码?,python,amazon-web-services,amazon-ec2,Python,Amazon Web Services,Amazon Ec2,[此脚本允许我获取所有实例] 当我在此链接中运行脚本时: #!/usr/bin/env python # -*- encoding: utf8 -*- import boto.ec2 conn = boto.ec2.connect_to_region('us-west-1') reservations = conn.get_all_instances() InstanceMap={} for reservation in reservations: for instance in r

[此脚本允许我获取所有实例]

当我在此链接中运行脚本时:

#!/usr/bin/env python
# -*- encoding: utf8 -*-

import boto.ec2
conn = boto.ec2.connect_to_region('us-west-1')
reservations = conn.get_all_instances()
InstanceMap={}
for reservation in reservations:
    for instance in reservation.instances:
        if 'Name' in instance.tags:
            tag_name = instance.tags['Name']
            if tag_name in InstanceMap:
                InstanceMap[tag_name].append(instance.id)
            else:
                InstanceMap[tag_name] = [instance.id,]
我得到所有EC2实例ID和实例标签的名称

结果是

{'ap1-dev': ['i-04ebd1403d93bef01'],

 'ap1-prod': ['i-08f0c8a3f495bad71', 'i-0508a3800cd0ec331'],

 'ap1-stage': ['i-0716b2fd4089c7471', 'i-025002d2da8396171'],

 'ap2-dev': ['i-08ffb39676b7b1c81'],

 'ap2-prod': ['i-019dbf70c2f061521', 'i-0d2d482cb85419131'],

 'ap2-stage': ['i-04d71424b7257b4b1', 'i-02c0046baae635d31']}
实例标记name的值是ap1 dev,其标记env的值是dev

instacne标签名称的值为ap1 prod,其标签的env的值为prod

现在我的问题是:

如果我只想得到标签的env值为“dev”的EC2实例。 我想得到的结果是:

{'ap1-dev': ['i-04ebd1403d93bef01'],

 'ap2-dev': ['i-08ffb39676b7b1c81']}

我应该如何修改基于这个脚本的代码?

您想考虑以<代码> -DEV结尾的标签。 更改此行:

if 'Name' in instance.tags:
致:


您也可以将此作为一种方法,并传递您的“环境”,如
dev
prod
stage
,而不是每次修改代码。

非常感谢!我使用这行代码:如果instance.tags中的'Name'和instance.tags中的'env'以及instance.tags['env']=='stage'成功。
if 'Name' in instance.tags and instance.tags['Name'].endswith('-dev'):