#python #amazon-web-services #amazon-ec2 #boto3
#python #amazon-веб-сервисы #amazon-ec2 #boto3
Вопрос:
Привет, я не могу фильтровать экземпляры на основе нескольких тегов. Это может выполняться для одного условия фильтра, когда я указываю два тега в фильтре, он выдает значение null. Я думаю, что он принимает значение «И» в фильтре. Есть ли какой-либо способ указать как ИЛИ в условии фильтра. У нас есть ключи тегов как для среды, так и для environment, было бы полезно получить обе детали, а не использовать два условия фильтрации по отдельности.
#define the connection region ec2 = boto3.client('ec2', region_name="us-east-1") s3 = boto3.client('s3')
custom_filter = [
{
'Name':'tag:Enviroment',
'Values': ['*']
},
{
'Name':'tag:environment',
'Values': ['*']
}
]
def lambda_handler(event,context):
response = ec2.describe_instances(Filters=custom_filter)
Reservation_details = response["Reservations"]
for instance_details in Reservation_details:
instances = instance_details.get("Instances")
print(instances)
Ответ №1:
В конце концов, каждый элемент в списке фильтров рассматривается как пересечение, а элементы в VALUES
списке элементов фильтра — как объединение.
Для фильтрации по ключу тега, где экземпляры имеют ключ тега, равный Environment
или environment
не заботящийся о значении ключа тега, вы можете написать custom_filter
, чтобы быть:
custom_filter = [
{
'Name':'tag-key',
'Values': ['Environment', 'environment']
}
]