作为服务提供商使用 Megaport 的 API 管理连接
服务提供商可以将 Megaport 的功能无缝集成到其平台中。他们可以控制客户对其接入点(on-ramp)的访问,例如 Ports。
服务提供商可以使用服务密钥(service key)来管理客户访问,并将其安全连接到接入点。他们可以设置特定的速率限制,并使用 VLAN 对客户流量进行分段。
服务密钥是一种由一个 Megaport 账户持有人提供给另一位 Megaport 账户持有人的代码,用于将两个彼此独立的企业连接在一起。拥有各自独立 Megaport 账户的客户可以通过 Megaport 网络将各自的 Ports、MCR 或 MVE 相互连接,从而实现企业对企业的 VXC。
在允许客户使用服务密钥连接到接入点之前,服务提供商必须先连接到 Megaport 网络。连接完成后,需要:
- 决定哪些连接将用作接入点
- 将这些接入点位置映射到其自定义的区域或分区
- 考虑容量和多样性分区,以进行冗余管理
本主题介绍作为服务提供商,如何使用 Megaport API 降低人工操作,并加速服务开通,从而更容易向客户销售私有连接。
场景
QuantumGPU 是一家小型服务提供商公司,总部位于美国加利福尼亚州洛杉矶,提供自助、按需的 GPU 即服务(GPUaaS)平台。QuantumGPU 在不同地域为企业提供 GPU 加速计算,当前运营的 Ports 如下:
- 美国洛杉矶的 2 个 Ports(Equinix LA1 和 CoreSite LA1)
- 美国纽约的 1 个 Port(Telehouse)
- 英国伦敦的 1 个 Port(Telehouse North)
- 日本大阪的 1 个 Port(Equinix OS1)
- 澳大利亚悉尼的 1 个 Port(Global Switch Sydney West)

QuantumGPU 需要控制客户如何连接到 Ports,并使用 API 实现自动化。
QuantumGPU(服务提供商)计划实施以下场景:

