action.skip

Création d’un VXC entre un MVE et Google Cloud avec l’API

Ce sujet décrit la procédure API pour créer un VXC d’un MVE vers les services Google Cloud. La configuration se fait en deux étapes: d’abord, vous recherchez les détails de connexion avec la clé de couplage Google, puis vous créez le VXC vers un vNIC spécifique sur votre MVE.

Remarque

Avant de pouvoir créer une connexion à Google Cloud, vous devez créer une attache Partner Interconnect dans Google Cloud Console ou gcloud CLI. Dans le cadre de la création de l’attache, une clé de couplage vous est fournie contenant les détails de connexion de Google.

Le déploiement de MVE vers Google Cloud inclut ces tâches:

  1. Créer une attache Partner Interconnect dans Google Cloud Console ou gcloud CLI

    Créez une attache Partner Interconnect dans Google Cloud Console ou gcloud CLI. Copiez la clé de couplage qui est fournie dans le cadre de la création de l’attache. Pour plus de détails, consultez la documentation Google sur les Google Partner Interconnects.

  2. Valider la clé de couplage Google

    Lors de la commande d’un service Google Cloud, utilisez la clé de couplage et assurez-vous qu’il y a un port libre pour une connexion.

    Google exige que la bande passante sur le VXC corresponde à l’une des bandes passantes prédéfinies dans la liste retournée par la recherche de la clé de couplage.

  3. Créer et déployer un VXC

    Avec la clé de couplage validée et les détails du port, créez le VXC vers Google Cloud depuis le MVE.

    Les détails de configuration sont spécifiés dans le corps de la requête.

Avant de commencer, obtenez un jeton d’accès valide. Pour plus d’informations, consultez Création d’une clé API.

Valider la clé de couplage Google

Utilisez l’API pour valider une clé de couplage Google Cloud. La réponse inclut les détails des ports et des pairs associés. Vous avez besoin des détails du port pour créer le VXC.

Dans la réponse API, les ports disponibles sont listés comme "vxc":null et les ports avec une valeur assignée ne sont pas disponibles.

Google exige que la bande passante sur le VXC corresponde à l’une des bandes passantes prédéfinies dans la liste retournée par la recherche de la clé de couplage.

Pour valider la clé de couplage

  • Utilisez l’API GET Look Up Google Pairing Key pour rechercher les détails de l’emplacement Google Cloud avec la clé de couplage:

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

Voici un exemple de réponse pour une clé de couplage avec un port disponible (vxc = null).

{
    "message": "Successful lookup",
    "terms": "These data are 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": []
           }
       ]
   }
}

Créer et déployer un VXC vers un vNIC spécifique

Avec la clé de jumelage validée et les détails du port, créez le VXC vers Google Cloud depuis le MVE.

Vous spécifiez les détails de configuration dans le corps (Body) de la requête. Le premier productUid identifie l’ID du MVE et le bEnd: productUid identifie l’emplacement Google Cloud issu de la clé de jumelage. Vous devez également fournir votre clé de jumelage Google dans la requête. Seul l’aEnd innerVlan doit être spécifié.

Conseil

Pour tester votre requête avant de passer la commande et voir les détails de tarification, utilisez le point de terminaison /v3/networkdesign/validate avec la même configuration du corps (Body).

Pour créer un VXC

  1. Créez une requête avec le point de terminaison POST Create VXC to Google Cloud (v3):

    POST {baseUrl}/v3/networkdesign/buy
    
  2. Mettez à jour le corps (Body) de la requête avec le productUid du MVE, le nom du VXC, le productUid du port Google Cloud, définissez le vNicIndex à 2 (interface 3), et la clé de jumelage.

    Remarque

    Le numéro vNIC concerne les interfaces MVE suivantes:

    • vNIC 0 = interface 1 sur le MVE
    • vNIC 1 = interface 2 sur le MVE
    • vNIC 2 = interface 3 sur le MVE
    • vNIC 3 = interface 4 sur le MVE
    • vNIC 4 = interface 5 sur le MVE

    Voici un exemple de requête:

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

Une fois que vous avez terminé et déployé le VXC, revenez dans la Google Cloud Console et acceptez l’attachement.

Après l’envoi de la requête, vous recevrez une réponse réussie lorsque le VXC aura été commandé.

Voici un exemple de réponse:

{
    "message": "VXC [27139b23-0afe-4e48-9322-eea95d2d6b74] created.",
    "terms": "These data are 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
       }
   ]
}