Aws lambda 函数仅使用名称和标签值过滤 describe_images 函数

时间:2021-02-06 21:01:50

标签: python amazon-web-services image aws-lambda boto3

在 AWS 上使用具有不同标签的 AMI

AMI 1:

key         value
modified_by mark

AMI 2:

key         value
modified_by Tom

AMI

尝试使用此过滤器仅获取 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

1 个答案:

答案 0 :(得分:2)

您的过滤器不正确。

来自 boto3 docs

<块引用>

tag :key - 分配给 资源。使用过滤器名称中的标签键和标签值作为 过滤值。例如,要查找具有以下标记的所有资源 键 Owner 和值 TeamA ,为过滤器指定 tag:Owner name 和 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']}])

将列出所有标签为“修改者”且值为“汤姆”的图像