python - 基于 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”格式捕获多个标签。谁能建议通过多个标签进行过滤的正确方法?谢谢!
解决方案
我认为您必须在三个单独的电话中进行。至少这是我从我的灭绝者中可以得出的结论。
我使用的一个例子如下:
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)
推荐阅读
- doctrine-orm - Doctrine ManyToOne 关系:如何在不触及相关实体的情况下保存实体?
- amazon-cognito - Cypress 与 amazon cognito 的集成测试
- eclipse - Eclipse 插件的记录器
- docker - 在 Makefile 中运行的 Docker 上找不到文件
- machine-learning - 在图像修复项目中使用 input_hole 和 mask 进行卷积的好处
- laravel - 如何在 Laravel 中使用相关表构建 Eloquent Query?
- java - 在java中并按此顺序查找给定集合的所有子集
- angular - 适用于 Android 的 Angular 9 推送通知
- javascript - 在像 heroku 这样的云服务器上部署 io 时,它的本地主机地址应该是什么?
- swift - 如何创建 Firebase 登录?