Fabric Apps 常見問題(FAQ)

本文將回答關於 Fabric 應用程式的常見問題。

General

什麼是 Fabric 應用程式?

Fabric Apps 是一個後端平台,幫助 TypeScript 開發者更快建置並部署資料驅動應用程式。 你可以使用 TypeScript 裝飾器來定義資料模型,Fabric Apps 會自動產生 GraphQL API、資料庫架構和型別安全用戶端。

誰應該使用 Fabric 應用程式?

Fabric Apps 非常適合開發以下內容的開發者:

  • 內部工具與儀表板
  • 資料探索與視覺化應用
  • 快速原型
  • 需要持久狀態的 AI 與代理應用程式

支援哪些資料庫?

Fabric Apps 支援 SQL Server——Fabric部署的預設配置。

我可以用 Fabric Apps 搭配現有資料庫嗎?

No. Fabric Apps 會根據你的 TypeScript 資料模型來管理資料庫結構。 你無法用預設架構指向現有資料庫。

發展

我該如何安裝 CLI?

你可以用 Rayfin CLI 安裝。npm 由於它是 npm 套件,你可以用 npm update 更新它。

npm i @microsoft/rayfin-cli

我可以用沒有 TypeScript 的 Fabric 應用程式嗎?

No. 資料模型必須使用 TypeScript 裝飾器來定義。 前端應用程式可以使用 JavaScript,但後端則需要 TypeScript 來定義模型。

支援哪些前端框架?

Fabric Apps 支援任何能發出 HTTP 請求的前端框架:

  • React
  • Vue
  • Angular
  • Svelte
  • Vanilla JavaScript/TypeScript

客戶端 SDK 為所有框架提供型別安全的 API。

Authentication

支援哪些認證方法?

環境 支援的方法
地方發展 Microsoft Entra SSO 與電子郵件/密碼
部署至 Fabric 僅限 Microsoft Entra SSO

備註

部署到 Fabric 後,電子郵件和密碼驗證就無法使用。 除非啟用驗證,否則無法將應用程式部署到 Fabric。

我可以使用自訂的認證提供者嗎?

No. Fabric Apps 支援 Microsoft Entra 單一登入(SSO)及僅支援電子郵件/密碼。 你無法整合其他供應商。

Deployment

我可以在沒有啟用驗證的情況下部署應用程式嗎?

No. Fabric 需要在部署 Fabric 應用程式前啟用 fabric 認證。

我可以部署到多個環境(開發、預備、生產環境)嗎?

你可以手動管理不同的 Fabric 工作區,並部署到不同的項目。

部署需要多久?

初始部署通常需時2到5分鐘。 後續使用 npx rayfin up staticapp deploy(僅限靜態內容)的部署只需 30-60 秒。

我可以回撤部署嗎?

重新部署之前的版本,檢查之前的 git commit 並執行 npx rayfin up。

我該如何除錯部署失敗?

  • 建置錯誤 — 先執行 npm run build 後再部署。 最常見的部署失敗是缺少生產版本。 建置成功後,執行 npx rayfin up。
  • 容量或權限錯誤 — 確認你的工作區已分配Fabric容量,且你有權限在工作區中建立或修改項目。
  • 資料庫架構錯誤 — 若在套用資料庫架構時發生錯誤,請檢視自上次成功部署以來所做的架構變更並解決衝突。

資料模型

我可以使用複合主鍵嗎?

No. 每個實體必須使用一個命名 id 為主鍵的 UUID 欄位。

多對多關係是否被支持?

No. 改用一個明確定義的聯結實體,並搭配兩個 @one() 導覽修飾詞。

我可以寫自訂的 SQL 查詢嗎?

Fabric Apps 不會透過其產生的 API 或連接器暴露原始的自訂 SQL。 使用產生的 GraphQL 用戶端來管理應用程式擁有的資料。 若要存取 Fabric 中現有的湖屋、倉庫或 SQL 資料庫,請新增連接器並使用其型別操作。

效能和規模

效能限制是什麼?

效能取決於你的 Fabric 容量。 請聯絡您的 Fabric 管理員以了解容量專屬限制。

我可以快取查詢結果嗎?

是的。 在你的前端應用程式中實作用戶端快取。 後端沒有內建快取功能。

我該如何優化查詢效能?

  • 只選擇你需要的欄位
  • 對大型結果集使用分頁
  • 將相關的實體欄位納入單一查詢,而非多次請求

安全性

資料如何被保護?

  • 認證是預設的(可依實體設定)
  • 列級安全政策會根據 JWT 聲明過濾資料
  • 所有通訊在 Fabric 部署中均使用 HTTPS

局限性

目前有哪些限制?

  • count() 無法在 Fluent GraphQL 用戶端中使用
  • 很多關係都不被支持
  • 不支援複合主鍵
  • 不支援自訂認證提供者
  • 預設不支援多環境管理
  • 目前不支援工作區的出站存取保護。
  • 目前不支援租戶層級和工作區層級的私有連結。
  • 目前尚未支援應用程式生命週期管理(ALM)。

請參考 Troubleshoot Fabric Apps 以了解解決方法。

我可以匯出我的資料嗎?

是的。 使用產生的資料客戶端讀取應用程式擁有的資料,或使用連接器從支援的 Fabric 資料項目讀取資料。 只選擇你需要的欄位,翻閱大型結果集,然後在應用程式中產生匯出結果。