すべてのプロダクト
Search
ドキュメントセンター

:同じリージョンとAlibaba Cloudアカウントに属するVPCにVBRを接続する

最終更新日:Jan 02, 2024

このトピックでは、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はイニシエータとして機能し、アクティブ状態でなければなりません。

手順

  1. ダウンロードしたSDKディレクトリで、$aliyun-openapi-python-sdk-examples\sdk_examples\examples\ecフォルダーを開きます。
  2. テキストエディターでec_vbr_vpc.pyファイルを開きます。 必要なパラメーターを設定し、設定を保存してから、エディターを終了します。
    このトピックのサンプルコードには、次の操作が含まれます。
    1. VBRを作成します。
    2. 開始側ルーターのインターフェイスを作成します。
    3. レシーバールーターのインターフェイスを作成します。
    4. 開始側ルーターインターフェイスに関する情報を変更します。
    5. レシーバールーターインターフェイスに関する情報を変更します。
    6. 開始側ルーターインターフェイスに関する情報を照会します。
    7. レシーバールーターインターフェイスに関する情報を照会します。
    8. VBRのルートテーブルIDを照会します。
    9. 開始側ルーターインターフェイスを受信側ルーターインターフェイスに接続します。
    10. 次のホップが開始側ルーターインターフェイスであるルートを作成します。
    11. 次のホップがレシーバールーターインターフェイスであるルートを作成します。
    12. 次のホップがレシーバールーターインターフェイスであるルートを削除します。
    13. 次のホップが開始側ルーターインターフェイスであるルートを削除します。
    14. 開始側ルーターインターフェイスを無効にします。
    15. レシーバールーターインターフェイスを無効にします。
    16. 開始側ルーターインターフェイスを削除します。
    17. レシーバールーターインターフェイスを削除します。
    18. 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())
                            
  3. 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 ---------------------------
{
  &quot;TotalCount&quot;: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 ---------------------------
{
  &quot;TotalCount&quot;: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
{
  &quot;TotalCount&quot;: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"
}