---
title: 20260624_待望の Fabric Apps 徹底実践-Snowflake ミラーリング × Data Agent ×巡回セールスマン問題を「オール Fabric」で全部乗せ実装-
tags: 
author: [Masahide TAKASUKA](https://docswell.com/user/3324212129)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/V7NYLYL6E8.jpg?width=480
description: 2026/6/24(水) 19:00 〜 21:30 開催 Microsoft Data Analytics Day(Online) 勉強会 2026/06 https://sqlserver.connpass.com/event/396942/
published: June 24, 26
canonical: https://docswell.com/s/3324212129/58NNVQ-2026-06-24-170925
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/V7NYLYL6E8.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
待望の Fabric Apps 徹底実践
Snowflake ミラーリング × Data Agent ×巡回セールスマン問題を
「オール Fabric」で全部乗せ実装
Microsoft Data Analytics Day
2026/6/24
高須賀 将秀


# Page. 2

![Page Image](https://bcdn.docswell.com/page/YJ9P4P4R73.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
2 /29
自己紹介
たかすか
まさひで
高須賀 将秀
博士（情報学）（2023/3）
研究分野：組合せ最適化，数理最適化，オペレーションズ・リサーチ（OR），グラフ理論
高須賀将秀のホームページ
所属：NTT西日本 デジタル改革推進部（2021/8～），
法政大学 デザイン工学部 兼任講師（2024/4～），個人事業（Udemy講師等）（2024/6～）
業務：データドリブン経営を牽引する立場
・データ活用基盤のシステム開発 ・データ分析手法の研究
・データ分析活用事例の提案 ・デジタル人材育成
資格：クラウド資格（AWS全冠，Azure/AppliedSkills全冠，GCP全冠， Snowflake（7/11）），
受賞：AWS Community Builders（2026），AWS All Certifications Engineers（2024, 2025），
Microsoft Top Partner Engineer Award（2024），Microsoft Innovative Educator Experts 2025-2026，
Google Cloud Partner Top Engineer（2026），Google Cloud Partner All Certification Holders（2025），
Jagu‘e’r Award 優秀賞（2025），Snowflake Squad（2024, 2025）， Microsoft Certified Trainer（MCT）


# Page. 3

![Page Image](https://bcdn.docswell.com/page/GJ8DQDQGJD.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
3 /29
私の研究（博論）内容
◼ 与えられた全ての工事に対して立会者の割当を決定する問題である
◼ 移動距離や立会者のスキル等の様々な条件を考慮し割当を決定している
◼ 条件は万人共通の条件もあれば手配者の思考や嗜好によって異なるものもある
入力
出力
工事4
工事1
1
工事2 4
手配者
工事5
2
1
工事6
3
工事7
工事8
8
工事9
6
工事5
数理モデル
5
工事6
工事3
手配者
の思考/嗜好
=
7
工事2 4
2
5
工事3
立会者1～4
工事4
工事1
立会者4
3
工事7
立会者1
7
立会者2
工事8
ブラックボックス
化
8
工事9
9
9
立会者3
6


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJLMXMXXER.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
4 /29
私の研究（博論）内容
◼ 高度な技能を有している手配者により意思決定が行われている工事立会者手配
業務に対し実用的な手配結果を算出可能な数理モデルを構築した
長期効果
短期効果
付随効果
過去の工事立会者手配業務
デジタルデータ活用による工事立会者手配業務
人件費
年間1億（関東エリア：年間6万件）
年間0.1億（関東エリア：年間6万件）（想定）
品質
年間工事事故5件
年間工事事故0件（想定）
総移動時間
11,424 s（3.2 h）
11,593 s（3.2 h）※1
総割当ペナルティ
163 pt
81 pt※1
手配時間
3時間2回/1日
5分×2回/1日
やり方
アナログ（手書き）
デジタル
手配結果
※1：数理モデル4で総移動時間を重視すると, 総合移動時間10,697 s, 総品質146 ptとなる.


# Page. 5

![Page Image](https://bcdn.docswell.com/page/47MYLYL37W.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
5 /29
Agenda
本日お話しする内容と所要時間
01
技術スタックと到達点
02
前提条件 — 3 つの致命点
03
事前準備（管理者作業）
04
ステップ 1〜6：構築から公開まで
05
実体験ベースのつまずきと回避策
06
まとめと次の一歩
本日構築するアプリと使う技術
リージョン / ライセンス / テナント設定
Fabric 管理ポータルでの設定
Dev Container からデプロイまでを順に解説
代表的な 7 症状と対処法
覚えるべきコマンドと拡張
2 min
3 min
2 min
10 min
2 min
1 min


# Page. 6

![Page Image](https://bcdn.docswell.com/page/P7R9K9KRE9.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
6 /29
待望の Fabric Apps ～分離構成から一体化へ～
これまでの分離構成でしかTSPアプリケーションを実装できなかったが，Fabric Apps による統合で一体化を実現
BEFORE ― 分離構成
Fabric（DWH）
データ基盤のみ
AFTER ― Fabric Apps で一体化
✕
分断
Microsoft Fabric（Fabric Apps）― すべて項目として一体化
App Service 等コンテナ
フロント / 計算 / 認証
これまでの課題
・認証・ホスト・API・シークレットを毎回ゼロから配線
・Functions／APIM・Key Vault・Storage 等を個別に用意
・Fabric（DWH）とアプリ基盤が別世界で権限・ガバナンス分断
・小さな業務アプリでも構築が重い
→ 「待望」の理由
フロント
データ
Fabric Apps で変わる（npx rayfin up の 1 コマンド）
・DATA：SQL + GraphQL（@entity から自動生成）
・AUTH：Entra ID SSO（App 登録の手作業から解放）
・HOSTING：Static Hosting（フロント同梱で配信）
・すべて Fabric 内の項目として一体管理できる
今回の題材：この Fabric Apps で TSP App（地図クリックで地点追加 → 最短巡回路を計算）を実装する
前提条件 → 開発環境 → デプロイ → トラブル対処までを一気通貫で扱う
コンピュート
認証（SSO）


# Page. 7

![Page Image](https://bcdn.docswell.com/page/PJXQLQLY7X.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
7 /29
巡回セールスマン問題（TSP）とは
・巡回セールスマン問題とは、全地点を一度ずつ訪れて出発点へ戻る最短巡回路を求める組合せ最適化問題である
目的
変数
min ෍ 𝑑𝑖𝑗 𝑥𝑖𝑗
𝑥𝑖𝑗 ∈ {0,1}
地点 i の次に j を訪れるとき 1 となる
𝑖,𝑗
総移動距離 𝑑𝑖𝑗 の総和を最小化する
制約
計算量
各地点は前後 1 回ずつ訪問、部分巡
回は MTZ 制約で排除
地点数 n の増加で解候補が階乗的
に増える
入次数 = 出次数 = 1
APPROACH ／ 解法
NP困難
・厳密解：分枝限定法や Concorde ソルバーで最適性を保証する
・近似解：最近傍法で初期巡回路を作り、2-opt で交差を解消して短
縮する
・TSP App は対象地点が小規模なため、実用的な時間で最適巡回路
を計算している


# Page. 8

![Page Image](https://bcdn.docswell.com/page/3JK9L9L4JD.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
8 /29
これまでと Fabric Apps の比較
■ 同じ TSP App を、従来の Azure サービスの組合せと Fabric Apps で構築した場合の差を比較する
比較軸
これまで（Azure サービスの組合せ）
構築コマンド数
6 種のサービスを個別に配線
初期構築時間
半日～1 日（手作業が中心）
慣れるまでは半日〜1日、慣れれば約 1 時間
認証
Entra ID を手動で App 登録
Fabric SSO で自動（ログイン不要）
※Data Agent 利用時は Entra 登録要
データ層
SQL DB を別途作成・接続
Fabric SQL Database を別途定義・構築
（自動生成ではなく、同様に定義が必要）
API 生成
Functions／APIM を実装
@entity から GraphQL を自動生成
ガバナンス
Azure と Fabric で権限が分断
Fabric 内に項目として一体管理
※ 構築時間は習熟度で変動（慣れるまでは従来と同程度、慣れれば約 1 時間）。
Fabric Apps（Rayfin CLI）
npx rayfin up の 1 コマンド


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LE3W3W3DE5.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
9 /29
技術スタックと到達点
今日構築するもの — 構成要素と役割
GOAL
TSP App（地図クリック → 巡回路計算）を Microsoft Fabric Apps として本番公開する
Source
Build
TSP App （ソース）
Deploy
Rayfin CLI
Fabric Apps
STACK
Rayfin CLI
TypeScript / React / Vite
Fabric SQL Database
Dev Container
開発・デプロイ
フロントエンド
バックエンド（自動）
Docker 開発環境


# Page. 10

![Page Image](https://bcdn.docswell.com/page/8EDK4K427G.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
10 /29
Rayfin CLI とは ― 構築・デプロイの要
TypeScript の定義から データ・API・認証・ホスティングを自動生成し、1 コマンドで公開
rayfin CLI ＝ Fabric Apps を構築・デプロイする公式 CLI（npm: @microsoft/rayfin-cli）
DATA
API / LOGIC
schema.ts の @entity 定義から
DAB が @entity から生成
AUTH
HOSTING
App 登録の手作業から解放
フロント同梱で 1 コマンド配信
SQL Database を自動生成
Entra ID SSO を自動構成
GraphQL を自動生成
KEY COMMANDS
$ npx rayfin login … クラウド認証（SSO）
$ npx rayfin up … ビルド→デプロイを 1 コマンド
$ npx rayfin up db apply … テーブル作成後にスキーマ適用
$ rayfin connector add … … 外部データのコネクタ追加
静的ホスティングで配信
前提：VS Code ／ Dev Container 上で実行（GUI 構築は未対応 ― UI デプロイは今後の開発計画）
Rayfinとは？Microsoft Fabricで動くAI時代のアプリ基盤を徹底解説
https://www.ai-souken.com/article/what-is-rayfin-microsoft-fabric


# Page. 11

![Page Image](https://bcdn.docswell.com/page/V7PKMKMLJ8.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
11 /29
Agenda
ここまでの到達点と、これから進めるステップ
01
技術スタックと到達点
02
前提条件 — 3 つの致命点
03
事前準備（管理者作業）
04
ステップ 1〜6：構築から公開まで
05
実体験ベースのつまずきと回避策
06
まとめと次の一歩
本日構築するアプリと使う技術
リージョン / ライセンス / テナント設定
Fabric 管理ポータルでの設定
Dev Container からデプロイまでを順に解説
代表的な 7 症状と対処法
覚えるべきコマンドと拡張
✓ 完了
現在地
2 min
10 min
2 min
1 min


# Page. 12

![Page Image](https://bcdn.docswell.com/page/2JVV9V96JQ.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
12 /29
Step 0 — 事前準備（管理者作業）
3 つの設定をテナント / ワークスペースに反映する
01
02
03
REQUIRED
Fabric Apps を有効化
テナント設定で ON にしておく
WHERE
HOW
FAILURE MODE
Fabric 管理ポータル
テナント設定 → [Fabric アプリ項目を有効にする] ON
無効だとデプロイ自体が不可
REQUIRED
対応リージョンでワークスペース作成
West US 2 などの対応リージョン必須
WHERE
HOW
新規ワークスペース
容量 (F SKU) を West US 2 等の対応リージョンに
Japan East は 403 / 401 エラー
REQUIRED
アカウントにライセンス付与
Fabric / Power BI ライセンスが必要
WHERE
HOW
admin.microsoft.com
ユーザー → ライセンスとアプリ → Power BI / Fabric
リージョンは作成後の変更不可。
FAILURE MODE
FAILURE MODE
未割当だと User is not licensed


# Page. 13

![Page Image](https://bcdn.docswell.com/page/5EGLZLZ2JL.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
13 /29
Step 1 — 開発環境を Dev Container で構築
.devcontainer 配下の 2 ファイルと VS Code 操作
FILES
.devcontainer/devcontainer.json
name / dockerfile を定義
forwardPorts: [5173, 3000]
WORKFLOW
01
Docker Desktop を起動
未起動だと docker daemon not running
02
VS Code でコンテナーで再度開く
Dev Container が立ち上がる
.devcontainer/Dockerfile
typescript-node:24-trixie ベース
@microsoft/rayfin-cli を global install
03
プロンプトが node ➜ に変化
コンテナ内ターミナルで作業を継続


# Page. 14

![Page Image](https://bcdn.docswell.com/page/4JQYLYL97P.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
14 /29
Step 2-3 — ログインとアプリ作成
Rayfin CLI でクラウド認証 → プロジェクト生成
STEP 2 ログイン
$ npx rayfin login --encryption-fallback-enabled
ブラウザが開く → ログイン → Authentication successful で成功
STEP 3 TSP App プロジェクトを取得
$ git clone https://github.com/mshdtksk/tsp-fabric-app
$ cd tsp-fabric-app
$ npm install
CAUTION
rayfin/.env や .deployments.json はコミットしない
SUCCESS
依存解決が完了すれば、ローカル起動の準備 OK


# Page. 15

![Page Image](https://bcdn.docswell.com/page/K74WDW5RE1.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
15 /29
Step 4-5 — vite 設定とローカル起動確認
Container 利用時必須の設定と動作確認
STEP 4 vite.config.ts を修正
export default defineConfig({
server: {
host: &#039;0.0.0.0&#039;, // ← 追加
port: 5173,
},
});
STEP 5 ローカル起動 → 動作確認
$ npm run dev
→ http://localhost:5173/
SUCCESS
TSP App の地図 UI が表示されれば成功
・地図クリックで地点追加
・住所入力で地点追加
・「巡回路を計算」で round trip 表示
WHY
Docker コンテナ内のデフォルト設定では、ホストから localhost に到達できない。0.0.0.0
にバインドすることで疎通する。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/LJ1YZYWVEG.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
16 /29
Step 6 — Fabric にデプロイ
ビルドからエンドポイント発行まで
01 dev を停止
02 本番公開コマンド
$ npx rayfin up --workspace-id &lt;GUID&gt; --yes
Ctrl + C
PIPELINE
Build
ビルド
Upload
アップロード
✓ https://your-app.fabric.microsoft.com/...
が払い出されれば完了 — Fabric ポータルからも TSP App として確認できる
Deploy
デプロイ
Endpoint
URL 発行


# Page. 17

![Page Image](https://bcdn.docswell.com/page/GJWG9G6372.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
17 /29
Step 6 — Fabric にデプロイ
ビルドからエンドポイント発行まで
https://fond-wren-d39f1e3aa6-westus2.webapp.fabricapps.net/
地図上でクリックすると住所がテーブルに書き込まれる


# Page. 18

![Page Image](https://bcdn.docswell.com/page/4EZL9LYG73.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
18 /29
Troubleshooting
発生した症状から原因・対処を即座に引ける早見表
SYMPTOM
CAUSE
FIX
docker daemon not running
Docker 未起動
Docker Desktop を起動
failed to download context
一時的な通信不良
もう一度実行（再実行で復旧）
rayfin not found
コンテナ外で実行
コンテナ内ターミナルで実行
User is not licensed (401)
ライセンス未割当
Fabric / Power BI 付与 → 再ログイン
403 Forbidden
リージョン非対応
West US 2 で再作成
localhost に繋がらない
vite 設定不足
host: &#039;0.0.0.0&#039; を追記
predev で止まる
通信に時間がかかっている
待つ／rayfin env を単体実行


# Page. 19

![Page Image](https://bcdn.docswell.com/page/Y76WKWDQ7V.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
19 /29
Fabric Apps vs Snowflake
連携機能はどちらも拡充中。一方でアプリ構築・既存DB接続は一長一短
観点
Microsoft Fabric / Fabric Apps
Snowflake / Streamlit in Snowflake
データ連携
◎ ミラーリングが超優秀
データを動かさず、低コスト（お金・時間）で多クラウド連携
△ ゼロコピーは Salesforce のみ
openflow＋コンテナにコネクタ構築が必要。スキーマ変更に追従できず都度
設定
アプリ構築
△ rayfin CLI ＋ VS Code が既定
GUI 構築は未対応（UI デプロイは今後の開発計画）
◎ Snowsight（GUI）で完結
Streamlit を GUI でコーディング。CoCo でさらに容易
既存DB接続
△ 新規 SQL DB はOK、既存・ミラーDBが難しい
ミラーDBがアプリから参照しづらい（SQL エンドポイント経由を検討）
◎ テーブルパス指定だけで接続
Streamlit in Snowflake は既存DBへ手軽に接続できる
率直な所感：データ連携の伸びしろは Fabric ミラーリング、アプリ構築の手軽さは Streamlit in Snowflake
改善してほしい点：
・Fabric SSOなしのPublic公開（データの権限制御ができなくなるデメリットあり）
・IDEなしでの構築
・既存テーブルやデータエージェントの簡易な連携


# Page. 20

![Page Image](https://bcdn.docswell.com/page/G75MPM3274.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
20 /29
強み：Fabric ミラーリングで低コスト連携
データを動かさず、各クラウドのデータを Fabric（OneLake）へ低コストで集約
Microsoft Fabric ／ OneLake
Snowflake
ミラーリング
低コスト・低遅延
Salesforce
⇒
他クラウド・DB
◎ マルチクラウド時代、データの置き場を気にせず低コストで連携
集約
分析
Fabric Apps 化
データの場所を問わず、集約 → 分析 → アプリ化まで一気通貫
△ 改善希望：ミラー表示の自動更新（現状はブラウザ更新が必要）


# Page. 21

![Page Image](https://bcdn.docswell.com/page/9J2969Z1ER.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
21 /29
Agenda
ここまでの到達点と、これから進めるステップ
01
技術スタックと到達点
02
前提条件 — 3 つの致命点
03
事前準備（管理者作業）
04
ステップ 1〜6：構築から公開まで
05
実体験ベースのつまずきと回避策
06
まとめと次の一歩
本日構築するアプリと使う技術
リージョン / ライセンス / テナント設定
Fabric 管理ポータルでの設定
Dev Container からデプロイまでを順に解説
代表的な 7 症状と対処法
覚えるべきコマンドと拡張
✓ 完了
✓ 完了
✓ 完了
✓ 完了
✓ 完了
現在地


# Page. 22

![Page Image](https://bcdn.docswell.com/page/DEY494R4JM.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
まとめ
CLOSING / KEY TAKEAWAYS
01
巡回セールスマン問題を Fabric Apps 上に実装し、最短巡回路を実用的な時間で計算できることを確認した
02
初期構築は慣れるまで半日～1 日かかるが、慣れれば npx rayfin up の 1 コマンドで約 1 時間に短縮できる
03
認証・データ層・API 生成は自動化される一方で、リージョン / ライセンス / テナントの 3 前提を外すと構築は失敗する
04
環境依存のつまずきは代表的な 7 症状として残るため、対処法を手元に備えて立ち上げに臨む
Thank you
ご清聴ありがとうございました
22 /29


# Page. 23

![Page Image](https://bcdn.docswell.com/page/VJNYLYD678.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
23 /29
【発展編】気象データ App で 3 ステップを実演
STEP ①
Snowflake Mirroringでデータ取得
…SnowflakeはMarketPlace機能でオープン
データが取得しやすい（PODBを利用）
STEP①
・OneLake へリアルタイム同期
・データを動かさず低コスト連携
・SQL Analytics Endpoint で参照
STEP②
STEP ②
取得したデータをFabricAppsから参照
…OneLakeに保持したテーブルをFabricApps
配下のテーブルにコピーしてFabricAppsから参照。
ダイレクトに参照できる方法があれば知りたい！
・クロス DB 制約をコピーで回避
・DAB が GraphQL を自動生成
・React SPA からデータ取得
STEP③
STEP ③
DataAgentをFabricAppsから参照
・・・DataAgentはOneLake上のテーブルを参照
ここで分析した結果が地図に反映されるとよい
・MSAL で Azure AD トークン取得
・Assistants API で AI Skill 呼出
・気象データに自然言語で質問
https://polar-cove-adcd330d96-westus2.webapp.fabricapps.net/
データを移動せず、集約 → 参照 → AI 対話まで Fabric App だけで完結する


# Page. 24

![Page Image](https://bcdn.docswell.com/page/YE9P4PGRJ3.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
24 /29
STEP① Snowflake をミラーリング
Fabric ポータルでミラー DB を作成し、Snowflake のテーブルをリアルタイムに同期する
CONNECTION
サーバー：******-…snowflakecomputing.com
ウェアハウス：***** ／ 認証：基本
接続後、ミラー DB が OneLake に出現
MIRRORING
データを動かさず低コスト・低遅延で同期
SQL Analytics Endpoint 経由で SELECT 可
workspaceId / itemId を控えておく
スキーマ追従も自動（マルチクラウド対応）
Fabric：［新しいミラー化 Snowflake］ソース接続の設定画面
◎ ミラーリングが超優秀：データの置き場を気にせず、低コストで多クラウド連携できる


# Page. 25

![Page Image](https://bcdn.docswell.com/page/GE8DQDVGED.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
25 /29
STEP② ミラーDBを App から参照する
ミラー DB と App の SQL DB は直結できない（と思う） 。間にデータコピーを挟む
Snowflake ミラー DB
コピースクリプト
Fabric SQL
DAB
React SPA
(SQL Analytics EP)
(Node.js / BulkLoad)
Database
(GraphQL 自動生成)
(Fabric App)
✕ クロス DB クエリ不可（Error 40515）：3-part 名前解決は禁止。同一ワークスペース内の別アイテムも直参照できない
rayfin.yml の connectors: は「開発時のスキーマ探索」専用。rayfin up のデプロイでは送信されない
⇒ Endpoint と SQL DB に別々に接続し、スクリプトでデータをコピーして橋渡しする


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LELMXM5X7R.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
26 /29
STEP② 参照を実装する 6 ステップ
コネクタでスキーマ探索 → @entity 定義 → デプロイ → データ投入 → 設定同期
01
コネクタ追加
rayfin connector add … --connector fabric-sqlanalytics（workspaceId / itemId を指定）
02
エンティティ定義
@uuid / @text / @decimal / @date で列を定義し、@role(&#039;authenticated&#039;,[&#039;read&#039;]) を付与
03
スキーマ登録
rayfin/data/schema.ts の schema 配列にエンティティを追加
04
デプロイ
npx rayfin up → DAB JSON と静的ホスティングを適用し、空テーブルを自動生成
05
データ投入
populate スクリプトで Endpoint→SQL DB に BulkLoad（tedious v19 は rows を第2引数）
06
設定同期
npx rayfin up db apply（必ずテーブル作成後に実行。先に実行すると 500）
順序が命：テーブルが無い状態で db apply は 500。Rayfin up 後はサインインし直して JWT を再取得する


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4JMYLY33JW.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
27 /29
STEP③ Data Agent を App から参照
ブラウザから MSAL で Azure AD トークンを取得し、Assistants API 互換で AI Skill を呼ぶ
CALL FLOW
正しいパス /dataagents/{id}/aiassistant/openai
AI Skill は Publish しないと推論不可
Assistants→threads→runs→messages の多段
assistant_id は /assistants で取得（asst_xxx）
AUTH / REGISTER
SPA で App 登録＋リダイレクト URI を追加
スコープは Item.Execute.All を明示指定
iframe は acquireTokenRedirect で突破
allowRedirectInIframe + localStorage
Entra：SPA としてアプリ登録し、リダイレクト URI を設定
Assistants API は 2026/8/26 廃止予定 → MCP エンドポイントへ移行していく


# Page. 28

![Page Image](https://bcdn.docswell.com/page/PJR9K9QR79.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
28 /29
STEP③ つまずき早見表（Data Agent 接続）
症状から原因と対処を即座に引ける早見表
SYMPTOM
CAUSE
FIX
404 EntityNotFound
AI Skill が未公開／パス誤り
Publish 後に Published URL を使う
401 InvalidToken
Rayfin JWT を誤使用
MSAL で Azure AD トークンを取得
403 required scopes
スコープ不足
Item.Execute.All を明示指定
400 BadRequest (runs)
assistant_id が UUID 形式
/assistants で asst_xxx を取得
popup / ssoSilent 失敗
iframe の cookie / popup ブロック
acquireTokenRedirect にフォールバック
TypeScript ランタイムのデプロイ不可バグは、ブラウザ直接呼び出し（MSAL）で回避した


# Page. 29

![Page Image](https://bcdn.docswell.com/page/PEXQLQ5YJX.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
29 /29
完成：気象データ Explorer（デモ）
Snowflake の気象データを Fabric App 上で可視化し、Data Agent に自然言語で質問できる
01
データを動かさず Snowflake をミラーリングし、OneLake へ低コスト集
約
02
クロス DB 制約はコピー＋DAB で回避し、ミラー表を App から参照
03
MSAL＋Assistants API で Data Agent を呼び、気象データに自然
言語で問合せ
気象データの地図可視化（ミラー表を Fabric App から参照）
データの置き場を問わず、集約・参照・AI 対話まで Fabric App だけで一気通貫に実現できる


# Page. 30

![Page Image](https://bcdn.docswell.com/page/3EK9L964ED.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
宣伝1
• [1] Fabric Development Deep Dive [2026-06]
• 2026/6/29 20:00～21:00
• https://sqlserver.connpass.com/event/396469/
30 /29


# Page. 31

![Page Image](https://bcdn.docswell.com/page/L73W3W6D75.jpg)

© 2026 NTT West, Inc. All Rights Reserved.
宣伝2
• 翔泳社 EnterpriseZineにて、「ITアーキテクトに求められる、新たな
キャリア戦略とは」（全4回）で連載中（次回最終回は7月中旬）
• 博士号兼3大クラウド資格全冠エンジニアが語る、トップガンITアーキテクトへの道のり（4/28）
• NTT西日本のデータ基盤刷新、数十億円のコスト削減と東西共同利用化 3大クラウド資格全冠どう生かした（5/28）
• NTT西日本が「1人の成功」を組織としてスケールできた理由 トップガン人材が考える、人材育成術（6/18）
• https://enterprisezine.jp/author/842
31 /29


