首页 > 解决方案 > 基于 Lambda Python 代码中的多个标签过滤实例

问题描述

我想检查某个实例是否有标签列表。我感兴趣的标签是环境、环境和环境。它们的值是Production、Prod 和production。我正在使用 lambda 函数来检查它,到目前为止我有这个:

response = ec2.describe_tags(
Filters=[
    {
        'Name': 'tag:Environment|Env|environment',
        'Values': [
            'Production|production|Prod',
        ]
    },
    {
        'Name': 'resource-id',
        'Values': [
            instance_id,
        ],
    }
])
print(response)

但这并没有在实例上捕获正确的标签。我相信问题是我试图以“Key1|Key2|Key3”格式捕获多个标签。谁能建议通过多个标签进行过滤的正确方法?谢谢!

标签: pythonamazon-web-servicesamazon-ec2aws-lambda

解决方案


我认为您必须在三个单独的电话中进行。至少这是我从我的灭绝者中可以得出的结论。

我使用的一个例子如下:

import boto3

from pprint import pprint

ec2 = boto3.client('ec2')

tag_values = ['production', 'Prod', 'Production']
tag_names = ['Env', 'Environment', 'environment']

results = []

for tag_name in tag_names:

    r=ec2.describe_tags(
            Filters=[{
                    'Name':'tag:' + tag_name,
                    'Values': tag_values
          }])

    pprint(r)

    results.append(r)


pprint(results)

推荐阅读