python - 用于过滤仅具有名称和标签值的 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
解决方案
您的过滤器不正确。
来自 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”的图像
推荐阅读
- java - 如何从另一个线程中访问和修改操作栏内容
- java - 从 Kafka 状态存储中删除条目
- javascript - [ng-bootstrap]:将函数传递给模态框会抛出服务
- javascript - Angular Universal 在 POST 请求中使用我的服务器的 IP 地址
- java - Freemarker - 检查布尔值
- c# - 在哪个版本的 .NET 中添加了 yield return 语法
- mysql - 从带有索引的选择查询中添加一列
- jasper-reports - Jaspersoft Studio 上的表头拉伸问题
- javascript - laravel问题:ajax点击按钮问题
- c++ - 使用 OpenCV (C++) 在 Xcode 中访问网络摄像头