Необходимо найти способ идентификации подсетей AWS VPC, которые маршрутизируют через виртуальный частный шлюз, с помощью Python Boto3. Другими словами, как я могу использовать python boto3 для идентификации частных подсетей в VPC?
Цель состоит в том, чтобы создать функцию Lambda, которая будет идентифицировать частные подсети в данном VPC, а затем запустить другую функцию Lambda вэти частные подсети.
Ниже приведен код, который я получил до сих пор. В нем перечислены все подсети в пределах VPC, к которому подключен виртуальный частный шлюз.
import boto3
def get_vpn_gateways():
ec2_client = boto3.client('ec2')
response = ec2_client.describe_vpn_gateways()
return response
def get_vpc_subnets(VpcId):
ec2 = boto3.resource('ec2')
vpc = ec2.Vpc(VpcId)
subnets = vpc.subnets.all()
return subnets
# Get VPC Ids associated with the virtual private gateway
vpc_list = []
virtual_gateways = get_vpn_gateways()
for virtual_gateway in virtual_gateways["VpnGateways"]:
vgwId = virtual_gateway["VpnGatewayId"]
vpcAttach = virtual_gateway["VpcAttachments"]
vpc_list.append(vpcAttach[0]["VpcId"])
for vpc in vpc_list:
print(vpc)
subnets = get_vpc_subnets(vpc)
for subnet in subnets:
print(subnet)
Код до сих пор перечисляет все подсети в пределах VPC. Я думаю использовать маршрутизацию в качестве ключевого идентификатора для частной подсети. Если есть маршруты, проходящие через VGW, то я буду считать подсеть частной. Это имеет смысл?