はじめに
でも紹介させていただきました、Fabric ワークスペースのプライベート リンク (プレビュー)
でつまづいたところを記録しておきます。
非表示のリソースの表示
これはこの機能の問題じゃありませんが、ドキュメントの UI とは異なっていたので記録します。
プライベートリンクのリソースを作成すると、非表示のリソースとして作成されます。
作成したリソースの内容を確認するには、ポータル上のビューの管理から設定変更することで非表示リソースを表示させます
API 呼び出し先
本題です。ドキュメント ワークスペース レベルのプライベート リンクでサポートされるシナリオと制限事項 (プレビュー) ではワークスペース API に対する要求がサポートされていることが示されています。
結論としては、通常 API 要求先となる api.fabric.microsoft.com ではダメで、API 用の ワークスペースプライベートエンドポイント FQDNとる {workspaceid}.z{xy}.w.api.fabric.microsoft.com に対して送信する必要があります。
これは プライベートエンドポイントを作成した際に Private DNS Zone を統合していれば自動登録されているはずです。
テナントレベルのプライベートエンドポイントでは、api.microsoft.com がプライベートエンドポイント名前解決できるように DNS Zone が構成されるので、こうした対処は不要です
なお、api.microsoft.com の置き換えについてではないですが、このあたりの接続方法の話 は別のページの Fabric ワークスペースのプライベート リンク (プレビュー) に書かれてます。
MS Learn 読解力不足。。。
失敗の様子
api.fabric.microsoft.com で GET Workspace を実行した場合はこのようになります。
$workspaceId = "ワークスペース URLから確認できる ID"
$token = az account get-access-token --resource "https://api.fabric.microsoft.com" --query accessToken -o tsv
# get workspace
$uri = "https://api.fabric.microsoft.com/v1/workspaces/$workspaceId"
Invoke-RestMethod -Method GET -Uri $uri -Headers @{Authorization="Bearer $token"} -ContentType "application/json"
成功の様子
{workspaceid}.z{xy}.w.api.fabric.microsoft.com に送信します。
v1/workspace の API であれば前述のサポート対象なので動作します。(v1/admin ではない)
$uri = "https://<workspace ID>.z<workspace ID 先頭2文字>.w.api.fabric.microsoft.com/v1/workspaces/$workspaceId"
Invoke-RestMethod -Method GET -Uri $uri -Headers @{Authorization="Bearer $token"} -ContentType "application/json"
現状ポータルが利用できないのですが、 API 経由ならアイテムの作成も可能です
以上、よくよく考えれば当然なのですが、何か役に立てば幸いです。




