使用 API 在 MVE 與 AWS 之間建立 VXC
本主題說明使用 API 從 MVE 建立至 AWS 的 VXC 流程,包括如何查詢 AWS 位置,以及在特定 vNIC 上訂購 VXC。
您可以為 MVE 設定兩種類型的 AWS 連線:AWS Hosted VIF 與 AWS Hosted Connection。
您可以使用 connectType 屬性區分合作夥伴位置所支援的連線類型。Hosted VIF 連線為 connectType=AWS,Hosted Connection 為 connectType=AWSHC。
MVE 到 AWS 的部署包含下列工作:
-
查詢 AWS 位置詳細資料
若要建立到 AWS 的 VXC,您首先需要識別要連線之連接埠的
productUid。您可以使用
v2/dropdowns/partner/megaports端點查詢此連線 B 端的 AWS 位置。 -
建立並部署 VXC
識別出連接埠詳細資料後,您可以從 MVE 建立到 AWS 的 VXC。
組態詳細資料會在要求的 Body 中指定。您需要指定的一些關鍵資訊包括 MVE 的
productUid、AWS 連接埠的productUid,以及 AWS 帳戶 ID。
在開始之前,先取得有效的存取權杖。 如需詳細資訊,請參閱 建立 API 金鑰。
查詢 AWS 位置詳細資料
使用 API 查詢要連線之連接埠的 productUid。 回應包含可用連接埠的詳細資料。 您需要這些連接埠詳細資料來建立 VXC。
在 API 回應中,接受 VXC 的可用連接埠會顯示為 “vxcPermitted”: true。
查詢 AWS 位置詳細資料
-
展開左側導覽中的 Locations(位置) 資料夾,然後按一下 GET Partner Megaports(取得合作夥伴 Megaports)。
-
按一下 Send(送出) 以對 API 伺服器發出 GET 要求。
GET {baseUrl}/v2/dropdowns/partner/megaports此請求會傳回 Megaport 與雲端服務供應商的所有介面。您可以按一下放大鏡,並在搜尋欄位輸入位置、資料中心或其他參數來搜尋。
connectType 會指示雲端服務供應商。AWS 的 Hosted VIF 包含 “AWS”,Hosted Connection 則為 “AWSHC”。
您可以依
connectType與vxcPermitted篩選結果。GET {baseUrl}/v2/dropdowns/partner/megaports?connectType=AWS&vxcPermitted=true此範例使用區域 eu-west-2(London)中可接受 VXC 的連接埠(
“vxcPermitted”: true)。
{
"productUid": "b9dcbdca-b73a-4fc9-9ac9-98cecde81ba2",
"companyUid": "605cb850-dfb4-4a05-a171-8bf17757b3a2",
"companyName": "AWS",
"title": "EU (London) (eu-west-2)",
"locationId": 90,
"speed": 10000,
"maxVxcSpeed": 10000,
"vxcPermitted": true,
"diversityZone": null,
"rank": 378,
"lag_id": null,
"lag_primary": false,
"aggregation_id": null,
"connectType": "AWS"
},
建立並部署 VXC Hosted VIF
利用通訊埠詳細資料,從 MVE 建立到 AWS 的 VXC。
您需要在請求的 Body 中指定設定詳情。第一個 productUid 代表 MVE 的 ID,而 bEnd: productUid 則代表從合作夥伴 Megaports 查詢到的 AWS 通訊埠位置。您還需要在請求中提供 AWS 帳號。
此範例使用 Hosted VIF 連線類型,connectType=AWS。
提示
若要在下單前測試您的請求並查看價格細節,請使用 /v3/networkdesign/validate 端點,Body 內容相同。
建立 VXC
-
使用 POST Buy AWS - Hosted VIF (v3) 端點建立請求:
POST {baseUrl}/v3/networkdesign/buy -
於請求的 Body 中,填入 MVE 的
productUid、VXC 的名稱、AWS 通訊埠的productUid以及 AWS 帳戶 ID (ownerAccount)。 您也可以變更其他數值,例如頻寬限制、合約期間、VLAN ID、ASN 參數、authKey 及 IP 配置。vNIC 由vNicIndex決定,innerVlan 則指定此 vNIC 內部使用的 VLAN 號碼,此處例子為 103。備註
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": "Test AWS VIF MVE VXC",
"rateLimit": "100",
"term": 12,
"shutdown": false,
"promoCode": "promox3mnthfree2",
"aEnd": {
"vNicIndex":2,
"vlan": null,
"innerVlan": 103
},
"bEnd": {
"productUid": "{{ awsPortUid }}",
"partnerConfig": {
"connectType": "AWS",
"Name": "Test Megaport",
"type": "private",
"asn": 65105,
"ownerAccount": "XXXXXXXXXXXX",
"authKey": "123455",
"customerIpAddress": null,
"amazonIpAddress": null
}
}
}
]
}
]
發送請求後,當 VXC 訂購完成,您將收到成功回應。
以下為範例回應:
{
"message": "VXC [0d22feee-8d06-4041-98be-5b827c33c78a] created.",
"terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
"data": [
{
"createDate": 1709811450016,
"vxcOrderId": 139933,
"payerMegaPortId": 190079,
"nonPayerMegaPortId": 6199,
"payerMegaPortName": "MVE for VNIC config",
"nonPayerMegaPortName": "EU (London) (eu-west-2)",
"payerCompanyId": 1153,
"nonPayerCompanyId": 117,
"payerLocationId": 89,
"nonPayerLocationId": 89,
"salesId": null,
"payerCompanyName": "Megaport Lab",
"nonPayerCompanyName": "AWS",
"payerMegaPortNsId": 510708,
"nonPayerMegaPortNsId": 13055,
"payerVlanId": 0,
"nonPayerVlanId": 0,
"payerInnerVlanId": 103,
"nonPayerInnerVlanId": null,
"payerApproverName": "name",
"payerApproverId": number,
"nonPayerApproverName": "name",
"nonPayerApproverId": number,
"payerApproval": number,
"nonPayerApproval":number,
"fixedTerm": true,
"duration": 1,
"rollover": true,
"serviceName": "from MVE for VNIC config to EU (London) (eu-west-2)",
"payerStatus": "APPROVED",
"nonPayerStatus": "APPROVED",
"speed": 100,
"distanceBand": "METRO",
"intercapPath": "",
"awsId": null,
"promoCode": null,
"dealUid": null,
"rateType": "MONTHLY",
"vxcJTechnicalServiceId": 190085,
"vxcJTechnicalServiceUid": "0d22feee-8d06-4041-98be-5b827c33c78a",
"provisionDate": 1709811449985,
"orderType": "NEW",
"monthlyDiscountAmount": null,
"discountMonths": null,
"amazonDirectConnectConfigDto": {
"type": "private",
"asn": 65105,
"ownerAccount": "aws account ID",
"authKey": "123455",
"customerIpAddress": null,
"amazonIpAddress": null,
"prefixes": null,
"name": 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": "Test AWS VIF MVE VXC",
"name": "Test AWS VIF MVE VXC",
"secondaryName": null,
"technicalServiceId": 190085,
"technicalServiceUid": "0d22feee-8d06-4041-98be-5b827c33c78a",
"requestedDate": 1709811449985,
"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": 181633,
"billableUsageAlgorithm": null,
"productType": "VXC",
"provisioningStatus": "DEPLOYABLE",
"failedReason": null,
"inAdvanceBillingStatus": null,
"provisioningItems": [],
"tags": [],
"vxcDistanceBand": "METRO",
"intercapPath": "",
"marketplaceVisibility": true,
"vxcPermitted": true,
"vxcAutoApproval": false,
"createDate": 1709811450003,
"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": "AWS",
"payerConfig": {},
"nonPayerConfig": {},
"attributeTags": {},
"serviceLicense": null,
"originDomain": null,
"fullyApproved": true
}
]
}
VXC 現在會顯示在 Megaport Portal 中。
在此範例中,AWS Hosted VIF 將會顯示於 AWS portal 帳戶的 Direct Connect - Virtual Interfaces 下。帳戶持有人可以接受 Virtual Interface,並將其連接至 Virtual Private Gateway 或 Direct Connect Gateway,然後連通至其 VPC。
建立並部署 VXC Hosted Connection
利用通訊埠詳細資料,從 MVE 建立到 AWS 的 VXC。
您需要在請求的 Body 中指定設定詳情。第一個 productUid 代表 MVE 的 ID,而 bEnd: productUid 則代表從合作夥伴 Megaports 查詢到的 AWS 通訊埠位置。您還需要在請求中提供 AWS 帳號。
此範例使用 Hosted Connection 連線類型,connectType=AWSHC。
提示
若要在下單前測試您的請求並查看價格細節,請使用 /v3/networkdesign/validate 端點,Body 內容相同。
建立 VXC
-
使用 POST Buy AWS - Hosted Connection (v3) 端點建立請求:
POST {baseUrl}/v3/networkdesign/buy -
於請求的 Body 中,填入 MVE 的
productUid、VXC 的名稱、AWS 通訊埠的productUid以及 AWS 帳戶 ID (ownerAccount)。 您也可以變更其他數值,例如頻寬限制、合約期間、VLAN ID、ASN 參數、authKey 及 IP 配置。vNIC 由vNicIndex決定,innerVlan 則指定此 vNIC 內部使用的 VLAN 號碼,此處例子為 666。備註
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": "Test AWS over Vnic2",
"rateLimit": 100,
"term": 12,
"shutdown": false,
"promoCode": "promox3mnthfree2",
"aEnd": {
"vNicIndex":2,
"vlan":null,
"innerVlan":666
},
"bEnd": {
"productUid": "{{ awshcPortUid }}",
"partnerConfig": {
"connectType":"AWSHC",
"ownerAccount": "XXXXXXXXXXXX",
"name": "AWS link MVE link 2"
}
}
}
]
}
]
發送請求後,當 VXC 完成訂購時,您會收到一個成功的回應。
以下是一個範例回應:
{
"message": "VXC [5668c467-17eb-47e3-beba-87b9e7784a17] created.",
"terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
"data": [
{
"createDate": 1709812459883,
"vxcOrderId": 139936,
"payerMegaPortId": 190079,
"nonPayerMegaPortId": 114147,
"payerMegaPortName": "MVE for VNIC config",
"nonPayerMegaPortName": "EU (London) (eu-west-2)",
"payerCompanyId": 1153,
"nonPayerCompanyId": 117,
"payerLocationId": 89,
"nonPayerLocationId": 90,
"salesId": null,
"payerCompanyName": "Megaport Lab",
"nonPayerCompanyName": "AWS",
"payerMegaPortNsId": 510708,
"nonPayerMegaPortNsId": 271398,
"payerVlanId": 0,
"nonPayerVlanId": 0,
"payerInnerVlanId": 666,
"nonPayerInnerVlanId": null,
"payerApproverName": "David Sloan",
"payerApproverId": 41315,
"nonPayerApproverName": "David Sloan",
"nonPayerApproverId": 41315,
"payerApproval": number,
"nonPayerApproval": number,
"fixedTerm": true,
"duration": 1,
"rollover": true,
"serviceName": "from MVE for VNIC config to EU (London) (eu-west-2)",
"payerStatus": "APPROVED",
"nonPayerStatus": "APPROVED",
"speed": 100,
"distanceBand": "METRO",
"intercapPath": "",
"awsId": null,
"promoCode": null,
"dealUid": null,
"rateType": "MONTHLY",
"vxcJTechnicalServiceId": 190089,
"vxcJTechnicalServiceUid": "5668c467-17eb-47e3-beba-87b9e7784a17",
"provisionDate": 1709812459853,
"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": "Test AWS over Vnic2",
"name": "Test AWS over Vnic2",
"secondaryName": null,
"technicalServiceId": 190089,
"technicalServiceUid": "5668c467-17eb-47e3-beba-87b9e7784a17",
"requestedDate": 1709812459853,
"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": 181637,
"billableUsageAlgorithm": null,
"productType": "VXC",
"provisioningStatus": "DEPLOYABLE",
"failedReason": null,
"inAdvanceBillingStatus": null,
"provisioningItems": [],
"tags": [],
"vxcDistanceBand": "METRO",
"intercapPath": "",
"marketplaceVisibility": true,
"vxcPermitted": true,
"vxcAutoApproval": false,
"createDate": 1709812459869,
"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": "AWSHC",
"payerConfig": {},
"nonPayerConfig": {},
"attributeTags": {},
"serviceLicense": null,
"originDomain": null,
"fullyApproved": true
}
]
}
VXC 現在會出現在 Megaport Portal 中。
在此範例中,AWS Hosted Connection 會出現在 AWS 入口網站帳戶的 Direct Connect - connection 底下。帳戶擁有者可以接受 Hosted Connection,並建立一個 private、 一個 public 或一個 transit VIF,並將其連線到 Virtual Private Gateway 或 Direct Connect Gateway 或 Transit Gateway,接著再連線到其 VPCs。