FabricにFabric アプリをデプロイする

サインインし、CLI のデプロイ フローを実行し、npx rayfin up がアプリに対して何を構成するかを確認して、Fabric アプリを Fabric にデプロイします。 この記事では、デプロイ中に何が起こるかの概念について説明します。

前提条件

  • rayfin/rayfin.yml 構成ファイルを含む Fabric Apps プロジェクト。 まだプロジェクトがない場合は、「初めての Fabric Apps プロジェクトの作成」を参照してください。
  • Fabric ワークスペースにアクセスできるMicrosoft Entra ID アカウント。

アプリケーションをデプロイする

プロジェクト ルートから次のコマンドを実行します。

npx rayfin up

サインインしていない場合は、CLI によって対話型サインイン フローが自動的に起動されます。

デプロイの機能

rayfin up コマンドは、次の手順を順番に実行します。

  1. Fabric ワークスペースに Fabric Apps 項目を作成します (または、後続のデプロイで既存のものを再利用します)。
  2. リモート サービスから発行可能なキーを取得します。
  3. 認証構成やサービス フラグなど、 rayfin.yml からリモート サービスにランタイム設定を同期します。
  4. TypeScript データ モデル デコレーターから生成されたデータベース スキーマを適用します。
  5. staticHostingrayfin.ymlで有効になっている場合は、静的コンテンツをビルドしてデプロイします。ビルド コマンドを実行し、出力フォルダーを ZIP にパッケージ化してアップロードします。
  6. 後続のデプロイの rayfin.yml ファイルと .env.fabric-* ファイルに展開の詳細を保持します。

デプロイ後、CLI は次の内容を出力します。

  • アプリが公開されているホスティング URL
  • デプロイを管理するための Fabric ポータル のリンク
  • 参照用のデプロイメント ID

認証を構成する

デプロイされたアプリケーションでは、Fabricブローカー認証 (Entra SSO) のみがサポートされます。 電子メールとパスワードの認証は、ローカル開発時に使用できますが、Fabricにデプロイした後は機能しません。

rayfin up を実行する前に、rayfin.yml で Fabric 認証が有効になっていることを確認してください。

services:
  auth:
    enabled: true
    fabric:
      enabled: true

変更なしでデプロイをプレビューする

--dry-runを使用して、リソースを作成または変更せずに CLI が実行する内容を確認します。

npx rayfin up --dry-run

データベースの変更を適用する

データ モデルを更新した後、完全なスタックを再デプロイせずに、スキーマの変更をリモート データベースにプッシュします。

npx rayfin up db apply

スキーマの変更に破壊的な操作 (列の削除、テーブルの名前変更) が含まれる可能性がある場合、CLI によって警告が表示され、続行が拒否されます。 --forceを使用して、安全性チェックをオーバーライドします。

npx rayfin up db apply --force

Caution

--forceを使用すると、データが失われる可能性があります。 一覧表示されている操作を慎重に確認し、続行する前に結果を受け入れることを確認します。

静的コンテンツを再デプロイする

フロントエンド コードのみを変更した場合は、反復サイクルを短縮するために静的コンテンツを個別に再デプロイします。

npx rayfin up staticapp deploy

このコマンドは、構成された buildCommandを実行し、出力をパッケージし、リモート サービスにアップロードします。

ビルド手順をスキップして既存の出力をデプロイするには:

npx rayfin up staticapp deploy --skip-build

デプロイの状態を確認する

Fabric のデプロイの現在の状態を表示します:

npx rayfin up status

マシンが読み取り可能な出力の --json を追加します。

npx rayfin up status --json

既存のデプロイを更新する

最初のデプロイの後、 rayfin.yml はデプロイの詳細 (rayfinItemIdfabricWorkspaceId、および項目エンドポイント) を格納します。 npx rayfin upをもう一度実行すると、新しいデプロイを作成するのではなく、同じデプロイが更新されます。

対象となる更新プログラムの場合は、サブコマンドを使用します。

命令 更新内容
npx rayfin up すべて: 設定、データベース、静的コンテンツ。
npx rayfin up db apply データベース スキーマのみ。
npx rayfin up staticapp deploy 静的コンテンツのみ。

デプロイに関する問題のトラブルシューティング

401 または 403 エラーでデプロイが失敗する

セッションの有効期限が切れている可能性があります。 npx rayfin loginを実行して再認証してから、npx rayfin up再試行します。

データベース適用レポートで破壊的変更が報告されます

Rayfin CLI は、データ損失の原因となる可能性のあるスキーマ変更をブロックします。 一覧表示されている操作を確認し、データ損失を受け入れた後にのみ npx rayfin up db apply --force を使用します。

静的デプロイがサイズ制限を超えています

圧縮アーカイブは 100 MB を超えてはなりません。 ソース マップと大規模な開発資産を除外してビルド出力を最適化するか、バイナリ ファイルを Fabric Apps ストレージに移動します。

Fabric ポータルでアプリを管理する

デプロイ後、Fabric ポータルでFabric アプリを直接管理できます。

アイテムのプロパティを表示する

Fabric ポータルで Fabric アプリを開き、次の情報を表示します。

  • アプリ URL — 静的コンテンツがホストされているパブリック URL。
  • アプリ バックエンド URL — すべてのバックエンド サービスのベース URL。

子サービスの管理

Fabric アプリを選択して、その子サービスを表示します。

  • SQL Database — Fabric SQL クエリ エディターを開きます。 データに対して読み取りクエリを実行できます。 Fabric ポータルで直接行われたスキーマの変更は、次の rayfin up デプロイで上書きされます。
  • 認証 — 子 SQL Database の Users テーブルで認証済みユーザーを表示および管理します。

アプリのアクセス許可

Fabric アプリの共同作成者には、Fabric アプリをデプロイするには、少なくとも Edit アクセス許可が必要です。