DevOps と GraphQL API を使用してアプリケーションを作成する
適用対象:✅ Microsoft Fabric SQL データベース
チュートリアルのこのセクションでは、作成した資産を使用して、Web アプリケーションを作成します。これには、停止の影響を受けるリージョンをユーザーが選択し、そのリージョン内の他のサプライヤーを確認して、サプライ チェーンの中断が発生した場合に会社に警告する機能があります。 データに対して GraphQL エンドポイントを作成し、ローカルまたはクラウド プロバイダーにデプロイできる ASP.NET アプリケーションを作成します。
ソフトウェア開発プロジェクトには開発者運用 (DevOps) タスクが含まれています。その 1 つがソース管理です。 このセクションは、作成した項目をソース管理下に置くことから始めます。
この記事では、Fabric SQL データベースに基づくアプリケーションを作成するのに役立つ一連のシナリオについて説明します。
前提条件
- このチュートリアルの前の手順をすべて完了します。
- Git 統合テナント設定を有効にします。
- GraphQL 用 API のテナント管理者設定を有効にします。
- Microsoft Azure DevOps で組織とプロジェクトを作成します。
Azure DevOps を使用した Fabric の CI/CD
チュートリアルのこのパートでは、Azure DevOps を使用して Microsoft Fabric SQL データベースを操作する方法について説明します。
Microsoft Fabric SQL データベースにはソース管理が統合されているため、SQL ユーザーはチーム全体でデータベース オブジェクトの定義を経時的に追跡できます。
チームはデータベースをソース管理にコミットできます。これにより、ライブ データベースが、構成されたソース管理リポジトリ (Azure DevOps) のコードに自動的に変換されます。
チームはソース管理の内容からデータベース オブジェクトを更新できます。これにより、データベースに差分変更を適用する前に Azure DevOps でコードが検証されます。
Microsoft Fabric でのソース コード管理に慣れていない場合は、次のリソースをお勧めします。
ソース管理の概要
これらの前提条件を満たしたら、ワークスペースと Azure DevOps の同期を維持できます。 これにより、ワークスペースで行った変更を Azure DevOps ブランチにコミットし、誰かが Azure DevOps ブランチに新しいコミットを作成するたびにワークスペースを更新できます。
次に、Azure DevOps を使用してデータベース内のオブジェクトの 1 つを編集します。これにより、リポジトリとデータベース オブジェクトの両方が更新されます。 リポジトリ内のオブジェクトを直接編集したり、リポジトリにオブジェクトを "プッシュ" したりすることもできますが、この例では、すべての手順を Azure DevOps 環境で実行します。
チュートリアルのワークスペース ビューで、ワークスペースがソース管理下に設定されていること、すべてのオブジェクトが "同期済み" と表示されていることを確認します。
ワークスペース ビューには、git アイコン、選択したブランチ、ワークスペースがソース管理と最後に同期された時刻に関するメッセージが表示されます。 日付と時刻の横に、Azure DevOps 環境内の特定の場所を示す識別子リンクが表示されます。 そのリンクを開いて続行します。
要求された場合は、Azure DevOps 環境にサインインします。
Azure DevOps 環境に移動したら、エクスプローラー ペインで [ファイル] 項目を選択します。 Fabric SQL データベースとそのリポジトリと同期されたオブジェクトが表示されます。
suppy_chain_analytics_database.SQLDatabase、dbo、Tables、Suppliers.sql オブジェクトの順に展開します。
オブジェクトの内容にあるテーブルの T-SQL 定義に注目してください。 運用コーディング環境の場合、このオブジェクトは Visual Studio や Visual Studio Code などの開発ツールを使用して変更されます。 いずれの場合でも、そのデータベース オブジェクトの定義は、データベースの現在の状態をミラー化したリポジトリにレプリケートされます。 次のチュートリアル手順では、Azure DevOps ソース管理を使用してデータベース オブジェクトに変更を加えてみましょう。
[Fax]
列定義行を見つけて、[編集] ボタンを選択します。 列定義を[Fax] NVARCHAR (255) NULL,
に編集します。[コミット] ボタンを選択します。
表示される [コミット] メッセージ ボックスに入力し、[コミット] ボタンを選択します。 ご自身とチームの利益のために、ソース管理におけるすべての変更を詳しく記述するように努めてください。
コミットにより、変更はリポジトリに書き込まれます。
Fabric SQL データベース ポータルに戻り、[ソース管理] を選択します。
保留中の更新が 1 つあります。 運用環境では、このような変更を確認します。 [すべて更新] ボタンを選択します。 更新には時間がかかる場合があります。
Fabric SQL データベースの名前を選択します。 SQL データベースで新しいクエリ ウィンドウを開きます。
次の T-SQL コードをコピーして貼り付けて、データベース内のテーブルへの変更を確認します。
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Suppliers';
Notes
という列をSuppliers
テーブルに追加するクエリを実行する次の T-SQL コードを入力します。 コードのそのセクションだけを選択し、[実行] ボタンを選択します。ALTER TABLE Suppliers ADD Notes NVARCHAR(MAX);
次に、Fabric ポータルのチュートリアル ワークスペースに戻ります。
[ソース管理] ボタンを選択すると、システムに [更新] ではなく [変更] 要求が表示されることに注目してください。 オブジェクト名の横にあるチェック ボックスをオンにして、[コミット] ボタンを選択します。
クエリ エディターで行われた変更がシステムによってコミットされます。Azure DevOps ポータルに戻り、[ファイル] 領域、
dbo
スキーマ、Tables およびSuppliers
オブジェクトの順に移動すると、新しい列を確認できます (変更を表示するために、ページの更新が必要な場合があります)。
ここでは、Azure DevOps のソース管理から SQL データベース オブジェクト スキーマを操作する方法を確認しました。 Microsoft Fabric でのソース管理の詳細については、Microsoft Fabric での SQL データベース ソース管理の統合と Fabric でのライフサイクル管理に関するチュートリアルの記事を参照してください。
GraphQL API の設定と構成
データベース アプリケーションに接続するには、多くの場合、データベースと直接やり取りする表形式データ ストリーム (TDS) プロトコルを使用するアプリケーション用の一連のライブラリをインストールする必要があります。
Microsoft Fabric には、データベースだけでなく複数のデータ ソースを操作するための GraphQL インターフェイスが含まれています。 これらのソースを組み合わせて、統合されたデータ ビューを作成することもできます。 GraphQL は API 用のクエリ言語です。これを使用すると、必要なデータを正確に要求できるため、徐々に API を簡単に進化させ、強力な開発者ツールを実現することができます。 API 内のデータを完全に理解できる形で記述し、クライアントに必要なものだけを正確に要求することができます。 このように、GraphQL を使用するアプリは、サーバーではなく取得するデータを制御するため、高速かつ安定したものになります。 GraphQL インターフェイスは、データ ソースに含まれるデータ セットのビューを提供するものと考えることができます。 データのクエリを実行し、変異を使用してデータを変更することができます。 GraphQL の詳細については、このリファレンスを参照してください。
Fabric SQL クエリ エディター内から直接 GraphQL API の構築を開始できます。 Fabric がデータに基づいて GraphQL スキーマを自動的に構築すると、アプリケーションは数分で接続できます。
GraphQL 用 API を作成する
アプリケーションに使用する GraphQL 用 API を作成するには:
チュートリアル データベース ポータルを開きます。
[新規] ボタンを選択し、[GraphQL 用 API] を選択します。
項目の [名前] にテキスト「supplier_impact_gql」を入力し、[作成] を選択します。
[データの選択] パネルが表示されます。
SupplyChain.vProductsBySuppliers
(このチュートリアルで先ほど作成したビュー) が見つかるまでスクロールします。 それを選択します。読み込みボタンを選択します。
[Query1] パネルで、そこに表示されるテキストを次の GraphQL クエリ文字列に置き換えます。
query { vProductsbySuppliers(filter: { SupplierLocationID: { eq: 7 } }) { items { CompanyName SupplierLocationID ProductCount } } }
[Query1] ウィンドウで [実行] ボタンを選択します。 GraphQL クエリの結果は、JSON 形式で [結果] ウィンドウに返されます。
リボンの [エンドポイントのコピー] ボタンを選択します。
[リンクのコピー] パネルが表示されたら、[コピー] ボタンを選択します。 このチュートリアルのサンプル アプリケーションで使用できるように、この文字列をメモ帳または他の場所に保存します。 たとえば、次のようなものです:
https://api.fabric.microsoft.com/v1/workspaces/<work space id>/graphqlapis/<graph api id>/graphql
これで、GraphQL 用 API が接続と要求を受け入れる準備ができました。 API エディターを使用して GraphQL クエリをテストおよびプロトタイプ化し、スキーマ エクスプローラーを使用して、API で公開されているデータ型とフィールドを確認できます。 詳細については、Fabric ポータルで SQL データベースから GraphQL API を作成する方法に関する記事を参照してください。
データのクエリを実行する Web アプリケーションを作成する
このチュートリアルでは、これまでに Contoso の売上と製品を保存するデータベースを作成し、Transact-SQL (T-SQL) を使用してサプライヤーと参加エンティティを追加しました。 次は、開発者が T-SQL を習得することなくデータを使用できるようにし、1 つのインターフェイスで複数の Microsoft Fabric コンポーネントのクエリを実行できるようにすることが目標です。 このアプリケーションは、このチュートリアルで作成した GraphQL エンドポイントにアクセスするセルフホステッド .NET REST インターフェイスでローカルに実行します。 また、このアプリケーションを Web アプリケーションとして Microsoft Azure に直接デプロイすることや、選択した別の Web サーバーにデプロイすることができます。
GraphQL 用 Fabric SQL データベース API を使用して Web アプリケーションを作成する
あなたは、自然災害やその他の障害によって、ある場所のサプライ チェーンが中断された場合に、影響を受けるすべてのサプライヤーを表示するアプリケーションを作成するように求められました。 このコードは、GraphQL クエリを使用して、チュートリアルの最後のセクションで作成した SQL In Fabric GraphQL エンドポイントのクエリにアクセスする ASP.NET アプリケーションを作成する方法を示します。
このチュートリアルのアプリケーションのサンプル スクリーンショットは次のとおりです。