AppSync:在不到10分钟内创建并部署你的 API
Source: Dev.to
在 AWS AppSync 部署你的 GraphQL 架构
在上一篇文章中,我们为社交网络 API 设计了完整的架构(Usuario、Publicación、Comentario 类型,queries、mutations 以及清晰的契约)。该架构仅存在于本地文件中。
在本篇文章中,我们将把它部署到 AWS AppSync(托管的 GraphQL 服务),并让它实时运行。
你将得到的成果
- ✅ 部署在云端的 GraphQL API
- ✅ 可共享的 endpoint
- ✅ 自动生成的文档
- ✅ 用于测试 queries 的 playground
预计时间: (不涉及后端代码编写)
前置条件
| 必需项 | 详情 |
|---|---|
schema.graphql | 前一篇文章中创建的文件 |
| AWS 账户 | Free Tier 已足够 |
| 网页浏览器 | Chrome、Firefox、Edge 等 |
没有 AWS 账户吗?
别担心,创建账户免费且只需几分钟。Ana Cunha 编写了一篇完整的指南,教你如何在不花钱的情况下开始使用 AWS(请查看 Free Tier)。
1️⃣ 如何运行 GraphQL API?
Self‑hosted(自行管理服务器)
- Apollo Server
- GraphQL Yoga
优势
- 对一切拥有完全控制
- 可以在任何地方运行(AWS、GCP、你的电脑等)
- 开源且免费
劣势
- 需要自行管理服务器、更新和扩展
- 需要 DevOps 知识
- 配置时间更长
- 需要为部署的基础设施付费
Managed(供应商管理基础设施)
- AWS AppSync
- Hasura
- StepZen
优势
- 无需维护服务器
- 自动扩展
- 包含的功能(实时、缓存等)
劣势
- 控制权较少
- 依赖供应商
- 价格模式多变(请查阅各服务文档)
为什么我们选择 AWS AppSync?
- Serverless – 无需担心服务器。
- 适合学习 – 只专注于 GraphQL,而不是基础设施。
- 内置实时 – 我们将在下一篇文章中使用它进行 subscriptions。
提示: 没有“一刀切”的最佳选项。你的选择取决于对控制权的需求、团队经验以及架构偏好。
2️⃣ AWS AppSync 为你做了什么?
把它想象成 GraphQL‑as‑a‑Service:
| 功能 | 含义 |
|---|---|
| Hosting del esquema | 你的模式托管在云端,始终可用 |
| Ejecución de queries | 处理发送到你的 API 的查询 |
| WebSockets para real‑time | Subscriptions 自动工作 |
| Caching | 更快的响应,无需额外配置 |
| Endpoint de API | 客户端可以使用的 URL |
| Tus resolvers | 获取数据的逻辑(将在第 4 篇文章中看到) |
| Mock data | 我们将使用模拟数据来学习 |
今天我们将专注于第 1 步和第 2 步(部署模式)。解析器我们留到下一篇文章。
3️⃣ 步骤指南:在 AppSync 中部署模式
-
打开控制台
-
登录 使用你的 AWS 账户。
- 确保选择你想要的区域(例如:
us-east-1)。
- 确保选择你想要的区域(例如:
-
创建一个新 API
- 点击橙色按钮 Create API。
-
选择 API 类型
- 选择 GraphQL API。
-
选择 API 类型
- 在 API type 部分选择 GraphQL APIs。
-
选择模板
- 选择 Design from scratch(因为你已经有自己的模式)。
- 点击 Next。
-
配置 API
字段 建议值 API name Social-Media-API(或你喜欢的名称)其他字段 保持默认值。 - 点击 Next。
-
连接数据源
- 选择 Create GraphQL resources later(我们暂时使用 mock data)。
- 点击 Next。
-
检查摘要
- API type: GraphQL APIs
- API name: Social‑Media‑API
- GraphQL resources: Create later
- 点击 Create API。
-
完成!
- 控制台将显示你的新 API,带有 endpoint 和可直接使用的 GraphQL Playground。
4️⃣ 后续步骤
- 上传你的模式 (
schema.graphql) 到控制台的 Schema 部分。 - 在 Playground 中测试查询。
- 在 第 4 篇文章 中,我们将添加 解析器(DynamoDB、Lambda 等),并转向真实数据。
快速概览
| 步骤 | 操作 |
|---|---|
| 1 | 访问 AppSync 控制台 |
| 2 | 从零创建 GraphQL API |
| 3 | 为 API 命名,暂时省略数据源 |
| 4 | 审核并创建 API |
| 5 | 上传你的模式并在 Playground 中测试 |
恭喜!你已经在 AWS AppSync 上部署了你的第一个 GraphQL 模式。 🎉
继续阅读下一篇文章,以连接解析器并处理真实数据。
🚀 AppSync 中的 GraphQL API 入门 – 上传模式
你正处于 dashboard(仪表盘)页面。页面会显示两个主要部分,提供后续步骤的信息。
1️⃣ 打开模式编辑器
- 在左侧菜单中,点击 “Schema”。
- 将出现一个大型文本编辑器,里面有一些默认注释。
这里就是放置你的模式(schema)的地方。
2️⃣ 复制本地模式
- 打开上一篇文章中的
schema.graphql文件。 - 删除 AppSync 编辑器中默认的注释。
- 复制 文件中的全部内容。
- 粘贴 到 AppSync 编辑器中。
3️⃣ 保存
- 点击右上角的橙色按钮 “Save Schema”。
💡 如果看到错误怎么办?
AppSync 会自动验证你的模式。如果存在语法错误,会以红色提示。请检查是否完整复制了模式。
若一切正常,你会看到提示信息: “Schema saved successfully.”
🎉 已部署的模式
太棒了!你的模式已经部署到云端。AppSync 已对其进行验证、处理,现在已可以使用。
4️⃣ 探索 AppSync 自动生成的内容
-
在侧边菜单中,点击 “Settings”。
-
找到 “API URL” 或 “GraphQL endpoint” 部分。你会看到类似如下的 URL:
https://xxxxxxxxxx.appsync-api.us-east-1.amazonaws.com/graphql这就是你的 API URL。任何 GraphQL 客户端都可以使用它来执行 queries 和 mutations(目前仅你自己有访问权限;我们稍后会讨论身份验证)。
-
在侧边菜单中,点击 “Queries”。
-
在编辑器右上角,找到 “Docs” 按钮/图标 (📖) 并打开它。
自动文档中看到什么?
- 类型:
Usuario,Publicacion,Comentario - Queries:
usuario,publicacion,publicaciones - Mutations:
crearUsuario,crearPublicacion,crearComentario - 每种类型的 字段 及其数据类型
这就是 introspection(自省)在发挥作用:GraphQL 允许任何客户端“查询”模式,像此 playground 之类的工具会利用这些信息提供自动补全。
示例:检查类型 Usuario
- 字段:
id,nombre,email,fotoPerfil,publicaciones,creadoEn - 每个字段显示其类型:
String!,[Publicacion!]!, 等。
为什么重要?
- 你不需要会过时的单独文档。
- 模式即文档。
- 任何更改都会立即反映。
- 开发者可以自行探索 API,无需向你询问。
📋 当前概览
| ✅ | 项目 | 描述 |
|---|---|---|
| ✅ | 已部署的模式 | 您的 API 合约已在云端 |
| ✅ | API 端点 | 客户端可使用的 URL |
| ✅ | 自动文档 | 从您的模式生成 |
| ✅ | Playground | 查询编辑器已就绪 |
| ❌ | 解析器 | 返回数据的逻辑(缺失) |
| ❌ | 真实数据 | 目前,查询将返回 null |
🔜 下一步 (第 4 部分)
- 理解 resolvers – 你的模式与数据之间的桥梁。
- 使用 TypeScript 实现 resolvers – 具备 类型安全 的代码。
- 使用 mock 数据 – 立即看到结果。
- 测试真实查询 – 查看你的 API 正在运行。
- 实现 mutations – 创建用户、帖子和评论。
即将可以执行的查询示例:
query {
publicaciones {
contenido
autor {
nombre
}
comentarios {
contenido
}
}
}
📚 推荐
- 探索文档 – 熟悉 Docs 面板。
- 检查你的模式 – 确保它包含你需要的所有内容。
- 保存你的 API 端点 – 之后会用到。
🎉 已取得的成就
- 了解了运行 GraphQL API 的选项。
- 认识了 AWS AppSync 以及它为你做了什么。
- 在 AppSync 上创建了你的第一个 API。
- 部署了你的模式。
- 探索了自动生成的文档。
迄今为止系列概览
| 部分 | 主题 |
|---|---|
| 1 | GraphQL 介绍 – 什么是 GraphQL,为什么使用它。 |
| 2 | 模式设计 – 创建 API 合约。 |
| 3 | 部署(本文)– 在 AppSync 上部署模式。 |
| 4 | 解析器实现 – 让 API 工作(即将推出)。 |
🎊 庆祝!
你已经从一个文本文件转变为一个 部署在云端的 GraphQL API。这可不是小事。 🚀
有用链接
- AWS AppSync Documentation
- GraphQL Introspection