APIを使用したMVEとGoogle Cloud間でのVXC作成
このトピックでは、MVEからGoogle CloudサービスへのVXCを作成するAPI手順について説明します。設定は2段階のプロセスです。最初にGoogleのペアリングキーを使用して接続の詳細を調べ、その後、MVEの特定のvNICにVXCを作成します。
注記
Google Cloudへの接続を作成する前に、Google Cloud Consoleまたはgcloud CLIでパートナーインターコネクトアタッチメントを作成する必要があります。アタッチメント作成の一環として、Google接続の詳細を含むペアリングキーが提供されます。
MVEからGoogle Cloudへのデプロイメントには次のタスクが含まれます:
-
Google Cloud Consoleまたはgcloud CLIでのパートナーインターコネクトアタッチメントの作成
Google Cloud Consoleまたはgcloud CLIでパートナーインターコネクトアタッチメントを作成します。アタッチメント作成の一部として提供されるペアリングキーをコピーします。 詳細については、Google Partner Interconnectsに関するGoogleのドキュメントを参照してください。
-
Googleペアリングキーの検証
Google Cloudサービスを注文する際に、ペアリングキーを使用して、接続のための空きポートがあることを確認します。
Googleは、ペアリングキーのルックアップにより返されたリストの中の事前定義された帯域幅とVXCの帯域幅が一致することを要求しています。
-
VXCの作成とデプロイ
検証済みのペアリングキーとポート詳細を用いて、MVEからGoogle CloudへのVXCを作成します。
構成の詳細はリクエストのボディに指定されます。
開始する前に、有効なアクセストークンを取得してください。詳細については、APIキーの作成を参照してください。
Googleペアリングキーの検証
Google Cloudペアリングキーを検証するためにAPIを使用します。レスポンスには関連するポートとピアの詳細が含まれています。VXCを作成するためにポートの詳細が必要です。
APIレスポンスでは、利用可能なポートは"vxc":nullとしてリストされ、値が割り当てられているポートは利用できません。
Googleは、ペアリングキーのルックアップから返されるリスト内の事前定義された帯域幅とVXCの帯域幅が一致することを要求しています。
ペアリングキーを検証する方法
-
GET Look Up Google Pairing Key APIを使用して、ペアリングキーでGoogle Cloudロケーションの詳細を調べます。
GET {baseUrl}/v2/secure/google/{pairing_key}
こちらは、利用可能なポート(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": []
}
]
}
}
特定の vNIC に VXC を作成および展開する
検証済みのペアリングキーとポートの詳細を使用して、MVE から Google Cloud への VXC を作成します。
リクエストの Body に構成の詳細を指定します。最初の productUid は MVE の ID を識別し、bEnd: productUid はペアリングキーからの Google Cloud ロケーションを識別します。リクエストには Google ペアリングキーも指定する必要があります。aEnd の innerVlan のみ指定すれば十分です。
ヒント
注文前にリクエストをテストし価格詳細を確認するには、同じ Body 構成で /v3/networkdesign/validate エンドポイントを使用してください。
VXC を作成するには
-
POST Create VXC to Google Cloud (v3) エンドポイントでリクエストを作成します:
POST {baseUrl}/v3/networkdesign/buy -
リクエストの Body を更新して、MVE の
productUid、VXC の名前、Google Cloud ポートのproductUid、vNicIndexを 2(インターフェース 3)に設定し、ペアリングキーを指定します。
注記
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] 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
}
]
}