หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ในการเริ่มต้นใช้งานด่วนนี้ คุณใช้ Fabric Embed เพื่อเพิ่มแดชบอร์ด Microsoft Fabric Real-Time ไปยังเว็บแอป JavaScript หรือ TypeScript บนเบราว์เซอร์ เมื่อใช้ Fabric Embed แอปของคุณสามารถแสดงแดชบอร์ดในขณะที่ผู้ใช้เข้าถึงโดยใช้ข้อมูลประจําตัว Microsoft Entra ID และสิทธิ์ที่ได้รับมอบหมาย
แอปใช้ Microsoft Authentication Library for JavaScript (MSAL.js) เพื่อร้องขอโทเค็นการเข้าถึงที่ได้รับมอบหมายสําหรับทรัพยากร Microsoft Fabric API และ Fabric Embed SDK เพื่อแสดงแดชบอร์ด เมื่อคุณทําเสร็จแล้ว แอปของคุณจะแสดงแดชบอร์ด Real-Time โดยไม่ต้องส่งผู้ใช้ไปยังพอร์ทัล Fabric
ข้อกําหนดเบื้องต้นสําหรับการฝังแดชบอร์ด Real-Time
ก่อนที่คุณจะเริ่ม ให้กรอก ตั้งค่าสภาพแวดล้อมของคุณสําหรับ Microsoft Fabric Embed การตั้งค่านั้นสร้างหรือยืนยันการลงทะเบียนแอป Microsoft Entra, สิทธิ์ที่ได้รับมอบหมาย, พื้นที่ทํางาน Microsoft Fabric, ความจุ Fabric ที่ใช้งานอยู่ และค่าแดชบอร์ดที่การเริ่มต้นใช้งานด่วนนี้ใช้
คุณต้องมีค่าและสิทธิ์ต่อไปนี้ด้วย
| ข้อกำหนด | Description |
|---|---|
| โครงการเว็บแอป | แอป JavaScript หรือ TypeScript บนเบราว์เซอร์ที่ใช้ npm โค้ดฝังตัวในการเริ่มต้นใช้งานด่วนนี้จะทํางานฝั่งไคลเอ็นต์ |
| รหัสไคลเอ็นต์การลงทะเบียนแอป Microsoft Entra | รหัสไคลเอ็นต์สําหรับการลงทะเบียนแอปที่ลงชื่อเข้าใช้ผู้ใช้โดยใช้ MSAL.js |
| รหัสผู้เช่า Microsoft Entra | รหัสผู้เช่าที่มีการกําหนดค่าการลงทะเบียนแอปและผู้ใช้ Fabric |
| สิทธิ์ API ที่ได้รับมอบหมาย | ความยินยอมที่ได้รับมอบหมายสําหรับ Fabric.Embed และItem.Read.All คําขอโทเค็น MSAL ใช้ขอบเขต Fabric .default เพื่อร้องขอสิทธิ์ที่ให้ความยินยอมเหล่านี้ |
| ID พื้นที่ทํางาน | รหัสพื้นที่ทํางาน Microsoft Fabric ที่มีแดชบอร์ด Real-Time และถูกกําหนดให้กับความจุ Fabric ที่ใช้งานอยู่ |
| Real-Time รหัสรายการแดชบอร์ด | รหัสรายการ Microsoft Fabric สําหรับแดชบอร์ด Real-Time ที่คุณต้องการฝัง |
| การเข้าถึงของผู้ใช้ | ผู้ใช้ที่ลงชื่อเข้าใช้สามารถเปิดแดชบอร์ด Real-Time ใน Fabric แดชบอร์ดแบบฝังจะใช้สิทธิ์ที่ได้รับมอบหมายของผู้ใช้รายนั้น |
หมายเหตุ
Microsoft Fabric Embed อยู่ในการแสดงตัวอย่างสาธารณะ สําหรับชนิดรายการที่รองรับและข้อจํากัดการรับรองความถูกต้อง โปรดดู ข้อจํากัดสําหรับ Microsoft Fabric Embed
ติดตั้ง MSAL.js และ SDK ฝังตัว Fabric
จากโฟลเดอร์โครงการเว็บแอป ให้ติดตั้งแพคเกจฝั่งไคลเอ็นต์ที่การเริ่มต้นใช้งานด่วนนี้ใช้
npm install @azure/msal-browser @microsoft/fabric-embed
หากคําแนะนําการเตรียมความพร้อมตัวอย่างของคุณมีคําสั่งแพ็คเกจ Fabric Embed SDK เฉพาะรุ่น ให้ใช้คําสั่งนั้นสําหรับ@microsoft/fabric-embedแพ็คเกจ หลังการติดตั้ง ให้ยืนยันว่าpackage.jsonรายการ@azure/msal-browserและ@microsoft/fabric-embedในdependencies
กําหนดค่าการรับรองความถูกต้องของ Microsoft Entra สําหรับ Microsoft Fabric Embed
MSAL.js (@azure/msal-browser) ลงชื่อเข้าใช้ผู้ใช้และรับโทเค็นการเข้าถึงที่ได้รับมอบหมายจาก แพลตฟอร์มข้อมูลประจำตัวของ Microsoft https://api.fabric.microsoft.comสําหรับ
.defaultขอบเขตจะขอ Microsoft Entra ID สําหรับสิทธิ์ Fabric ที่ได้รับมอบหมายซึ่งคุณยินยอมไว้แล้วสําหรับการลงทะเบียนแอป รวมถึง Fabric.Embed และItem.Read.All
สําหรับข้อมูลเพิ่มเติม โปรดดู ภาพรวมของ Microsoft Authentication Library (MSAL)
เพิ่มรหัสนี้ลงในไฟล์หรือโมดูลการรับรองความถูกต้องฝั่งไคลเอ็นต์ของแอปของคุณก่อนการ getAccessToken()เรียกใช้โค้ดฝังตัว
import {
AuthenticationResult,
InteractionRequiredAuthError,
PublicClientApplication,
} from "@azure/msal-browser";
const msal = new PublicClientApplication({
auth: {
clientId: "<client-id>",
authority: "https://login.microsoftonline.com/<tenant-id>",
redirectUri: window.location.origin,
},
});
const defaultScopes = ["https://api.fabric.microsoft.com/.default"];
async function getAccessToken(requestedScopes?: string[]): Promise<string> {
const scopes = requestedScopes ?? defaultScopes;
let accounts = msal.getAllAccounts();
if (accounts.length === 0) {
await msal.loginPopup({ scopes });
accounts = msal.getAllAccounts();
}
const account = accounts[0];
if (!account) {
throw new Error("No Microsoft Entra account is signed in.");
}
let result: AuthenticationResult;
try {
result = await msal.acquireTokenSilent({ scopes, account });
} catch (error) {
if (error instanceof InteractionRequiredAuthError) {
result = await msal.acquireTokenPopup({ scopes, account });
} else {
throw error;
}
}
return result.accessToken;
}
แทนที่ <client-id> และ <tenant-id>รวมถึงวงเล็บเหลี่ยมมุม ด้วยค่าจากการลงทะเบียนแอป Microsoft Entra ของคุณ ฟังก์ชันนี้getAccessToken()ส่งกลับโทเค็นการเข้าถึง Microsoft Fabric ที่ได้รับมอบหมายสําหรับผู้ใช้ Microsoft Entra ที่ลงชื่อเข้าใช้ หรือแสดงข้อผิดพลาดหากไม่มีผู้ใช้ลงชื่อเข้าใช้
เพิ่มคอนเทนเนอร์ HTML สําหรับแดชบอร์ด Real-Time แบบฝังตัว
เพิ่มองค์ประกอบ HTML ที่ Fabric Embed SDK แสดงแดชบอร์ด Microsoft Fabric Real-Time
idค่าต้องตรงกับการค้นหาคอนเทนเนอร์ในโค้ดฝังตัว และrolearia-labelระบุขอบเขตแดชบอร์ดแบบฝังสําหรับผู้ใช้โปรแกรมอ่านหน้าจอ
<div
id="fabric-embed-container"
role="region"
aria-label="Embedded Fabric Real-Time Dashboard"
></div>
กําหนดค่าผู้ให้บริการโทเค็นการเข้าถึงสําหรับการรีเฟรชโทเค็น SDK แบบฝังตัวของ Fabric
กําหนดค่าผู้ให้บริการโทเค็นการเข้าถึงที่ Fabric Embed SDK ใช้เพื่อรีเฟรชโทเค็นการเข้าถึง Microsoft Fabric ที่ได้รับมอบหมายสําหรับแดชบอร์ด Real-Time แบบฝัง ตัวอย่างต่อไปนี้ใช้ accessTokenProvider โดยใช้ getAccessToken() ฟังก์ชัน
const accessTokenProvider = {
callback: async (input?: { scopes?: string[] }) => {
const token = await getAccessToken(input?.scopes);
return { token };
},
};
ฝังแดชบอร์ด Real-Time ด้วย SDK แบบฝังตัวของ Fabric
ใช้ Fabric Embed SDK เพื่อแสดงแดชบอร์ด Microsoft Fabric Real-Time ในคอนเทนเนอร์ HTML ชนิด SDK ตัวอย่างสาธารณะในตัวอย่างนี้ใช้ KQLDashboard* ชื่อสําหรับการฝังแดชบอร์ด Real-Time
การกําหนดค่าแบบฝังจะใช้ค่าเหล่านี้
| ฟิลด์การตั้งค่าคอนฟิก | ค่า |
|---|---|
itemId |
รหัสรายการแดชบอร์ด Real-Time จากข้อกําหนดเบื้องต้น |
workspaceId |
รหัสพื้นที่ทํางาน Microsoft Fabric จากข้อกําหนดเบื้องต้น |
accessToken |
โทเค็นการเข้าถึง Microsoft Fabric ที่ได้รับมอบหมายส่งคืนโดยgetAccessToken() |
accessTokenProvider |
การเรียกกลับที่รีเฟรชโทเค็นที่ได้รับมอบหมายสําหรับแดชบอร์ดแบบฝังตัว |
viewMode |
KQLDashboardViewMode.Viewซึ่งแสดงแดชบอร์ดสําหรับการดู |
import {
EmbedManager,
KQLDashboardEmbedClient,
KQLDashboardViewMode,
KQLDashboardEmbedConfiguration,
} from "@microsoft/fabric-embed";
const embedManager = new EmbedManager({
embedClientClasses: [KQLDashboardEmbedClient],
});
async function embedDashboard() {
const container = document.getElementById("fabric-embed-container");
if (!container) {
throw new Error("The Fabric embed container was not found.");
}
const token = await getAccessToken();
const embedConfig: KQLDashboardEmbedConfiguration = {
accessToken: { token },
itemId: "<real-time-dashboard-item-id>",
itemType: "KQLDashboard",
workspaceId: "<workspace-id>",
viewMode: KQLDashboardViewMode.View,
eventHooks: { accessTokenProvider },
};
const client: KQLDashboardEmbedClient = embedManager.embed(container, embedConfig);
client.on("rendered", () => {
console.log("Real-Time Dashboard rendered.");
});
client.on("error", (error: unknown) => {
console.error("Microsoft Fabric Embed error:", error);
});
}
embedDashboard();
แทนที่ <real-time-dashboard-item-id> และ <workspace-id>รวมถึงวงเล็บเหลี่ยมมุม ด้วยไอเท็ม Fabric และรหัสพื้นที่ทํางานของคุณ
เมื่อโค้ดทํางาน SDK จะแสดงแดชบอร์ด Real-Time ในคอนเทนเนอร์และเขียน Real-Time Dashboard rendered. ไปยังคอนโซลเบราว์เซอร์
สำคัญ
ชื่อชนิด SDK ในบทความนี้ใช้คําศัพท์ตัวอย่างสาธารณะ หากแพคเกจตัวอย่างที่ติดตั้งของคุณใช้ชื่อประเภทอื่น ให้ใช้ชื่อจากแพคเกจรุ่นนั้น สําหรับข้อแม้อื่นๆ ของสัญญาแสดงตัวอย่าง โปรดดู ข้อจํากัดสําหรับ Microsoft Fabric Embed
ตรวจสอบแดชบอร์ด Real-Time ฝังตัว Microsoft Fabric
SDK ฝังแดชบอร์ดได้สําเร็จเมื่อปรากฏใน fabric-embed-container ภูมิภาคและบันทึก Real-Time Dashboard rendered.คอนโซลเบราว์เซอร์
หากแดชบอร์ดไม่แสดงผล ให้ใช้รายละเอียดเหตุการณ์ SDK error และตรวจสอบรายการเหล่านี้
| ตรวจ สอบ | สิ่งที่ต้องตรวจสอบ |
|---|---|
| การเข้าถึงของผู้ใช้ | ผู้ใช้ Microsoft Entra ที่ลงชื่อเข้าใช้สามารถเปิดแดชบอร์ด Real-Time ใน Fabric ได้ |
| กำลังการผลิต | พื้นที่ทํางานที่มีแดชบอร์ด Real-Time ถูกกําหนดให้กับความจุ Fabric ที่ใช้งานอยู่ |
| เปลี่ยนเส้นทาง URI | การลงทะเบียนแอป Microsoft Entra มี URI การเปลี่ยนเส้นทางสําหรับเว็บแอปของคุณ |
| สิทธิ์ที่ได้รับมอบหมาย | การลงทะเบียนแอปได้มอบความยินยอมสําหรับ Fabric.Embed และ Item.Read.All(หรือ KQLDashboard.Read.All) และคําขอโทเค็นใช้ขอบเขต Fabric .default |
| ตัวระบุ | รหัสพื้นที่ทํางานและรหัสรายการแดชบอร์ด Real-Time ตรงกับเนื้อหา Fabric ที่คุณต้องการฝัง |
| คอนเทนเนอร์ HTML | องค์ประกอบมี fabric-embed-container อยู่ มีชื่อที่เข้าถึงได้ และยังคงสามารถเข้าถึงได้ด้วยแป้นพิมพ์ในเค้าโครงแอปของคุณ |
| การจัดการข้อผิดพลาดของ SDK | แอปของคุณจัดการเหตุการณ์ Fabric Embed SDK error และบันทึกรายละเอียดข้อผิดพลาด |