この記事では、Microsoft Fabric Apps に関する一般的な質問に回答します。
General
Fabric Apps とは
Fabric Apps は、TypeScript 開発者がデータドリブン アプリケーションをより迅速に構築してデプロイするのに役立つバックエンド プラットフォームです。 TypeScript デコレーターを使用してデータ モデルを定義すると、Fabric Apps によって GraphQL API、データベース スキーマ、およびタイプ セーフ クライアントが自動的に生成されます。
Fabric Apps を使用する必要があるユーザー
Fabric アプリは、以下を構築する開発者に最適です。
- 内部ツールとダッシュボード
- データ探索と視覚化アプリケーション
- 迅速なプロトタイプ
- 永続的な状態を必要とする AI アプリケーションとエージェント アプリケーション
サポートされているデータベースは何ですか?
Fabric Apps は SQL Server をサポートします — Fabric のデプロイの既定です。
既存のデータベースで Fabric Apps を使用できますか?
No. Fabric Apps は、TypeScript データ モデルに基づいてデータベース スキーマを管理します。 定義済みのスキーマを持つ既存のデータベースを指すことはできません。
発達
CLI をインストールする方法
を使用して npm をインストールできます。 npm パッケージなので、 npm updateで更新できます。
npm i @microsoft/rayfin-cli
TypeScript を使用せずに Fabric Apps を使用できますか?
No. データ モデルは、TypeScript デコレーターを使用して定義する必要があります。 フロントエンド アプリケーションでは JavaScript を使用できますが、バックエンドではモデル定義に TypeScript が必要です。
どのようなフロントエンド フレームワークがサポートされていますか?
Fabric Apps は、HTTP 要求を行うことができるすべてのフロントエンド フレームワークで動作します。
- React
- Vue
- Angular
- Svelte
- Vanilla JavaScript/TypeScript
クライアント SDK は、すべてのフレームワークにタイプ セーフな API を提供します。
認証
どのような認証方法がサポートされていますか?
| 環境 | サポートされているメソッド |
|---|---|
| ローカル開発 | Microsoft Entra の SSO とメールアドレス/パスワード |
| Fabric にデプロイ済み | Microsoft Entra SSO のみ |
Note
Fabricにデプロイした後、電子メールとパスワードの認証は機能しません。 認証が有効になっていない限り、アプリをFabricにデプロイすることはできません。
カスタム認証プロバイダーを使用できますか?
No. Fabric Apps では、シングル サインオン (SSO) と電子メール/パスワードのみをMicrosoft Entraサポートしています。 他のプロバイダーを統合することはできません。
デプロイメント
認証を有効にせずにアプリをデプロイできますか?
No. Fabricでは、Fabric アプリをデプロイする前に、fabric認証を有効にする必要があります。
複数の環境 (開発、ステージング、運用) にデプロイできますか?
個別のFabric ワークスペースを手動で管理し、さまざまな項目にデプロイできます。
デプロイにはどのくらいの時間がかかりますか?
通常、初期デプロイには 2 ~ 5 分かかります。
npx rayfin up staticapp deployを使用した後続のデプロイ (静的コンテンツのみ) には 30 ~ 60 秒かかります。
デプロイをロールバックできますか?
前の git コミットをチェックアウトし、 npx rayfin upを実行して、以前のバージョンを再デプロイします。
デプロイエラーをデバッグするにはどうすればよいですか?
-
ビルド エラー - デプロイする前に
npm run buildを実行します。 最も一般的なデプロイ エラーは、実稼働ビルドが見つからない場合です。 ビルドが成功したら、npx rayfin upを実行します。 - Capacity またはアクセス許可エラー — ワークスペースにFabric容量が割り当てされていること、およびワークスペース内のアイテムを作成または変更するアクセス許可があることを確認します。
- データベース スキーマ エラー — データベース スキーマ の適用中にエラーが発生した場合は、前回の正常なデプロイ以降に行ったスキーマの変更を確認し、競合を解決します。
データ モデル
複合主キーを使用できますか?
No. すべてのエンティティは、主キーとして id という名前の単一の UUID フィールドを使用する必要があります。
多対多リレーションシップはサポートされていますか?
No. 代わりに、2 つの @one() ナビゲーション デコレーターで明示的な結合エンティティを使用します。
カスタム SQL クエリを記述できますか?
直接 SQL クエリのサポートは存在しません。 すべてのデータ アクセスは、生成された GraphQL API を経由します。
パフォーマンスとスケール
パフォーマンスの制限は何ですか?
パフォーマンスは、Fabric容量によって異なります。 容量固有の制限については、Fabric管理者にお問い合わせください。
クエリ結果をキャッシュできますか?
Yes. フロントエンド アプリケーションにクライアント側キャッシュを実装します。 バックエンドでは、組み込みのキャッシュは提供されません。
クエリのパフォーマンスを最適化する方法
- 必要なフィールドのみを選択する
- 大規模な結果セットにはページネーションを使用する
- 複数の要求を行うのではなく、1 つのクエリに関連エンティティ フィールドを含める
セキュリティ
データはどのように保護されますか?
- 既定では認証が必要です (エンティティごとに構成可能)
- 行レベルのセキュリティ ポリシーは、JWT 要求に基づいてデータをフィルター処理します
- すべての通信では、Fabricデプロイで HTTPS が使用されます
制限事項
現在の制限事項は何ですか?
-
count()fluent GraphQL クライアントでは使用できません - 多対多リレーションシップはサポートされていません
- 複合主キーはサポートされていません
- カスタム認証プロバイダーはサポートされていません
- 複数の環境管理をすぐに使用できない
回避策については、「Troubleshoot Fabric Apps を参照してください。
データをエクスポートできますか?
Yes. 接続文字列がある場合は、SQL データベースに直接接続することもできます。