DynamoDB 支援 GraphQL 嗎?
支援,透過 AWS AppSync。AppSync 是 AWS 的受管 GraphQL 服務,而 DynamoDB 是其原生資料來源之一:resolver 會將每個 GraphQL 查詢或變更對應到一個 DynamoDB 操作,例如 GetItem、Query 或 PutItem。DynamoDB 本身沒有 GraphQL 端點 — GraphQL 層在它前方執行。
這種搭配如何運作
在 AppSync 中,你將一個 DynamoDB 表格註冊為資料來源,然後為你的 GraphQL schema 的每個欄位附加一個 resolver。resolver 的請求處理常式會將傳入的 GraphQL 引數轉譯為一個 DynamoDB 呼叫,其回應處理常式則將 DynamoDB 回傳的項目塑形回 GraphQL 回應。AWS 正是為了這個模式,將 AppSync 列在 DynamoDB 的無伺服器整合之首。
為什麼這是常見的堆疊
兩半都是無伺服器:AppSync 擴充 API 層,而 DynamoDB 擴充儲存與輸送量,兩側都沒有伺服器。即時 GraphQL 訂閱與 DynamoDB 個位數毫秒的寫入自然契合。
替代方案:自備伺服器
沒有任何東西要求使用 AppSync — 任何 GraphQL 伺服器(Apollo、Yoga 等)都能透過 AWS SDK 呼叫 DynamoDB 來解析欄位,就像呼叫其他任何後端一樣。代價是你需自行營運 GraphQL 層。
深入了解
GraphQL resolver 仍受相同的存取模式規則約束 — 資料建模指南說明如何設計服務於你查詢的鍵,運算式建構器會產生底層的條件語法,而 DynoTable 讓你檢視 resolver 實際寫入了什麼。
參考資料
- Data sources — AWS AppSync Developer Guide
- Resolver mapping template reference for DynamoDB — AWS AppSync Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
最後驗證於 2026-07-13,對照上方連結的官方 AWS 文件。