このトピックでは、Alibaba Cloud SDK for Pythonを使用して仮想ボーダールーター (VBR) を仮想プライベートクラウド (VPC) に接続する方法について説明します。
前提条件
Alibaba Cloud SDK for Pythonを使用する前に、次の要件が満たされていることを確認してください。
- Alibaba CloudアカウントとAccessKeyペアが取得されます。 Alibaba Cloud管理コンソールの [セキュリティ管理] ページで、AccessKeyペアを作成して表示できます。
- Alibaba Cloud SDK for Pythonがインストールされています。
- VPC Pythonサンプルライブラリがダウンロードされます。 setup.pyファイルが保存されているディレクトリに移動し、次のコマンドを実行して環境を初期化します。
python setup.py install
背景情報
ルーターインターフェイスを作成するときは、次の制限に注意してください。
- 2つのルーター間に接続するインターフェイスのペアを1つだけ作成できます。
- ルーターごとに最大5つのルーターインターフェイスを作成できます。
- Alibaba Cloudアカウントに料金滞納のルーターインターフェイスが含まれている場合、新しいルーターインターフェイスを作成することはできません。
- 同じルートテーブル内のルートの宛先CIDRブロックは一意である必要があります。
- VBRはイニシエータとして機能し、アクティブ状態でなければなりません。
手順
- ダウンロードしたSDKディレクトリで、$aliyun-openapi-python-sdk-examples\sdk_examples\examples\ecフォルダーを開きます。
- テキストエディターでec_vbr_vpc.pyファイルを開きます。 必要なパラメーターを設定し、設定を保存してから、エディターを終了します。 このトピックのサンプルコードには、次の操作が含まれます。
- VBRを作成します。
- 開始側ルーターのインターフェイスを作成します。
- レシーバールーターのインターフェイスを作成します。
- 開始側ルーターインターフェイスに関する情報を変更します。
- レシーバールーターインターフェイスに関する情報を変更します。
- 開始側ルーターインターフェイスに関する情報を照会します。
- レシーバールーターインターフェイスに関する情報を照会します。
- VBRのルートテーブルIDを照会します。
- 開始側ルーターインターフェイスを受信側ルーターインターフェイスに接続します。
- 次のホップが開始側ルーターインターフェイスであるルートを作成します。
- 次のホップがレシーバールーターインターフェイスであるルートを作成します。
- 次のホップがレシーバールーターインターフェイスであるルートを削除します。
- 次のホップが開始側ルーターインターフェイスであるルートを削除します。
- 開始側ルーターインターフェイスを無効にします。
- レシーバールーターインターフェイスを無効にします。
- 開始側ルーターインターフェイスを削除します。
- レシーバールーターインターフェイスを削除します。
- VBRを削除します。
#encoding=utf-8 インポートsys jsonのインポート alibabacloud_credentials.clientからCredClientとしてのインポートクライアント からaliyunsdkcore.acs_exception.exceptions import ServerException, ClientException aliyunsdkvpc.request.v20160428からCreateRouterInterfaceRequestをインポート aliyunsdkvpc.request.v20160428からDeleteRouterInterfaceRequestをインポート aliyunsdkvpc.request.v20160428からDescribeRouterInterfacesRequestをインポート aliyunsdkvpc.request.v20160428からConnectRouterInterfaceRequestをインポート aliyunsdkvpc.request.v20160428からDeactivateRouterInterfaceRequestをインポート aliyunsdkvpc.request.v20160428からModifyRouterInterfaceAttributeRequestをインポートする aliyunsdkvpc.request.v20160428からCreateVirtualBorderRouterRequestをインポート aliyunsdkvpc.request.v20160428からDescribeVirtualBorderRoutersRequestをインポート aliyunsdkvpc.request.v20160428からDescribeRouteTablesRequestをインポート aliyunsdkvpc.request.v20160428からDeleteVirtualBorderRouterRequestをインポート sdk_lib.sdk_route_entryからRouteEntryをインポートする sdk_lib.exception import ExceptionHandlerから sdk_lib.common_utilインポートからCommonUtil sdk_lib.check_statusからCheckStatusをインポートする sdk_lib.consts import * から # Alibaba CloudアカウントのAccessKeyペアを使用すると、アカウントにすべてのAPI操作に対する権限があるため、セキュリティ上のリスクが発生する可能性があります。 RAMユーザーを使用してAPI操作を呼び出したり、ルーチンのO&Mを実行することを推奨します。# AccessKey IDとAccessKey secretをプロジェクトコードに保存することはお勧めしません。 そうしないと、AccessKeyペアが漏洩し、リソースのセキュリティが侵害される可能性があります。 # この例では、AccessKeyペアは、Alibaba Cloud Credentialsツールを使用してAPIアクセスを認証することによって取得されます。 変数の設定方法の詳細については、「https://help.aliyun.com/document_detail/378659.htmlhttps:// www.alibabacloud.com/help/alibaba-cloud-sdk-262060/latest/configure-credentials-378659. 」をご参照ください。 cred = CredClient() access_key_id = cred.get_access_key_id() access_key_secret = cred.get_access_key_secret() # AcsClientインスタンスを作成します。 client = AcsClient(access_key_id, access_key_secret, '<your-region-id>') クラスRouterInterface (オブジェクト): def __init__(self, client): self.client=クライアント def create_router_interface(self、params): """ create_router_interface: ルーターインターフェイスを作成します。 """ 試してみてください。 request = CreateRouterInterfaceRequest.CreateRouterInterfaceRequest() # ルーターインターフェイスの仕様。 request.set_Spec(params['spec']) # ルーターインターフェイスの役割。 request.set_Role(params['role']) # ルーターインターフェイスに関連付けられているルーターのID。 request.set_RouterId(params['router_id']) # ルーターインターフェイスに関連付けられているルーターのタイプ。 request.set_RouterType(params['router_type']) # レシーバーがデプロイされているリージョンのID。 request.set_OppositeRegionId(params['opposite_region_id ']) # ピアルーターインターフェイスに関連付けられているルーターのタイプ。 request.set_OppositeRouterType(params['opposite_router_type ']) # ピアが属するアクセスポイントのID。 request.set_OppositeAccessPointId(params['opposite_access_point_id ']) # VBRが属するアクセスポイントのID。 # request.set_AccessPointId(params['access_point_id ']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) # ルーターインターフェイスが使用可能状態かどうかを確認します。 CheckStatus.check_status(TIME_DEFAULT_OUT, DEFAULT_TIME, self.de scribe_ri_status, 'Idle' 、response_json['RouterInterfaceId']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def create_router_interface_vbr(self、params): """ create_router_interface: ルーターインターフェイスを作成します。 """ 試してみてください。 request = CreateRouterInterfaceRequest.CreateRouterInterfaceRequest() # ルーターインターフェイスの仕様。 request.set_Spec(params['spec']) # ルーターインターフェイスの役割。 request.set_Role(params['role']) # ルーターインターフェイスに関連付けられているルーターのID。 request.set_RouterId(params['router_id']) # ルーターインターフェイスに関連付けられているルーターのタイプ。 request.set_RouterType(params['router_type']) # レシーバーがデプロイされているリージョンのID。 request.set_OppositeRegionId(params['opposite_region_id ']) # ピアルーターインターフェイスに関連付けられているルーターのタイプ。 request.set_OppositeRouterType(params['opposite_router_type ']) # VBRが属するアクセスポイントのID。 request.set_AccessPointId(params['access_point_id ']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) # ルーターインターフェイスが使用可能状態かどうかを確認します。 CheckStatus.check_status(TIME_DEFAULT_OUT, DEFAULT_TIME, self.de scribe_ri_status, 'Idle' 、response_json['RouterInterfaceId']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def connect_router_interface(self、params): """ connect_router_interface: 接続要求が開始側ルーターインターフェイスから受信側ルーターインターフェイスに送信されます。 """ 試してみてください。 request = ConnectRouterInterfaceRequest.ConnectRouterInterfaceRequest() # イニシエータルーターインターフェイスのID。 request.set_RouterInterfaceId(params['router_interface_id ']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) CheckStatus.check_status(TIME_DEFAULT_OUT * 5、DEFAULT_TIME * 5、 self.de scribe_ri_status, 'Active' 、params['router_interface_id ']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def deactivate_router_interface(self、params): """ deactivate_router_interface: ルーターインターフェイスを無効にします。 """ 試してみてください。 request = DeactivateRouterInterfaceRequest。DeactivateRouterInterfaceRequest() # ルーターインターフェイスのID。 request.set_RouterInterfaceId(params['router_interface_id ']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) # ルーターインターフェイスが使用可能状態かどうかを確認します。 CheckStatus.check_status(TIME_DEFAULT_OUT * 5、DEFAULT_TIME * 5、 self.de scribe_ri_status, 'Inactive '、params['router_interface_id']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def modify_router_interface_attribute(self, params): """ modify_router_interface_attribute: ルーターインターフェイスの設定を変更します。 """ 試してみてください。 request = ModifyRouterInterfaceAttributeRequest。ModifyRouterInterfaceAttributeRequest() # ルーターインターフェイスのID。 request.set_RouterInterfaceId(params['router_interface_id ']) # ピアルーターインターフェイスのID。 request.set_OppositeInterfaceId(params['opposite_interface_id ']) # ピアルーターのID。 request.set_OppositeRouterId(params['opposite_router_id ']) # ピアルーターのタイプ。 request.set_OppositeRouterType(params['opposite_router_type ']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) # ルーターインターフェイスが使用可能状態かどうかを確認します。 CheckStatus.check_status(TIME_DEFAULT_OUT, DEFAULT_TIME, self.de scribe_ri_status, 'Idle' 、params['router_interface_id ']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def describe_router_interface(self, instance_id): """ describe_router_interface: 特定のリージョンのルーターインターフェイスを照会します。 """ 試してみてください。 request = DescribeRouterInterfacesRequest.DescribeRouterInterfacesRequest() # ルーターインターフェイスのクエリに使用されるフィルター条件の種類。 request.add_query_param('Filter.1.Key' 、"RouterInterfaceId") # 照会するルーターインターフェイスのID。 request.add_query_param('Filter.1.Value.1 '、instance_id) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def describe_ri_status(self, instance_id): """ describe_ri_status: リージョン内のルーターインターフェイスのステータスを照会します。 """ response = self.de scribe_router_interface(instance_id) if len(response['RouterInterfaceSet']['RouterInterfaceType']) == 0: return'' リターンレスポンス ['RouterInterfaceSet']['RouterInterfaceType'][0]['Status'] def delete_router_interface(self、params): """ delete_router_interface: ルーターインターフェイスを削除します。 """ 試してみてください。 request = DeleteRouterInterfaceRequest。DeleteRouterInterfaceRequest() # ルーターインターフェイスのID。 request.set_RouterInterfaceId(params['instance_id']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) # ルーターインターフェイスが使用可能状態かどうかを確認します。 CheckStatus.check_status(TIME_DEFAULT_OUT, DEFAULT_TIME * 5, self.de scribe_ri_status, ''、params['instance_id']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def create_virtual_border_router(self、params): """ create_virtual_border_router: VBRを作成します。 """ 試してみてください。 request = CreateVirtualBorderRouterRequest.CreateVirtualBorderRouterRequest() # Express Connect回路のID。 request.set_PhysicalConnectionId(params['physical_connection_id ']) # Alibaba Cloud側のVBRのIPアドレス。 request.set_LocalGatewayIp(params['local_gateway_ip ']) # VBRのピアルーターインターフェイスのIPアドレス。 request.set_PeerGatewayIp(params['peer_gateway_ip ']) # Alibaba Cloud側とクライアント側のIPアドレスのサブネットマスク。 request.set_PeeringSubnetMask(params['peering_subnet_mask ']) # VBRのVLAN ID。 request.set_VlanId(params['vlan_id']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) # VBRが使用可能状態かどうかを確認します。 CheckStatus.check_status(TIME_DEFAULT_OUT, DEFAULT_TIME, self.de scribe_vbr_status, 'active' 、response_json['VbrId']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def delete_virtual_border_router(self、params): """ delete_virtual_border_router: VBRを削除します。 """ 試してみてください。 request = DeleteVirtualBorderRouterRequest。DeleteVirtualBorderRouterRequest() request.set_VbrId(params['vbr_id']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) CheckStatus.check_status(TIME_DEFAULT_OUT, DEFAULT_TIME, self.de scribe_vbr_status, ''、params['vbr_id']): response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def describe_virtual_border_router(self, instance_id): """ describe_virtual_border_router: VBRを照会します。 """ 試してみてください。 request = DescribeVirtualBorderRoutersRequest。DescribeVirtualBorderRoutersRequest() # ルーターインターフェイスのクエリに使用されるフィルター条件の種類。 request.add_query_param('Filter.1.Key' 、"VbrId") # 照会するルーターインターフェイスのID。 request.add_query_param('Filter.1.Value.1 '、instance_id) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def describe_vbr_status(self, instance_id): """ describe_virtual_border_router: VBRを照会します。 """ response = self.de scribe_virtual_border_router(instance_id) if len(response['VirtualBorderRouterSet']['VirtualBorderRouterType']) == 0: return'' リターンレスポンス ['VirtualBorderRouterSet']['VirtualBorderRouterType'][0]['Status'] def describe_route_table(self, params): """ describe_route_table: ルートテーブルを照会します。 """ 試してみてください。 request = DescribeRouteTablesRequest.DescribeRouteTablesRequest() # ルートテーブルが属するルータのID。 ルータは、VBRまたはvRouterとすることができる。 request.set_RouterId(params['router_id']) # ルートテーブルが属するルータのタイプ。 request.set_RouterType(params['router_type']) response = self.client.do_action_with_exception(request) response_json = json.loads (レスポンス) response_jsonを返します except ServerException as e: ExceptionHandler.server_exception(e) except ClientException as e: ExceptionHandler.client_exception(e) def main(): router_interface = RouterInterface (クライアント) route_entry = RouteEntry (クライアント) params = {} params['spec'] = "Large.2" params['role'] = "InitiatingSide" params['router_type'] = "VBR" params['opposite_region_id '] = "cn-hangzhou" params['opposite_router_type '] = "VRouter" params['access_point_id '] = "ap-cn-hangzhou-xx-x" # VBRを作成します。 params['physical_connection_id '] = PC_ID params['local_gateway_ip '] = "116.xx. xx.254" params['peer_gateway_ip '] = "116.xx. xx.254" params['peering_subnet_mask '] = "255.255.255.252" params['vlan_id'] = 30 vbr_json = router_interface.create_virtual_border_router(params) CommonUtil.log("create_virtual_border_router", vbr_json) # イニシエータルーターインターフェイスを作成します。 params['router_id'] = vbr_json['VbrId'] router_interface_json = router_interface.create_router_interface_vbr(params) CommonUtil.log("create_router_interface", router_interface_json) # レシーバールーターインターフェイスを作成します。 params['router_type'] = "VRouter" params['spec'] = "Negative" params['role'] = "AcceptingSide" params['router_id'] = ROUTER_ID2 params['opposite_router_type '] = 'VBR' params['opposite_access_point_id '] = params['access_point_id'] router_interface_json2 = router_interface.create_router_interface(params) CommonUtil.log("create_router_interface", router_interface_json2) # イニシエータルーターインターフェイスに関する情報を変更します。 params['router_interface_id '] = router_interface_json['RouterInterfaceId'] params['opposite_interface_id '] = router_interface_json2['RouterInterfaceId'] params['opposite_router_id '] = ROUTER_ID2 params['opposite_router_type '] = "VRouter" modify_ri_json = router_interface.modify_router_interface_attribute(params) CommonUtil.log("modify_router_interface_attribute", modify_ri_json) # レシーバールーターインターフェイスに関する情報を変更します。 params['router_interface_id '] = router_interface_json2['RouterInterfaceId'] params['opposite_interface_id '] = router_interface_json['RouterInterfaceId'] params['opposite_router_id '] = vbr_json['VbrId'] params['opposite_router_type '] = "VBR" modify_ri_json2 = router_interface.modify_router_interface_attribute(params) CommonUtil.log("modify_router_interface_attribute", modify_ri_json2) # 開始側ルーターインターフェイスに関する情報を照会します。 describe_ri_json = router_interface.describe_router_interface(router_interface_json['RouterInterfaceId']) CommonUtil.log("describe_router_interface", describe_ri_json) # レシーバールーターインターフェイスに関する情報を照会します。 describe_ri_json2 = router_interface.describe_router_interface(router_interface_json2['RouterInterfaceId']) CommonUtil.log("describe_router_interface", describe_ri_json2) # VBRのルートテーブルIDを照会します。 params['router_id'] = vbr_json['VbrId'] params['router_type'] = 'VBR' route_table_json = router_interface.describe_route_table(params) CommonUtil.log("describe_route_table", route_table_json) # 接続を開始します。 params['router_interface_id '] = router_interface_json['RouterInterfaceId'] connect_ri_json = router_interface.connect_router_interface(params) CommonUtil.log("connect_router_interface", connect_ri_json) # 次のホップが開始側ルーターインターフェイスであるルートを作成します。 params['route_table_id '] = route_table_json["RouteTables"]["RouteTable"][0]["RouteTableId"] params ['_destination cidr_block '] = "0.0.0.0/0" params['nexthop_type'] = 'RouterInterface' params['nexthop_id'] = router_interface_json['RouterInterfaceId'] route_entry_json = route_entry.create_route_entry(params) CommonUtil.log("create_route_entry", route_entry_json) # ネクストホップがレシーバールーターインターフェイスであるルートを作成します。 params ['rout_table_id '] = TABLE_ID2 params ['_destination cidr_block '] = "0.0.0.0/0" params['nexthop_type'] = 'RouterInterface' params['nexthop_id'] = router_interface_json2['RouterInterfaceId'] route_entry_json2 = route_entry.create_route_entry(params) CommonUtil.log("create_route_entry", route_entry_json2) # ネクストホップがレシーバールーターインターフェイスであるルートを削除します。 route_entry_json = route_entry.delete_route_entry(params) CommonUtil.log("delete_route_entry", route_entry_json) # 次のホップが開始側ルーターインターフェイスであるルートを削除します。 params['route_table_id '] = route_table_json["RouteTables"]["RouteTable"][0]["RouteTableId"] params['nexthop_id'] = router_interface_json['RouterInterfaceId'] route_entry_json = route_entry.delete_route_entry(params) CommonUtil.log("delete_route_entry", route_entry_json) # 開始側ルーターインターフェイスを無効にします。 params['router_interface_id '] = router_interface_json['RouterInterfaceId'] deactivate_ri_json = router_interface.deactivate_router_interface(params) CommonUtil.log("deactivate_router_interface", deactivate_ri_json) # レシーバールーターインターフェイスを無効にします。 params['router_interface_id '] = router_interface_json2['RouterInterfaceId'] deactivate_ri_json2 = router_interface.deactivate_router_interface(params) CommonUtil.log("deactivate_router_interface", deactivate_ri_json2) # イニシエータルーターインターフェイスを削除します。 params['instance_id'] = router_interface_json['RouterInterfaceId'] router_interface_json = router_interface.delete_router_interface(params) CommonUtil.log("delete_router_interface", router_interface_json) # レシーバールーターインターフェイスを削除します。 params['instance_id'] = router_interface_json2['RouterInterfaceId'] router_interface_json2 = router_interface.delete_router_interface(params) CommonUtil.log("delete_router_interface", router_interface_json2) # VBRを削除します。 params['vbr_id'] = vbr_json['VbrId'] vbr_json = router_interface.delete_virtual_border_router(params) CommonUtil.log("delete_virtual_border_router", vbr_json) if __name__ ='__main__': sys.exit(main())
- ec_vbr_vpc.pyファイルが保存されているディレクトリに移動し、次のコマンドを実行して、同じリージョンとアカウントに属するVBRとVPCの間にピアリング接続を作成します。
python ec_vbr_vpc.py
結果
次のシステム出力が表示されます。
{
"VbrId": "vbr-bp1vudncgk9jt ****" 、
"RequestId": "0C4FABDB-FF18-4E70-9E43-6DC03197F0EA"
}
--------------------------- create_router_interface ---------------------------
{
"RequestId": "11F14FA2-ECFA-4B27-A75D-7C6D5FECACDF" 、
"RouterInterfaceId": "ri-bp1vabte8nbde ****"
}
--------------------------- create_router_interface ---------------------------
{
"RequestId": "72FAB86D-470B-40E4-8476-F9223A911486" 、
"RouterInterfaceId": "ri-bp1mxkc61ly0n ****"
}
--------------------------- modify_router_interface_attribute ---------------------------
{
"RequestId": "93D5FFF7-6C05-41B1-92F0-AC8F1809BC98"
}
--------------------------- modify_router_interface_attribute ---------------------------
{
"RequestId": "1C461452-42BD-4649-B318-2214222B4FCA"
}
--------------------------- describe_router_interface ---------------------------
{
"TotalCount":1、
"RouterInterfaceSet": {
"RouterInterfaceType": [
{
"BusinessStatus": "Normal" 、
"CreationTime": "2019-04-30T02:54:22Z" 、
"AccessPointId": "ap-cn-hangzhou-xx-x" 、
"ロール": "InitiatingSide" 、
"OppositeRouterId": "vrt-bp141no9pds2b ****" 、
"スペック": "Large.2" 、
"ステータス": "アイドル" 、
"EndTime": "2999-09-08T16:00:00Z" 、
"OppositeInterfaceSpec": "ネガティブ" 、
"RouterInterfaceId": "ri-bp1vabte8nbde ****" 、
"RouterType": "VBR" 、
"OppositeBandwidth": 0、
"OppositeVpcInstanceId": "vpc-bp1v31by9jix2 ****" 、
"HasReservationData": false、
"OppositeInterfaceBusinessStatus": "通常" 、
"OppositeRouterType": "VRouter" 、
"OppositeRegionId": "cn-hangzhou" 、
"RouterId": "vbr-bp1vudncgk9jt ****" 、
"CrossBorder": false、
"OppositeInterfaceOwnerId": "" 、
"帯域幅": 2048、
"OppositeInterfaceId": "ri-bp1mxkc61ly0n ****" 、
"ChargeType": "AfterPay"
}
]
},
"PageNumber":1、
"RequestId": "3553DB38-A4A0-4453-976C-542E96B1B5A9" 、
"PageSize": 10
}
--------------------------- describe_router_interface ---------------------------
{
"TotalCount":1、
"RouterInterfaceSet": {
"RouterInterfaceType": [
{
"ステータス": "アイドル" 、
"OppositeRegionId": "cn-hangzhou" 、
"BusinessStatus": "Normal" 、
"OppositeRouterId": "vbr-bp1vudncgk9jt ****" 、
"VpcInstanceId": "vpc-bp1v31by9jix2 ****" 、
"RouterInterfaceId": "ri-bp1mxkc61ly0n ****" 、
"CreationTime": "2019-04-30T02:54:24Z" 、
"RouterType": "VRouter" 、
"OppositeInterfaceOwnerId": "" 、
"RouterId": "vrt-bp141no9pds2b ****" 、
"帯域幅": 0、
"OppositeInterfaceId": "ri-bp1vabte8nbde ****" 、
"EndTime": "2999-09-08T16:00:00Z" 、
"ChargeType": "AfterPay" 、
"OppositeAccessPointId": "ap-cn-hangzhou-xx-x" 、
"HasReservationData": false、
"CrossBorder": false、
"OppositeInterfaceBusinessStatus": "通常" 、
"スペック": "ネガティブ" 、
"OppositeRouterType": "VBR" 、
"役割": "AcceptingSide"
}
]
},
"PageNumber":1、
"RequestId": "217D8D94-C508-4285-8101-7DE3B53A88A5" 、
"PageSize": 10
}
--------------------------- describe_route_table
{
"TotalCount":1、
"PageNumber":1、
"RequestId": "CA6BBE52-DF5E-496A-93CF-9857AF22D2AC" 、
"PageSize":10、
"RouteTables": {
"RouteTable": [
{
"RouteTableId": "vtb-bp1s126yz0swp ****" 、
"RouteEntrys": {
"RouteEntry": []
},
"CreationTime": "2019-04-30T02:54:19Z" 、
"VSwitchIds": {
"VSwitchId": []
},
"ResourceGroupId": "",
"VRouterId": "vbr-bp1vudncgk9jt ****" 、
"RouteTableType": "システム"
}
]
}
}
--------------------------- connect_router_interface ---------------------------
{
"RequestId": "93476D4E-6C08-44B8-83E4-5759E1A08F29"
}
--------------------------- create_route_entry ---------------------------
{
"RequestId": "66D4F46B-5E0F-4565-8740-845EC26EBE00"
}
--------------------------- create_route_entry ---------------------------
{
"RequestId": "E1F99FEF-2499-40A7-84ED-6F9D440D4FF8"
}
--------------------------- delete_route_entry
{
"RequestId": "8C983886-F058-4234-A6D7-ECDEE2C2D945"
}
--------------------------- delete_route_entry
{
"RequestId": "DDEC56B9-CDD4-4D0A-B460-040B85B97FE9"
}
deactivate_router_interface --------------------------- deactivate_router_interface ---------------------------
{
"RequestId": "04069B7C-6A42-43F2-A086-50F802940045"
}
deactivate_router_interface --------------------------- deactivate_router_interface ---------------------------
{
"RequestId": "B2EBF829-E1C0-43E5-9BAD-DFFCBFA301F7"
}
--------------------------- delete_router_interface ---------------------------
{
"RequestId": "20EEC4A6-E468-4F3C-A743-89193F7504E1"
}
--------------------------- delete_router_interface ---------------------------
{
"RequestId": "59DCE168-B9CC-43A3-A54F-0D8C194BABE0"
}
--------------------------- delete_virtual_border_router ---------------------------
{
"RequestId": "E1D71EEC-FE9F-4834-8780-19EBBD91A638"
}