首页 > 解决方案 > 用于过滤仅具有名称和标签值的 describe_images 函数的 Aws lambda 函数

问题描述

在 AWS 上有 AMI,带有不同的标签,像这样

AMI 1:

key         value
modified_by mark

AMI 2:

key         value
modified_by Tom

急性心肌梗死

尝试使用此过滤器仅获取 name 和 modified_by 值。

    
    ec2_client = boto3.client('ec2', region_name='ap-east-1') 
    images = ec2_client.describe_images(Owners=['self'],Filters=[{'Name': 'modified_by', 'Values': ['Tom']}])
    

收到此错误

 "errorMessage": "An error occurred (InvalidParameterValue) when calling the DescribeImages operation: The filter 'modified_by' is invalid"

如何在 aws lambda 中使用 boto3 调用过滤器 describe_images() 函数以仅获取实例名称和 modified_by

标签: pythonamazon-web-servicesimageaws-lambdaboto3

解决方案


您的过滤器不正确。

来自 boto3文档

tag :key - 分配给资源的标签的键/值组合。使用过滤器名称中的标签键和标签值作为过滤器值。例如,要查找具有键 Owner 和值 TeamA 的标签的所有资源,请为过滤器名称指定 tag:Owner 并为过滤器值指定 TeamA。

tag-key - 分配给资源的标签的键。使用此过滤器可查找分配了具有特定键的标签的所有资源,而不管标签值如何。

例如:

images = ec2_client.describe_images(Owners=['self'],Filters=[{'Name': 'tag-key', 'Values': ['Tom']}])

将列出所有具有值为“Tom”的标签的实例,而不管它们的标签键是什么。

images = ec2_client.describe_images(Owners=['self'],Filters=[{'Name': 'tag:modified-by', 'Values': ['Tom']}])

将列出所有标签为“modified-by”且值为“Tom”的图像


推荐阅读