action.skip

Creación de un VXC entre un MVE y Google Cloud con la API

Este tema describe el procedimiento de la API para crear un VXC desde un MVE hacia los servicios de Google Cloud. La configuración es un proceso de dos pasos: primero, consultas los detalles de conexión con la clave de emparejamiento de Google y, luego, creas el VXC hacia una vNIC específica en tu MVE.

Nota

Antes de poder crear una conexión a Google Cloud, necesitas crear un adjunto de Partner Interconnect en Google Cloud Console o gcloud CLI. Como parte de la creación del adjunto, se te proporciona una clave de emparejamiento que contiene los detalles de conexión de Google.

La implementación del MVE hacia Google Cloud incluye estas tareas:

  1. Crear un adjunto de Partner Interconnect en Google Cloud Console o gcloud CLI

    Crea un adjunto de Partner Interconnect en Google Cloud Console o gcloud CLI. Copia la clave de emparejamiento que se proporciona como parte de la creación del adjunto. Para más detalles, consulta la documentación de Google en Google Partner Interconnects.

  2. Validar la clave de emparejamiento de Google

    Al pedir un servicio de Google Cloud, usa la clave de emparejamiento y asegúrate de que haya un puerto libre para una conexión.

    Google requiere que el ancho de banda del VXC coincida con uno de los anchos de banda predefinidos en la lista devuelta por la consulta de la clave de emparejamiento.

  3. Crear y aprovisionar un VXC

    Con la clave de emparejamiento validada y los detalles del puerto, crea el VXC hacia Google Cloud desde el MVE.

    Los detalles de configuración se especifican en el cuerpo de la solicitud.

Antes de comenzar, obtén un token de acceso válido. Para más información, consulta Creación de una clave de API.

Validar la clave de emparejamiento de Google

Usa la API para validar una clave de emparejamiento de Google Cloud. La respuesta incluye detalles de los puertos y los pares asociados. Necesitas los detalles del puerto para crear el VXC.

En la respuesta de la API, los puertos disponibles aparecen como "vxc":null y los puertos con un valor asignado no están disponibles.

Google requiere que el ancho de banda del VXC coincida con uno de los anchos de banda predefinidos en la lista devuelta por la consulta de la clave de emparejamiento.

Para validar la clave de emparejamiento

  • Usa la GET Consultar clave de emparejamiento de Google (GET Look Up Google Pairing Key) API para consultar los detalles de la ubicación de Google Cloud con la clave de emparejamiento:

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

Aquí tienes una respuesta de ejemplo para una clave de emparejamiento con un puerto disponible (vxc = null).

{
    "message": "Successful lookup",
    "terms": "This data is subject to the Acceptable Use Policy 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.. at Interxion STO5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 10000,
               "locationId": 98,
               "state": null,
               "country": "Sweden",
               "port": 28845,
               "vxc": null
           },
           {
               "productId": 45873,
               "productUid": "832a017d-74ca-45e8-a225-e3d794a079d7",
               "name": "Zurich (zrh-zone1-81)",
               "nServiceId": 103010,
               "description": "Google inc.. at Interxion ZH1",
               "companyId": 90,
               "companyUid": "{{ companyUid }}",
               "companyName": "Google inc..",
               "portSpeed": 10000,
               "locationId": 557,
               "state": null,
               "country": "Switzerland",
               "port": 45873,
               "vxc": null
           },
           {
               "productId": 81531,
               "productUid": "6e587057-f012-4600-896f-9ee171fdd444",
               "name": "Frankfurt (fra-zone1-683)",
               "nServiceId": 181786,
               "description": "Google inc.. at Equinix FR5",
               "companyId": 90,
               "companyUid": "{{ companyUid }}",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 131,
               "state": null,
               "country": "Germany",
               "port": 81531,
               "vxc": null
           },
           {
               "productId": 84769,
               "productUid": "f25e581b-3c0e-4069-8147-78cce082357e",
               "name": "Amsterdam (ams-zone1-1236)",
               "nServiceId": 188925,
               "description": "Google inc.. at Equinix AM1",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 85,
               "state": null,
               "country": "Netherlands",
               "port": 84769,
               "vxc": null
           },
           {
               "productId": 95335,
               "productUid": "9fde43f5-2f00-41ed-bb60-45c446ea43df",
               "name": "London (lhr-zone1-832)",
               "nServiceId": 217347,
               "description": "Google inc.. at Equinix LD5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 90,
               "state": null,
               "country": "United Kingdom",
               "port": 95335,
               "vxc": null
           },
           {
               "productId": 153623,
               "productUid": "ae8d21b5-2db6-4f72-a465-624c914f4918",
               "name": "Paris (cdg-zone1-1536)",
               "nServiceId": 391882,
               "description": "Google inc.. at Interxion PAR5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 527,
               "state": null,
               "country": "France",
               "port": 153623,
               "vxc": null
           },
           {
               "productId": 162678,
               "productUid": "7d1cca03-eb3d-4be4-a145-de8e8dffec3f",
               "name": "Frankfurt (fra-zone1-58)",
               "nServiceId": 420550,
               "description": "Google inc.. at Interxion FRA6",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 130,
               "state": null,
               "country": "Germany",
               "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": []
           }
       ]
   }
}

Crear y aprovisionar un VXC a una vNIC específica

Con la clave de emparejamiento validada y los detalles del puerto, crea el VXC hacia Google Cloud desde el MVE.

Debes especificar los detalles de configuración en el cuerpo de la solicitud. El primer productUid identifica el ID del MVE y bEnd: productUid identifica la ubicación de Google Cloud obtenida de la clave de emparejamiento. También debes incluir tu clave de emparejamiento de Google en la solicitud. Solo es necesario especificar el innerVlan de aEnd.

Consejo

Para probar tu solicitud antes de ordenar y ver los detalles de precios, usa el endpoint /v3/networkdesign/validate con la misma configuración en el Body.

Para crear un VXC

  1. Crea una solicitud usando el endpoint POST Create VXC to Google Cloud (v3):

    POST {baseUrl}/v3/networkdesign/buy
    
  2. Actualiza el cuerpo de la solicitud con el productUid del MVE, el nombre del VXC, el productUid del puerto de Google Cloud, establece vNicIndex en 2 (interfaz 3) y la clave de emparejamiento.

    Nota

    El número de vNIC corresponde a las siguientes interfaces de MVE:

    • vNIC 0 = interfaz 1 en el MVE
    • vNIC 1 = interfaz 2 en el MVE
    • vNIC 2 = interfaz 3 en el MVE
    • vNIC 3 = interfaz 4 en el MVE
    • vNIC 4 = interfaz 5 en el MVE

    A continuación un ejemplo de solicitud:

[
{
 "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 }}"
     }
   }
  }
 ]
}
]

Una vez que hayas completado y aprovisionado el VXC, regresa a Google Cloud Console y acepta el adjunto.

Tras enviar la solicitud, recibirás una respuesta exitosa cuando el VXC haya sido ordenado.

A continuación un ejemplo de respuesta:

{
    "message": "VXC [27139b23-0afe-4e48-9322-eea95d2d6b74] created.",
    "terms": "This data is subject to the Acceptable Use Policy 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
       }
   ]
}