如何将过滤器与boto3 vpc端点服务一起使用?

时间:2019-06-23 11:29:58

标签: amazon-web-services aws-sdk amazon-cloudformation boto3

我需要从python脚本获取vpc端点服务ID,但我不明白如何使用boto3从vpc-id或子网中过滤器

有人尝试使用过滤器吗?

boto3的这一部分

  

(dict)-   过滤器名称和值对,用于从describe操作返回更具体的结果列表。过滤器可用于根据特定条件(例如标签,属性或ID)来匹配一组资源。 describe操作支持的过滤器记录在describe操作中。例如:   描述可用性区域   描述图像   DescribeInstances   描述密钥对   描述安全组   描述快照   描述子网   描述标签   描述音量   描述Vpcs   名称(字符串)-   过滤器的名称。过滤器名称区分大小写。

值(列表)- 过滤器值。过滤器值区分大小写。

(字符串)-

非常感谢

2 个答案:

答案 0 :(得分:1)

这取决于您要用来过滤结果的内容。就我而言,我在下面使用它来过滤特定的vpc-endpoint-id。

           import boto3

           vpc_client = boto3.client('ec2')
           vpcEndpointId = "vpce-###"
           vpcEndpointDetails = vpc_client.describe_vpc_endpoints(
                VpcEndpointIds=[vpcEndpointId],
                Filters=[
                    {
                        'Name': 'vpc-endpoint-id',
                        'Values': [vpcEndpointId]
                    },
                ])

答案 1 :(得分:0)

最简单的方法是在不使用过滤器的情况下调用它,然后观察返回的结果:

import boto3

ec2_client = boto3.client('ec2', region_name='ap-southeast-2')

response = ec2_client.describe_vpc_endpoint_services()

for service in response['ServiceDetails']:
    print(service['ServiceId'])

然后您可以在Python代码中过滤结果,也可以使用Describe命令的Filters功能。

随时print(response)查看返回的数据。