生产环境测试(API 预运行)
Equinix Fabric 支持在生产环境中直接进行 API 试运行 功能。 Dry Run 功能允许您安全地模拟受支持的 API 调用,以验证请求负载、业务逻辑和资源可用性,而无需配置任何基础设施或产生费用。
在验证新集成、测试自动化更改或在“真正”执行之前确认复杂请求是否会成功时,请使用 Dry Run。
试运行是如何进行的
通过在受支持的 API 请求中添加查询参数(例如 dryRun=true)来启用试运行。
如果存在 Dry Run 参数,Fabric 平台将仅执行服务器端验证,而不会完成完整的事务。具体来说,平台将:
- 验证输入 – 检查必填字段是否存在且格式正确,以及 Metros、IBX 代码、带宽和套餐类型等值是否有效。
- 验证业务逻辑 – 运行外部和内部检查,例如确认城域路由器、端口路由器或云路由器是否可用于请求的操作。
- 跳过持久化和配置 – 不创建数据库记录,不生成工作订单,也不预留、更新或删除任何物理或逻辑资源。
身份验证、授权和配额检查仍然以与实时通话相同的方式执行。
::::重要的 试运行不会绕过任何权限或帐户要求。如果您的生产环境调用因缺少权限或帐户状态无效而被拒绝,那么试运行调用也会被拒绝。 ::::
支持的资源和运营
针对特定的 Fabric v4 资源和操作,可以使用 Dry Run 功能。
| Domain / Resource | API Endpoint | Supported Operations |
|---|---|---|
| Cloud Routers | /fabric/v4/routers | Create |
| Connections | /fabric/v4/connections | Create, Update |
| Networks | /fabric/v4/networks | Create |
| Ports | /fabric/v4/ports | Create, Update, Delete |
| Service Tokens | /fabric/v4/serviceTokens | Create, Update |
对于所有其他端点和操作,包含 dryRun=true 的调用行为与标准生产请求相同。
了解试运行响应
Dry Run 返回的响应旨在与您在实际生产调用中看到的响应非常接近,但也有一些重要的不同之处。
验证成功
如果请求通过所有验证检查,API 将返回 200 OK。
- 资源标识符 – 诸如
uuid或href之类的字段可能为null或省略,因为在 Dry Run 期间实际上不会创建任何资源。 - 订单编号 – 不会生成采购订单编号或其他商业标识符。
- 副作用 – 不会进行任何资源配置、修改或删除。
您可以使用此响应来确认您的有效负载结构、值和请求的状态转换是否可接受,然后再提交不带 dryRun=true 的实时请求。
验证错误
如果请求验证失败,API 将返回与实际生产调用相同的 HTTP 状态代码和错误结构(例如,对于无效输入,返回 400 Bad Request)。
典型的验证失败包括:
- 无效的位置数据 – 不支持或拼写错误的 Metro 或 IBX 代码。
- 不支持的资源状态转换 – 尝试修改或删除处于瞬态状态(例如“PROVISIONING”)的资源。
- 未满足的依赖关系 – 例如,尝试删除仍与活动虚拟连接或服务令牌关联的端口。
这些错误是在模拟运行期间返回的,不会对生产资源进行任何更改。
使用端口进行空运行
/fabric/v4/ports 端点在与 Dry Run 一起使用时会公开丰富的验证行为。
创建端口
提交端口的 Dry Run 创建请求时,请使用 POST /fabric/v4/ports?dryRun=true 操作:
- API 会验证所请求的 Metro、IBX 和其他位置属性。
- 检查包和接口属性(例如
interfaceSpeed、bandwidth和encapsulation)的兼容性和可用性。 - 未预留任何物理端口,也未创建任何订单。
::::笔记 公共 Fabric API 不支持批量创建端口。每次 Dry Run 创建请求都应描述单个端口。 ::::
更新端口
使用 PATCH /fabric/v4/ports/{uuid}?dryRun=true 操作可以在应用端口配置更改之前安全地测试更改:
- 您可以验证端口的描述性属性(例如,
name)或配置属性(例如,encapsulation)的更新。 - API 强制执行状态规则:尝试更新处于临时状态(例如
PROVISIONING)的端口将返回错误。大多数更新操作需要端口处于ACTIVE状态。 - 依赖关系规则也会被强制执行:例如,如果端口有现有连接或服务配置文件,则更改这些连接或配置文件会使它们失效,因此您不能更改“封装”。
在试运行期间,不会对端口进行任何更改;您只会收到验证结果和任何相关的错误消息。
删除端口
使用 DELETE /fabric/v4/ports/{uuid}?dryRun=true 操作来验证删除请求是否会成功:
- API 会检查端口是否存在,以及端口是否处于允许删除的状态(通常为“ACTIVE”)。
- API 确保没有活动连接、服务令牌或其他依赖服务仍然绑定到该端口。
如果检测到任何依赖关系,Dry Run 删除调用将返回与实时删除请求返回的相同错误,而不会删除或修改端口。
何时使用空运行
在以下情况下可以考虑使用模拟运行:
- 在推出新的自动化功能之前 – 验证生成的 API 请求在结构上是否正确,并符合 Fabric 业务规则。
- 在生产环境中进行测试时 – 在执行操作之前,请确认真实账户数据(端口、连接、网络、云路由器和服务令牌)支持预期的操作。
- 故障排除 – 安全地重现失败场景,以了解哪个验证规则或依赖项阻止了更改。
在成功完成试运行并进行必要的调整后,您可以重新发送相同的请求,但这次不带 dryRun=true 参数,以执行实际操作。