将变量而不是带引号的字符串传递到 boto3 ec2 客户端命令中


为了

将变量传递到下面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']}
        ]
    )  

vpcIdnameTag的值仅在作为文本字符串输入时才有效。 但问题是,如您所见,这些值必须作为变量传递到命令中。 我们尝试将vpcId值和nameTag值作为变量传递的每个语法都会导致许多不同的无用语法错误之一。

文档

位于此链接,但文档似乎对此问题没有帮助。

正确的语法是什么?

你不需要在参数中加上引号。引号是字符串文本语法的一部分,它们不是数据的一部分。如果你想从变量中获取值,只需将变量放在那里。

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

最新更新