相关术语
在阅读本主题前,请先熟悉以下术语:
Megaport Cloud Router (MCR)
MCR 是一项托管虚拟路由器服务,可在全球范围内的 Megaport 软件定义网络(SDN)上建立三层连通性。MCR 实例在全球关键路由区域的数据中心中预配置。MCR 可实现多云或混合云网络、网络服务提供商与云服务提供商之间的数据传输。
Megaport Virtual Edge (MVE)
MVE 是一个按需、供应商中立的网络功能虚拟化 (NFV) 平台,可在 Megaport 的全球软件定义网络 (SDN) 的边缘为网络服务提供虚拟基础设施。 通过 Megaport Virtual Edge,SD-WAN 和 NGFW 等网络技术直接托管在 Megaport 的全球网络上。
On-ramp
接入通道是到服务提供商可用资源的直接、私有连接,例如通过 Megaport 连接。为确保连接快速且可靠,服务提供商会将这些资源映射到其区域或可用区,设置速率限制,管理按客户划分的 VLAN 容量等。
Port
Port 是连接到 Megaport 的全球软件定义网络(SDN)的高速以太网接口。Ports 提供 1 Gbps、10 Gbps、100 Gbps 或更高的速率选项,具体取决于所在位置和服务可用性。
端口多样性 (Port diversity)
Port 多样性通过在单个 Megaport 站点内的不同物理设备上提供 Port 服务,提高网络的健壮性。Port 会被分配到多样性区域。多样性区域将同一站点内的设备分组,以确保服务被开通在物理上相互独立的设备上,并始终保持分离。
服务密钥 (Service key)
服务密钥是一种由一个 Megaport 账户持有人提供给另一位 Megaport 账户持有人的代码,用于将两个彼此独立的企业连接在一起。拥有各自独立 Megaport 账户的客户可以通过 Megaport 网络将各自的 Ports、MCR 或 MVE 相互连接,从而实现企业对企业的 VXC。
Virtual Cross Connect (VXC)
VXC 是一条直连的二层以太网电路,在 Megaport 网络上的任意位置之间提供私有、灵活且按需的连接,支持从 1 Mbps 到高容量的多 Gbps 带宽,在部分区域还提供更高带宽级别。
作为 API 用户进行认证
在使用 Megaport API 之前,必须先使用访问令牌进行认证。在生成访问令牌之前,需要先在 Megaport Portal 中创建一个 API 密钥。有关详细信息,请参阅创建 API 密钥。
API 密钥由 client ID 和 client secret 组成。可用它来生成用于作为 API 用户进行认证的访问令牌。
访问令牌的有效期为 24 小时,之后需要重新生成。与 Megaport API 的集成需要考虑这一点。有关详细信息,请参阅生成访问令牌。
管理接入点
当客户请求与您建立连接时,您需要将该连接的区域或分区映射到物理接入点,以生成服务密钥。
本节介绍如何通过 API 调用,将用户的服务区域或分区映射到您的 Megaport 接入点。Megaport 的位置与产品标识符是固定的,因此可以安全地缓存或存储,无需每次刷新。
以下说明展示如何使用 Postman 和 Megaport API 集合来完成此操作。有关 Postman 设置的更多信息,请参阅Megaport API 概览。
先决条件
本节假设您已:
- 将 Megaport 集成到您的平台。有关更多信息,请参阅将 Megaport 集成到您的平台。
- 以 API 用户身份完成认证。有关更多信息,请参阅作为 API 用户进行认证。
列出接入点位置
本任务说明如何使用位置标识符查询并列出可用的接入点位置(本场景中为 Port 所在位置)。
列出接入点位置的方法
注意
此示例使用 Ports,但您也可以使用 MCRs 和 MVEs。
-
当客户请求连接到接入点(例如 Port)后,使用 Get Product List API(获取产品列表 API) 并通过
"provisioningStatus": "LIVE"查询您拥有的所有在用 Ports。GET /v2/products?provisioningStatus=LIVE -
使用 country 值对响应进行筛选并列出。
"locationId": 60, "location": "CoreSite LA1", "locationDetail": { "name": "CoreSite LA1", "city": "Los Angeles", "metro": "Los Angeles", "country": "USA"在我们的场景中,列表如下:
- USA
- UK
- Japan
- Australia
-
在您的客户选择地区(美国)后,请根据 metro 值进行筛选和列出响应结果。
"locationId": 60, "location": "CoreSite LA1", "locationDetail": { "name": "CoreSite LA1", "city": "Los Angeles", "metro": "Los Angeles", "country": "USA"在我们的场景中,列表如下:
- Los Angeles
- New York
-
在您的客户选择地区(US-West)后,请根据 locationId 值进行筛选和列出响应结果。
"locationId": 60, "location": "CoreSite LA1", "locationDetail": { "name": "CoreSite LA1", "city": "Los Angeles", "metro": "Los Angeles", "country": "USA"在我们的场景中,列表如下:
- “locationId”: 59
- “locationId”: 60
将接入点位置映射到用户自定义区域或分区
您可以使用列出的位置信息标识符,例如 locationId、metro 或 country,并将其映射到预定义的自定义区域或分区名称。
通过将可用的接入点(如 Los Angeles 1(“locationId”: 59)和 Los Angeles 2(“locationId”: 60))映射到预定义的 US-West 区域,您的客户即可在平台上选择 US-West,并连接到其中一个可用接入点。
选择接入点
您可以使用 API 来确定要连接到哪个接入点,例如连接到使用率最低的 Port。可以综合考虑连接数量、容量或利用率等因素。此外,还可考虑多样性分区等因素以进行冗余管理。
使用已筛选的 Ports 响应来评估 Port 的属性,如下所示:
| 属性 | 考量点 |
|---|---|
| diversityZone | 检查当前位置是否支持多样性。 有关详细信息,请参阅 Port 多样性。 |
| portSpeed | 检查该 Port 的可用速率。 |
| rateLimit | VXC 的速率限制不能超过最低速率 Port 的速率。 有关详细信息,请参阅连接概览。 |
| associatedVxcs | 检查该 Port 是否已关联 VXC,以及已分配的容量。 |
| maxVxcSpeed | 检查该 Port 可用的最大 VXC 速率。 |
| vxcPermitted | 确保 vxcPermitted 为 true。若 vxcPermitted 为 false,则无法向该 Port 创建 VXC。 |
在综合考虑所选 Ports 后,您可以展示满足要求的 Port,例如使用率最低的 Port。有关更多信息,请参阅Megaport API 概览。
管理连接
通过遵循管理服务密钥和 VLAN ID 的最佳实践,您可以保持连接的有序与安全。
管理服务密钥
服务密钥允许您的客户连接到您特定的接入点。
管理服务密钥包括创建、共享和监控服务密钥。
如下图所示,并在下文进行更详细说明:

在选择了接入点服务后,您可以为该接入点创建服务密钥。创建服务密钥对您没有额外费用,无论客户是否使用该密钥。
将服务密钥分享给客户。您也可以为客户创建一个工作流程,概述使用收到的服务密钥所需的步骤和预估时间。
作为前提条件,您的客户必须拥有 Megaport 账户并具备可用的 Port。
使用服务密钥,客户可以创建 VXC 并基于您指定的参数连接到接入点。客户需承担所选接入点位置对应的 VXC 费用。
使用 GET List Service Keys(获取服务密钥列表) API 持续监控并跟踪服务密钥状态。例如,检查您创建并发送给客户的服务密钥是否已被使用。客户使用服务密钥后,该密钥即失效,且不会保留服务密钥 ID。这意味着服务密钥与其激活的服务之间不存在关联。
服务密钥与具体服务绑定。为确保在发生故障或中断时具备冗余与弹性,建议在不同多样性分区创建接入点。在此情况下,您还需要为每个接入点分别创建服务密钥,例如:
- Los Angeles 1(蓝色多样性区域)1 个密钥
- Los Angeles 2(红色多样性区域)1 个密钥
您可以创建单次使用或多次使用的服务密钥。使用单次服务密钥时,被分享该密钥的客户只能请求到特定接入点的一条连接。使用多次服务密钥时,被分享该密钥的客户可以请求多条连接,此时系统会自动分配下一个可用的 VLAN ID。
管理 VLAN ID
对于单次服务密钥,请指定一个 VLAN ID,您可以用它将客户与其对应的 VXC 关联。当为服务密钥分配 VLAN ID 时,表示该 VXC 专属于某个特定客户。每个 VXC 都作为单独的 VLAN 交付至您的接入点。该 VLAN ID 在此接入点上必须唯一,取值范围为 2 到 4093。
注意
对于单次服务密钥,您也可以指定 untagged,即不分配 VLAN ID。有关详细信息,请参阅设置服务密钥。
下图展示了您为每个客户分配不同 VLAN ID 的示例:
- VLAN ID 100 分配给客户 1
- VLAN ID 200 分配给客户 2
您分配的 VLAN ID(100 和 200)可以与客户分配的 VLAN ID(123 和 10)不同,也可以与他们其他 Port 连接(例如到 AWS、Oracle 或 Azure 等云服务提供商的连接)的 VLAN ID(124、125 和 20)不同

有关更多信息,请参阅设置服务密钥和使用 API 创建服务密钥。
摘要
本主题介绍了如何高效管理客户到您接入点的连接。
通过使用 Megaport API 查询 Ports、基于容量与多样性等因素选择 Ports,您可以将流程自动化,减少人工操作并实现快速开通服务。
使用到的 API 总结
下表展示了本场景中的流程及所使用的 API:
注意
此示例使用 Ports,但 MCRs 和 MVEs 的流程相同。
| 服务提供商客户的操作 | 服务提供商的操作 | 使用的 API 请求与筛选值 | 结果 |
|---|---|---|---|
| 在服务提供商平台上,请求连接到接入点。 | 列出有在用 Ports、MCRs 或 MVEs 的区域。 | GET /v2/products? provisioningStatus=LIVE 列出 "country" 值。 |
|
| 选择一个区域(美国)。 | 列出美国境内有在用 Ports、MCRs 或 MVEs 的城市。 | GET /v2/products? provisioningStatus=LIVE &country=USA 列出 “metro" 值。 |
|
| 列出洛杉矶的 Ports。 将可用的 Ports(例如 Los Angeles 1(”locationId”: 59)和 Los Angeles 2(”locationId”: 60))映射到名为 US-West 的区域。之后,您的客户可以在平台上连接到 US-West 中的任一可用 Port。 决定向客户提供哪个接入点,需考虑容量/使用率与多样性。 |
GET /v2/products? provisioningStatus=LIVE &country=USA&metro=Los Angeles 列出 "locationId" 值。 |
|
|
| 选择 US-West 并添加多样性。 | 为所选 Ports 创建服务密钥。 将服务密钥返回给客户。 |
POST /v2/service/key 必需值:” productUid“ |
为以下对象创建 2 个独立密钥:
“key”: “106e38ae-eb59-415f-ac81-526a5299851d”, |
| 使用服务密钥创建连接。 |
将 Megaport 集成到您的平台
有关如何将 Megaport 集成到您的平台的示例,请参阅演示项目 https://github.com/megaport/megaportgo.