将无服务器路由器迁移到 AWS
了解如何将 Serverless 云路由器从 Fly.io 迁移到 AWS
ⓘ 注意
本页仅适用于无服务器 云路由 在 2024 年 5 月 21 日之前创建的。自该日期起创建的所有无服务器云路由自动在 AWS 上运行。
无服务器云路由正在从 Fly.io 迁移到 AWS,以提高可靠性和性能。使用 Fly.io 基础设施运行的无服务器云路由必须在 GraphOS Studio 进行迁移。
谁需要迁移?
您可能需要迁移,如果
- 您的组织正在使用 无服务器计划 或者
- 您的组织正在使用 专用计划 但使用 无服务器 变体 的生产环境中的非生产环境。
要检查您是否需要迁移,请访问 GraphOS Studio。如果 "概述" 页面上的 "图" 的 云路由详细信息 显示 区域 为 美国中部-ordin,则需要迁移。
云路由 在 Fly.io 上将一直运行到 2024 年 6 月 27 日。在此日期之后,Fly.io 上的任何云路由将被永久删除,并且使用它们的 图 将不再响应请求。如有迁移问题或疑虑,请随时联系 [email protected]。
有什么变化?
迁移到 AWS 提高了可靠性和性能。它还更改了云托管区域和不活动时间。凭借提高的可靠性和性能,无服务器 可以提供额外的 GraphOS 路由器 功能。有关受支持功能的完整列表,请参阅 定价页面。
可靠的吞吐量
在 AWS 上,无服务器云路由可以持续处理每秒 10 个 (RPS) 请求的吞吐量。
ⓘ 注意
如果您的RPS吞吐量超过10或具有复杂架构,请考虑升级至专用。
托管区域
在Fly.io上,云路由器托管在芝加哥(ord)。在AWS上,它们托管在弗吉尼亚北部(us-east-1)。这意味着性能更佳,尤其是在AWS上运行子图服务器的客户,尤其是在us-east-1区域或附近。
ⓘ 注意
专用提供更广泛的AWS区域选择。
不活跃时间段
在Fly.io上,Serverless云路由器在不活跃两分钟后进入睡眠状态。睡眠状态下的路由器无法服务请求,必须唤醒以便执行。在AWS上,云路由器在不活跃七天之后进入睡眠状态。
在总共30天的不活跃后,Apollo将删除Serverless云路由器。删除操作将保留与云路由器关联的变体的架构,但会删除底层云路由器。在Serverless路由器状态中了解更多信息。
Fly.io托管 | AWS托管 | |
---|---|---|
不活跃周期 在睡眠前 | 2分钟 | 7天 |
不活跃周期 在删除前 | 30天 | 30天 |
如何迁移
Apollo无法提供原地迁移。要迁移,您需要在Graph,或完全创建一个新的变体。一旦您创建了新的变体或图,您将获得新的图引用和端点URL,您必须将其重定向给客户端流量。
⚠️ 小心
为了避免查询您的图的服务器的客户出现停机,不要删除包含现有的云路由器的变体,直到您已经创建了一个新的变体。
步骤1. 创建一个新的图
要开始,请在GraphOS Studio中创建一个新的图或变体。有关创建新图的详细信息,请参阅入门。
ⓘ 注意
对于有Serverless变体的专用客户::
您无法从工作室迁移专用计划上的Serverless变体。相反,您必须使用Rover CLI发布新的变体或图。通过Rover创建的所有变体默认为Serverless,即使您的组织在使用专用计划。
所有 无服务器 云路由器自 2024 年 5 月 21 日起均自动在 AWS 上运行。您可以通过检查路由器区域是否为 AWS us-east-1 来确认您的新路由器正在 AWS 上运行。
创建新的 图 或 变体 生成一个新的端点 URL 和 图 ref。您将在后续步骤中更新这些值。
步骤 2. 添加子图
每个 变体 至少需要一个 子图。如果您有多个子图, 将每个子图添加到您的新 变体 中。
步骤 3. 设置路由器配置
将旧的 路由器 的配置复制并粘贴到新的路由器中。您可以在 GraphOS Studio 中的 云路由器 > 配置 下访问云路由器的配置。
路由器 配置定义了重要值,如 CORS 策略和标题传播。
ⓘ 注意
如果您在旧的云路由器配置中设置了 密钥,也必须在新的配置中设置。密钥一旦保存就不可读取。
步骤 4. 测试
添加了所有子图并设置了云路由器配置后,尝试从 资源管理器 运行一些示例 操作。如果操作不执行,您可能需要启用 子图错误 来进行故障排除。
在上线前模拟生产流量。 无服务器 在 AWS 上提供的吞吐量低于 Fly.io,但更可靠。如果您超出吞吐量限制,您的客户端将收到 429 错误。
ⓘ 注意
无法在 无服务器 上增加吞吐量。如果您需要超过 10 RPS 的吞吐量,请考虑升级到 专用。
步骤 5. 上线
要上线,更新您的客户端使用来 查询 图的端点 URL。您可以从变体的 概览 页面查看您的新路由器的端点。
如果您在 CI/CD 中使用任何 Rover 命令,请更新 图ref。
一旦更新了您的客户端代码库和 Rover 命令,您可以删除承载您的 Fly.io 云路由器的变体。