Передайте переменную вместо строки в кавычках в клиентскую команду boto3 ec2 - PullRequest
0 голосов
/ 19 июня 2019

Какие конкретные изменения необходимо внести в нижеследующее, чтобы передать переменные в аргумент «Фильтры» клиентского запроса boto3 ec2 ниже?

def getRtbId(vpcId,nameTag):
    client = boto3.client('ec2', region_name='us-west-2')

    response = client.describe_route_tables(
        Filters=[
            {'Name': 'vpc-id','Values': [\'vpcId\']},
            {'Name': 'tag:Name','Values': [\'nameTag\']}
        ]
    )  

Значения vpcId и nameTag работают только тогда, когда они введены как буквенные строки. Но проблема в том, что, как вы видите, значения должны быть переданы в команду как переменные. Каждый синтаксис, который мы пытались передать в значениях vpcId и nameTag в качестве переменных, приводил к одной из множества различных бесполезных синтаксических ошибок.

Документация находится на этой ссылке , но документация не кажется полезной для этого вопроса.

Какой правильный синтаксис?

1 Ответ

0 голосов
/ 19 июня 2019

Вам не нужно ставить кавычки в аргумент.Кавычки являются частью синтаксиса строковых литералов, они не являются частью данных.Если вы хотите получить значение из переменной, просто поместите туда переменную.

    response = client.describe_route_tables(
        Filters=[
            {'Name': 'vpc-id','Values': [vpcId]},
            {'Name': 'tag:Name','Values': [nameTag]}
        ]
    )  
...