跳转至

使用 API 在 MVE 与 Google Cloud 之间创建 VXC

本主题介绍使用 API 从 MVE 到 Google Cloud 服务创建 VXC 的流程。配置分为两步:首先使用 Google 配对密钥(pairing key)查询连接详细信息,然后在你的 MVE 上为特定 vNIC 创建 VXC。

注意

在创建到 Google Cloud 的连接之前,你需要在 Google Cloud Console 或 gcloud CLI 中创建 Partner Interconnect 的 VLAN 附加项。作为创建该附加项的一部分,系统会提供一个包含 Google 连接详细信息的配对密钥(pairing key)。

从 MVE 到 Google Cloud 的部署包括以下任务:

  1. 在 Google Cloud Console 或 gcloud CLI 中创建 Partner Interconnect 的 VLAN 附加项

    在 Google Cloud Console 或 gcloud CLI 中创建 Partner Interconnect 的 VLAN 附加项。复制在创建该附加项时提供的配对密钥(pairing key)。 有关更多详细信息,请参阅 Google 文档: Google Partner Interconnects.

  2. 验证 Google 配对密钥

    当订购 Google Cloud 服务时,请使用配对密钥(pairing key),并确保有一个空闲 端口 可用于连接。

    Google 要求 VXC 的带宽必须与配对密钥查询返回列表中的预定义带宽之一匹配。

  3. 创建并部署 VXC

    使用已验证的配对密钥(pairing key)和 端口 详细信息,从 MVE 到 Google Cloud 创建 VXC。

    配置详细信息在请求体中指定。

在开始之前,请获取有效的访问令牌(access token)。有关更多信息,请参阅 创建 API Key

验证 Google 配对密钥

使用 API 验证 Google Cloud 配对密钥(pairing key)。响应包含关联 端口 和对等体的详细信息。你需要 端口 详细信息来创建 VXC。

在 API 响应中,可用 端口 的表示为 "vxc":null,具有已分配值的 端口 不可用。

Google 要求 VXC 的带宽必须与配对密钥查询返回列表中的预定义带宽之一匹配。

验证配对密钥

  • 使用 GET Look Up Google Pairing Key(查询 Google 配对密钥) API,通过配对密钥查询 Google Cloud 位置详细信息:

    GET {baseUrl}/v2/secure/google/{pairing_key}

以下示例展示了包含可用 端口(vxc = null)的配对密钥响应。

{
    "message": "查找成功",
    "terms": "本数据受可接受使用政策 https://www.megaport.com/legal/acceptable-use-policy 的约束",
    "data": {
       "bandwidths": [
           50,
           100,
           200,
           300,
           400,
           500,
           1000,
           2000,
           5000,
           10000,
           20000,
           50000
       ],
       "megaports": [
           {
               "productId": 28845,
               "productUid": "5b693428-8cc6-4634-a44a-2e9e6ba556af",
               "name": "Stockholm (arn-zone1-208)",
               "nServiceId": 65391,
               "description": "Google inc.. 位于 Interxion STO5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 10000,
               "locationId": 98,
               "state": null,
               "country": "瑞典",
               "port": 28845,
               "vxc": null
           },
           {
               "productId": 45873,
               "productUid": "832a017d-74ca-45e8-a225-e3d794a079d7",
               "name": "Zurich (zrh-zone1-81)",
               "nServiceId": 103010,
               "description": "Google inc.. 位于 Interxion ZH1",
               "companyId": 90,
               "companyUid": "{{ companyUid }}",
               "companyName": "Google inc..",
               "portSpeed": 10000,
               "locationId": 557,
               "state": null,
               "country": "瑞士",
               "port": 45873,
               "vxc": null
           },
           {
               "productId": 81531,
               "productUid": "6e587057-f012-4600-896f-9ee171fdd444",
               "name": "Frankfurt (fra-zone1-683)",
               "nServiceId": 181786,
               "description": "Google inc.. 位于 Equinix FR5",
               "companyId": 90,
               "companyUid": "{{ companyUid }}",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 131,
               "state": null,
               "country": "德国",
               "port": 81531,
               "vxc": null
           },
           {
               "productId": 84769,
               "productUid": "f25e581b-3c0e-4069-8147-78cce082357e",
               "name": "Amsterdam (ams-zone1-1236)",
               "nServiceId": 188925,
               "description": "Google inc.. 位于 Equinix AM1",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 85,
               "state": null,
               "country": "荷兰",
               "port": 84769,
               "vxc": null
           },
           {
               "productId": 95335,
               "productUid": "9fde43f5-2f00-41ed-bb60-45c446ea43df",
               "name": "London (lhr-zone1-832)",
               "nServiceId": 217347,
               "description": "Google inc.. 位于 Equinix LD5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 90,
               "state": null,
               "country": "英国",
               "port": 95335,
               "vxc": null
           },
           {
               "productId": 153623,
               "productUid": "ae8d21b5-2db6-4f72-a465-624c914f4918",
               "name": "Paris (cdg-zone1-1536)",
               "nServiceId": 391882,
               "description": "Google inc.. 位于 Interxion PAR5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 527,
               "state": null,
               "country": "法国",
               "port": 153623,
               "vxc": null
           },
           {
               "productId": 162678,
               "productUid": "7d1cca03-eb3d-4be4-a145-de8e8dffec3f",
               "name": "Frankfurt (fra-zone1-58)",
               "nServiceId": 420550,
               "description": "Google inc.. 位于 Interxion FRA6",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 130,
               "state": null,
               "country": "德国",
               "port": 162678,
               "vxc": null
           }
       ],
       "resource_type": "csp_connection",
       "ports": [
           {
               "service_id": 38286,
               "vxc_service_ids": []
           },
           {
               "service_id": 65391,
               "vxc_service_ids": []
           },
           {
               "service_id": 103010,
               "vxc_service_ids": []
           },
           {
               "service_id": 125905,
               "vxc_service_ids": []
           },
           {
               "service_id": 154694,
               "vxc_service_ids": []
           },
           {
               "service_id": 181786,
               "vxc_service_ids": []
           },
           {
               "service_id": 188925,
               "vxc_service_ids": []
           },
           {
               "service_id": 217347,
               "vxc_service_ids": []
           },
           {
               "service_id": 391882,
               "vxc_service_ids": []
           },
           {
               "service_id": 420550,
               "vxc_service_ids": []
           }
       ]
   }
}

