一千萬個為什麽

搜索

如何使用CLI獲取實例的路由表ID?



我想查找與給定的EC2實例關聯的路由表ID。

如何使用AWS CLI實現這一目標?


我試過使用 aws ec2 describe-vpcs ,但路由表不在那裏。

我正在使用 aws-cli/1.11.13

轉載註明原文: 如何使用CLI獲取實例的路由表ID?

一共有 2 個回答:

您可以通過確定ec2實例屬於哪個子網來實現此目的,然後檢查子網與哪個路由表關聯。

#!/bin/bash

instanceId='YOU-INSTANCE-ID'

#finds the subnetId that the instance belongs to
subnetId=$(aws ec2 describe-instances \
           --instance-id $instanceId \
           --query "Reservations[*].Instances[].SubnetId" \
           --output text)

routingTableId=$(aws ec2 describe-route-tables \
                 --query "RouteTables[*].Associations[?SubnetId=='$subnetId'].RouteTableId" \
                 --output text)

echo $routingTableId

路由表與與該實例相關聯的VPC相關聯。

給定 $ id shell變量具有實例ID,例如

id=i-0xyz # Replace i-0xyz with the real Instance ID.

這裏是shell命令讓VPC與實例關聯並分配給 $ vpcs 變量:

vpcs=$(aws ec2 describe-instances --instance-id $id --query 'Reservations[].Instances[].NetworkInterfaces[].VpcId' --output text)

然後要列出與VPC關聯的路由表,請運行:

aws ec2 describe-route-tables --filters "Name=vpc-id,Values=$vpcs"

要獲取路由ID,請添加: - 查詢“RouteTables []。RouteTableId []”參數。