创建并部署一个 VXC 到指定的 vNIC

使用已验证的配对密钥和端口详情,从 MVE 创建到 Google Cloud 的 VXC。

您需要在请求的 Body 中指定配置信息。第一个 productUid 标识 MVE 的 ID,bEnd: productUid 标识配对密钥中的 Google Cloud 位置。同时,您还需要在请求中提供您的 Google 配对密钥。只需指定 aEnd 的 innerVlan。

提示

若要在下单前测试您的请求并查看定价详情,请使用 /v3/networkdesign/validate 端点,并采用相同的 Body 配置。

创建 VXC

  1. 使用 POST Create VXC to Google Cloud (v3) 端点创建请求:

    POST {baseUrl}/v3/networkdesign/buy
    
  2. 使用 MVE 的 productUid、VXC 的名称、Google Cloud 端口的 productUid、将 vNicIndex 设置为 2(界面3),以及配对密钥,更新请求的 Body。

    注意

    vNIC 编号对应以下 MVE 接口:

    • vNIC 0 = 在 MVE 上的接口 1
    • vNIC 1 = 在 MVE 上的接口 2
    • vNIC 2 = 在 MVE 上的接口 3
    • vNIC 3 = 在 MVE 上的接口 4
    • vNIC 4 = 在 MVE 上的接口 5

    以下是一个示例请求:

[
{
 "productUid": "{{ mveid }}",
 "associatedVxcs": [
  {
   "productName": "VXC to test VNIC",
   "rateLimit": 100,
   "term": 12,
   "shutdown": false,
   "promoCode": "promox3mnthfree2",
   "aEnd": {
     "vNicIndex":2,
     "innerVlan": 144
   },
   "bEnd": {
     "productUid" : "{{ googleProductUid }}",
     "partnerConfig": {
       "connectType": "GOOGLE",
       "pairingKey": "{{ googlePairingKey }}"
     }
   }
  }
 ]
}
]

完成并部署 VXC 后,返回 Google Cloud 控制台并接受该挂载。

发送请求后,当 VXC 已订购时,您会收到成功响应。

以下是一个示例响应:

{
    "message": "VXC [27139b23-0afe-4e48-9322-eea95d2d6b74] 已创建。",
    "terms": "本数据受可接受使用政策 https://www.megaport.com/legal/acceptable-use-policy 的约束",
    "data": [
       {
           "createDate": 1709823461856,
           "vxcOrderId": 139952,
           "payerMegaPortId": 190079,
           "nonPayerMegaPortId": 95335,
           "payerMegaPortName": "MVE for VNIC config",
           "nonPayerMegaPortName": "London (lhr-zone1-832)",
           "payerCompanyId": 1153,
           "nonPayerCompanyId": 90,
           "payerLocationId": 89,
           "nonPayerLocationId": 90,
           "salesId": null,
           "payerCompanyName": "Megaport Lab",
           "nonPayerCompanyName": "Google inc..",
           "payerMegaPortNsId": 510708,
           "nonPayerMegaPortNsId": 217347,
           "payerVlanId": 0,
           "nonPayerVlanId": 0,
           "payerInnerVlanId": 144,
           "nonPayerInnerVlanId": null,
           "payerApproverName": "David Sloan",
           "payerApproverId": 41315,
           "nonPayerApproverName": "David Sloan",
           "nonPayerApproverId": 41315,
           "payerApproval": 1709823461831,
           "nonPayerApproval": 1709823461850,
           "fixedTerm": true,
           "duration": 1,
           "rollover": true,
           "serviceName": "from MVE for VNIC config to London (lhr-zone1-832)",
           "payerStatus": "APPROVED",
           "nonPayerStatus": "APPROVED",
           "speed": 100,
           "distanceBand": "METRO",
           "intercapPath": "",
           "awsId": null,
           "promoCode": null,
           "dealUid": null,
           "rateType": "MONTHLY",
           "vxcJTechnicalServiceId": 190111,
           "vxcJTechnicalServiceUid": "27139b23-0afe-4e48-9322-eea95d2d6b74",
           "provisionDate": 1709823461826,
           "orderType": "NEW",
           "monthlyDiscountAmount": null,
           "discountMonths": null,
           "amazonDirectConnectConfigDto": null,
           "amsixConnectConfigDto": null,
           "sdrcProvItem": null,
           "rate": null,
           "setup": null,
           "asn": null,
           "bgpPassword": null,
           "usageAlgorithm": "POST_PAID_HOURLY_SPEED_METRO_VXC",
           "costCentre": null,
           "azureServiceKey": null,
           "oracleVirtualCircuitId": null,
           "serviceKey": null,
           "vxc": {
               "serviceName": "VXC to test VNIC",
               "name": "VXC to test VNIC",
               "secondaryName": null,
               "technicalServiceId": 190111,
               "technicalServiceUid": "27139b23-0afe-4e48-9322-eea95d2d6b74",
               "requestedDate": 1709823461826,
               "configuredDate": null,
               "currentEstimatedDelivery": null,
               "companyName": "Megaport Lab",
               "companyId": 1153,
               "billingContactName": null,
               "billingContactId": null,
               "adminContactName": null,
               "adminContactId": null,
               "technicalContactName": null,
               "technicalContactId": null,
               "salesName": null,
               "salesId": null,
               "billableId": 181659,
               "billableUsageAlgorithm": null,
               "productType": "VXC",
               "provisioningStatus": "DEPLOYABLE",
               "failedReason": null,
               "inAdvanceBillingStatus": null,
               "provisioningItems": [],
               "tags": [],
               "vxcDistanceBand": "METRO",
               "intercapPath": "",
               "marketplaceVisibility": true,
               "vxcPermitted": true,
               "vxcAutoApproval": false,
               "createDate": 1709823461844,
               "terminationDate": null,
               "contractStartDate": null,
               "contractTermMonths": 1,
               "rateType": "MONTHLY",
               "trialAgreement": false,
               "payerCompanyId": null,
               "nonPayerCompanyId": null,
               "minimumSpeed": null,
               "maximumSpeed": null,
               "rateLimit": 100,
               "errorMessage": null,
               "lagId": null,
               "aggregationId": null,
               "lagPrimary": null,
               "market": "UK",
               "accountManager": null,
               "promptUid": null,
               "components": [],
               "attributes": [],
               "aLocation": null,
               "bLocation": null,
               "aMetro": null,
               "aCountry": null,
               "aLocationId": null,
               "bLocationId": null,
               "bMetro": null,
               "bCountry": null,
               "attributeTags": {},
               "createdBy": "b0dedbd2-ecc7-4bad-a13b-6c34b4005115",
               "buyoutPort": null,
               "virtual": false,
               "locked": false,
               "adminLocked": false,
               "bgpShutdownDefault": false,
               "originDomain": null
           },
           "connectType": "GOOGLE",
           "payerConfig": {},
           "nonPayerConfig": {},
           "attributeTags": {},
           "serviceLicense": null,
           "originDomain": null,
           "fullyApproved": true
       }
   ]
}