หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้อธิบายวิธีการโฮสต์ปริมาณงาน Fabric Extensibility Toolkit ของคุณใน Azure โดยใช้สถาปัตยกรรมส่วนหน้าเท่านั้น ชุดเครื่องมือความสามารถในการขยายใช้วิธีการปรับใช้แบบ Cloud-Native กับบริการ Azure ที่ปรับให้เหมาะสมสําหรับเว็บแอปพลิเคชันแบบคงที่
ภาพรวมสถาปัตยกรรม
ชุดเครื่องมือการขยาย Fabric ใช้สถาปัตยกรรมที่เน้นการปรับใช้ส่วนหน้าด้วยบริการ Azure:
สถาปัตยกรรมชุดเครื่องมือความสามารถในการขยาย
สถาปัตยกรรม Extensibility Toolkit มีลักษณะดังต่อไปนี้:
- การปรับใช้เฉพาะส่วนหน้าเท่านั้น: ปริมาณงานของคุณทํางานทั้งหมดในเบราว์เซอร์โดยไม่มีแบ็กเอนด์แยกต่างหาก
- การโฮสต์เว็บไซต์แบบคงที่: ใช้เว็บไซต์แบบคงที่ของ Azure Storage สําหรับการโฮสต์
- Azure Front Door: ให้ CDN ส่วนกลาง การสิ้นสุด SSL และการกําหนดเส้นทาง
- บริการที่มีการจัดการ: ใช้ประโยชน์จาก Entra ID, Key Vault และ Managed Identity เพื่อความปลอดภัย
- กระบวนการปรับใช้ครั้งเดียว: ใช้สคริปต์ PowerShell ที่ให้มาสําหรับการปรับใช้
บริการ Azure ที่ใช้
ประตูหน้าของ Azure
Azure Front Door ทําหน้าที่เป็นจุดเริ่มต้นทั่วโลกสําหรับปริมาณงานของคุณ ซึ่งจะให้:
- การปรับสมดุลภาระงานส่วนกลาง: กําหนดเส้นทางผู้ใช้ไปยังตําแหน่ง Edge ที่ใกล้ที่สุด
- การยกเลิก SSL: จัดการใบรับรอง HTTPS โดยอัตโนมัติ
- Web Application Firewall (WAF): ป้องกันช่องโหว่ทั่วไปของเว็บ
- การแคช: ปรับปรุงประสิทธิภาพโดยการแคชสินทรัพย์แบบคงที่ที่ตําแหน่ง Edge
สําหรับชุดเครื่องมือความสามารถในการขยาย Front Door จะกําหนดเส้นทางการรับส่งข้อมูลไปยังเว็บไซต์แบบคงที่ของคุณที่โฮสต์บน Azure Storage เพื่อให้มั่นใจว่ามีความพร้อมใช้งานสูงและเวลาแฝงต่ําทั่วโลก
บัญชีที่เก็บข้อมูล Azure (เว็บไซต์แบบคงที่)
บัญชีที่เก็บข้อมูล Azure ที่มีการโฮสต์เว็บไซต์แบบคงที่จะโฮสต์แอปพลิเคชันปริมาณงานที่สร้างขึ้นของคุณ สิ่งนี้ให้:
- โฮสติ้งที่คุ้มค่า: จ่ายเฉพาะพื้นที่เก็บข้อมูลและแบนด์วิดท์ที่ใช้
- การปรับขนาดอัตโนมัติ: จัดการกับการรับส่งข้อมูลที่พุ่งสูงขึ้นโดยไม่ต้องกําหนดค่า
- ความพร้อมใช้งานทั่วโลก: เนื้อหาให้บริการจากโครงสร้างพื้นฐานที่เก็บข้อมูลทั่วโลกของ Azure
- การปรับใช้ตามไฟล์: อัปโหลดไฟล์เพื่อปรับใช้เวอร์ชัน
Extensibility Toolkit สร้างแอปพลิเคชัน React ของคุณเป็น HTML, JavaScript, CSS และแอสเซทแบบคงที่ที่ปรับใช้กับบัญชีที่เก็บข้อมูลโดยตรง
Azure Key Vault
Azure Key Vault จัดการการกําหนดค่าและข้อมูลลับที่ละเอียดอ่อน:
- ข้อมูลลับของไคลเอ็นต์: จัดเก็บข้อมูลลับของแอปพลิเคชัน Entra ID อย่างปลอดภัย
- คีย์ API: จัดการคีย์ API ของบริการภายนอก
- การตั้งค่าคอนฟิก: จัดเก็บการตั้งค่าเฉพาะสภาพแวดล้อม
- ใบรับรอง: จัดการใบรับรอง SSL หากจําเป็น
ปริมาณงานของคุณเข้าถึง Key Vault ผ่านข้อมูลประจําตัวที่มีการจัดการเพื่อการรับรองความถูกต้องที่ปลอดภัยและปราศจากข้อมูลประจําตัว
Azure Entra ID (Azure Active Directory)
Azure Entra ID ให้การรับรองความถูกต้องและการอนุญาต:
- การลงทะเบียนแอป: ลงทะเบียนปริมาณงานของคุณเป็นแอปพลิเคชัน Entra
- โฟลว์ OAuth 2.0: จัดการการตรวจสอบสิทธิ์ผู้ใช้ด้วย Fabric
- สิทธิ์ API: จัดการการเข้าถึง Fabric และ Microsoft Graph API
- การจัดการโทเค็น: ให้โทเค็นการเข้าถึงที่ปลอดภัยสําหรับการเรียก API
ข้อมูลเฉพาะตัวที่มีการจัดการ
Managed Identity ให้การรับรองความถูกต้องแบบบริการต่อบริการที่ปลอดภัย:
- ไม่มีการจัดการข้อมูลประจําตัว: ไม่จําเป็นต้องจัดเก็บข้อมูลลับในโค้ด
- การจัดการโทเค็น: Azure จัดการการซื้อและการต่ออายุโทเค็น
- การเข้าถึงที่ปลอดภัย: เชื่อมต่อกับ Key Vault และบริการ Azure อื่นๆ อย่างปลอดภัย
- วงจรชีวิตข้อมูลประจําตัว: เชื่อมโยงกับทรัพยากร Azure ของคุณเพื่อการล้างข้อมูล
กระบวนการปรับใช้
ข้อกําหนดเบื้องต้น
ก่อนปรับใช้กับ Azure ตรวจสอบให้แน่ใจว่าคุณมี:
- การสมัครใช้งาน Azure ที่มีสิทธิ์ที่เหมาะสม
- ติดตั้งและรับรองความถูกต้องของ Azure CLI แล้ว
- ที่เก็บ Fabric Extensibility Toolkit ที่โคลนในเครื่อง
- ปริมาณงานของคุณสร้างขึ้นโดยใช้
.\scripts\Build\BuildRelease.ps1
การใช้สคริปต์การปรับใช้
ชุดเครื่องมือความสามารถในการขยายประกอบด้วยสคริปต์การปรับใช้ PowerShell ที่ทําให้ scripts\Deploy\DeployToAzureWebApp.ps1 กระบวนการปรับใช้เป็นไปโดยอัตโนมัติ
การปรับใช้พื้นฐาน
# Deploy to an existing Azure Web App
.\scripts\Deploy\DeployToAzureWebApp.ps1 -WebAppName "my-fabric-workload" -ResourceGroupName "fabric-workload-rg"
ตัวเลือกการปรับใช้เพิ่มเติม
# Deploy to staging slot with custom settings
.\scripts\Deploy\DeployToAzureWebApp.ps1 `
-WebAppName "my-fabric-workload" `
-ResourceGroupName "fabric-workload-rg" `
-SlotName "staging" `
-Force $true `
-CreateBackup $true `
-RestartAfterDeploy $true
พารามิเตอร์สคริปต์การปรับใช้
| พารามิเตอร์ | คำอธิบาย | ต้องระบุ | ค่าเริ่มต้น |
|---|---|---|---|
WebAppName |
ชื่อของ Azure Web App ที่จะปรับใช้ | ใช่ | - |
ResourceGroupName |
กลุ่มทรัพยากรที่มีเว็บแอป | ใช่ | - |
ReleasePath |
เส้นทางไปยังไฟล์แอปพลิเคชันที่สร้างขึ้น | ไม่ใช่ | ..\..\release\app |
DeploymentMethod |
วิธีการปรับใช้ (ZipDeploy, FTP, LocalGit) | ไม่ใช่ | ZipDeploy |
SlotName |
สล็อตการปรับใช้สําหรับการแสดงละคร | ไม่ใช่ | - |
Force |
ข้ามข้อความแจ้งการยืนยัน | ไม่ใช่ | $false |
CreateBackup |
สร้างการสํารองข้อมูลก่อนการปรับใช้ | ไม่ใช่ | $true |
RestartAfterDeploy |
รีสตาร์ทแอปหลังจากปรับใช้ | ไม่ใช่ | $true |
คุณลักษณะสคริปต์การปรับใช้
สคริปต์การปรับใช้มีความสามารถในการปรับใช้ที่ครอบคลุม:
การตรวจสอบความถูกต้องและความปลอดภัย
- การตรวจสอบข้อกําหนดเบื้องต้น: ตรวจสอบความถูกต้องของการติดตั้งและการรับรองความถูกต้องของ Azure CLI
- การตรวจสอบทรัพยากร: ยืนยันว่ามี Web App เป้าหมายอยู่และสามารถเข้าถึงได้
- การตรวจสอบความถูกต้องของบิลด์: ตรวจสอบให้แน่ใจว่าไดเร็กทอรีรีรีลีสมีไฟล์ที่จําเป็น
- การสร้างการสํารองข้อมูล: สร้างการสํารองข้อมูลการปรับใช้สําหรับความสามารถในการย้อนกลับ
เวิร์กโฟลว์การปรับใช้
- การสร้างแพ็คเกจ ZIP: บีบอัดแอปพลิเคชันที่สร้างขึ้นในแพ็คเกจการปรับใช้
- การรายงานขนาด: แสดงขนาดแพ็กเกจการปรับใช้สําหรับการตรวจสอบ
- การตรวจสอบความคืบหน้า: ให้การอัปเดตสถานะการปรับใช้แบบเรียลไทม์
- การจัดการข้อผิดพลาด: ข้อความแสดงข้อผิดพลาดโดยละเอียดพร้อมคําแนะนําในการแก้ไขปัญหา
หลังการปรับใช้
- การตรวจสอบสถานภาพ: ตรวจสอบความถูกต้องของแอปพลิเคชันที่ปรับใช้ว่าตอบสนองอย่างถูกต้อง
- การรายงาน URL: ให้ลิงก์โดยตรงไปยังแอปพลิเคชันที่ปรับใช้
- คําแนะนํา Manifest: แสดงขั้นตอนถัดไปสําหรับการอัปโหลด Manifest ไปยัง Fabric
- เมตริกเวลา: รายงานระยะเวลาการปรับใช้ทั้งหมด
การปรับใช้ด้วยตนเอง
คุณยังสามารถปรับใช้แอปพลิเคชันส่วนหน้าของคุณด้วยตนเองโดยใช้คําสั่ง Azure PowerShell:
สร้างแอปพลิเคชันของคุณ
ขั้นแรก ให้สร้างแอปพลิเคชันส่วนหน้าของคุณสําหรับสภาพแวดล้อมการทดสอบ:
npm run build:test
สร้างแพ็คเกจการปรับใช้
- นําทางไปยัง
build\Frontendโฟลเดอร์ในโปรเจ็กต์ของคุณ - เลือกไฟล์ทั้งหมดและ
assetsโฟลเดอร์ภายใต้ไดเร็กทอรีบิลด์ - สร้างไฟล์ที่มี
.zipไฟล์ที่เลือกทั้งหมด
ปรับใช้โดยใช้ Azure PowerShell
# Connect to Azure
Connect-AzAccount
# Set your subscription context
Set-AzContext -Subscription "<subscription_id>"
# Deploy the zip file to your web app
Publish-AzWebApp -ResourceGroupName <resource_group_name> -Name <web_app_name> -ArchivePath <zip_file_path>
พารามิเตอร์การปรับใช้ด้วยตนเอง
| พารามิเตอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
<subscription_id> |
รหัสการสมัครใช้งาน Azure ของคุณ | 12345678-1234-1234-1234-123456789012 |
<resource_group_name> |
กลุ่มทรัพยากรที่มีเว็บแอป | fabric-workload-rg |
<web_app_name> |
ชื่อของเว็บแอป Azure ของคุณ | my-fabric-workload |
<zip_file_path> |
เส้นทางแบบเต็มไปยังไฟล์ zip การปรับใช้ของคุณ | C:\path\to\deployment.zip |
Note
การปรับใช้ด้วยตนเองกําหนดให้คุณต้องมีสิทธิ์ Azure ที่เหมาะสมและ ติดตั้งโมดูล Azure PowerShell บนเครื่องของคุณ
ข้อควรพิจารณาด้านความปลอดภัย
ผังลำดับการรับรองความถูกต้องของ
ปริมาณงานของคุณตรวจสอบสิทธิ์ด้วย Fabric โดยใช้โฟลว์ OAuth 2.0 มาตรฐาน:
- ผู้ใช้เข้าถึงปริมาณงานของคุณผ่าน Fabric
- Fabric เปลี่ยนเส้นทางไปยังแอปพลิเคชันที่โฮสต์ใน Azure ของคุณ
- แอปของคุณเปลี่ยนเส้นทางไปยัง Entra ID สําหรับการตรวจสอบสิทธิ์
- Entra ID ส่งคืนโทเค็นการรับรองความถูกต้อง
- แอปของคุณใช้โทเค็นเพื่อเข้าถึง Fabric API
การกําหนดค่าที่ปลอดภัย
- ตัวแปรสภาพแวดล้อม: จัดเก็บการกําหนดค่าในการตั้งค่าแอป Azure ไม่ใช่ในโค้ด
- การผสานรวม Key Vault: เข้าถึงข้อมูลลับผ่านข้อมูลประจําตัวที่มีการจัดการ
- HTTPS เท่านั้น: บังคับใช้ HTTPS สําหรับการสื่อสารทั้งหมด
- การกําหนดค่า CORS: กําหนดค่านโยบาย CORS ที่เหมาะสมสําหรับโดเมน Fabric
แนวทางปฏิบัติที่ดีที่สุด
- สิทธิ์ขั้นต่ํา: ให้สิทธิ์ที่จําเป็นน้อยที่สุดแก่ข้อมูลประจําตัวที่มีการจัดการ
- การหมุนเวียนลับ: หมุนเวียนความลับที่เก็บไว้ใน Key Vault เป็นประจํา
- ความปลอดภัยของเครือข่าย: ใช้ปลายทางส่วนตัวหากเป็นไปได้
- การตรวจสอบ: เปิดใช้งาน Application Insights สําหรับการตรวจสอบความปลอดภัย
การกําหนดค่าหลังการปรับใช้
การกําหนดค่า Azure App Service
หลังจากปรับใช้ ให้กําหนดค่า Azure App Service ของคุณ:
# Set environment variables for your workload
az webapp config appsettings set --name "my-fabric-workload" --resource-group "fabric-workload-rg" --settings \
"FABRIC_CLIENT_ID=your-client-id" \
"FABRIC_TENANT_ID=your-tenant-id" \
"KEY_VAULT_URL=https://your-keyvault.vault.azure.net/"
การตั้งค่า Key Vault
จัดเก็บการกําหนดค่าที่ละเอียดอ่อนใน Key Vault:
# Store client secret
az keyvault secret set --vault-name "your-keyvault" --name "FabricClientSecret" --value "your-client-secret"
# Store API keys
az keyvault secret set --vault-name "your-keyvault" --name "ExternalApiKey" --value "your-api-key"
การกําหนดค่าข้อมูลประจําตัวที่มีการจัดการ
กําหนดค่าข้อมูลประจําตัวที่มีการจัดการสําหรับการเข้าถึง Key Vault:
# Enable system-assigned managed identity
az webapp identity assign --name "my-fabric-workload" --resource-group "fabric-workload-rg"
# Grant access to Key Vault
az keyvault set-policy --name "your-keyvault" \
--object-id "managed-identity-principal-id" \
--secret-permissions get list
การปรับใช้ Manifest
หลังจากปรับใช้แอปพลิเคชันของคุณไปยัง Azure แล้ว คุณต้องอัปโหลดแพคเกจรายการไปยัง Fabric:
สร้างแพ็คเกจรายการ
ขั้นแรก ให้สร้างแพคเกจรายการ:
.\scripts\Build\BuildManifestPackage.ps1
สิ่งนี้จะสร้าง release\ManifestPackage.1.0.0.nupkg รายการปริมาณงานของคุณ
อัปโหลดไปยังพอร์ทัลผู้ดูแลระบบ Fabric
- เปิด พอร์ทัลผู้ดูแลระบบ Microsoft Fabric
- นําทางไปยัง การจัดการ>อัปโหลดปริมาณงาน
- อัปโหลดไฟล์ของคุณ
ManifestPackage.1.0.0.nupkg - กําหนดการตั้งค่าปริมาณงานและสิทธิ์
- เปิดใช้งานปริมาณงานสําหรับผู้เช่าของคุณ
อัปเดตรายการสําหรับการปรับใช้ Azure
ก่อนสร้างแพคเกจรายการของคุณสําหรับการปรับใช้ Azure ตรวจสอบให้แน่ใจว่าค่าในไฟล์ของคุณ .env (เช่น FRONTEND_URL, FRONTEND_APPIDและตัวแปรที่จําเป็นอื่นๆ ) ได้รับการตั้งค่าอย่างถูกต้องสําหรับสภาพแวดล้อม Azure ของคุณ ค่าเหล่านี้จะถูกแทนที่ในระหว่าง WorkloadManifest.xml กระบวนการสร้าง
สําหรับรายการทั้งหมดของตัวแปรสภาพแวดล้อมที่จําเป็นและคําแนะนําในการตั้งค่า โปรดดู ข้อกําหนดการเผยแพร่ทั่วไป
การตรวจสอบและการแก้ไขปัญหา
ข้อมูลเชิงลึกของแอปพลิเคชัน
เปิดใช้งาน Application Insights สําหรับการตรวจสอบ:
- การตรวจสอบประสิทธิภาพ: ติดตามเวลาในการโหลดหน้าเว็บและการโต้ตอบของผู้ใช้
- การติดตามข้อผิดพลาด: ตรวจสอบข้อผิดพลาดของ JavaScript และคําขอที่ล้มเหลว
- การวิเคราะห์การใช้งาน: ทําความเข้าใจว่าผู้ใช้โต้ตอบกับปริมาณงานของคุณอย่างไร
- การวัดและส่งข้อมูลทางไกลแบบกําหนดเอง: เพิ่มเมตริกที่กําหนดเองสําหรับตรรกะทางธุรกิจ
ปัญหาและวิธีแก้ไขทั่วไป
ความล้มเหลวในการปรับใช้
-
ข้อผิดพลาดในการรับรองความถูกต้อง: ตรวจสอบการเข้าสู่ระบบ Azure CLI ด้วย
az account show - ไม่พบทรัพยากร: ยืนยันชื่อเว็บแอปและกลุ่มทรัพยากรถูกต้อง
- สิทธิ์ถูกปฏิเสธ: ตรวจสอบว่าบัญชีของคุณมีบทบาทผู้สนับสนุนในกลุ่มทรัพยากร
Note
ข้อผิดพลาด: Frontend Uri ไม่อยู่ในรายการโดเมนผู้เช่า: ข้อผิดพลาดนี้หมายความว่าโดเมนแบบกําหนดเองของปริมาณงานของคุณไม่ได้ลงทะเบียนในรายการโดเมนที่ยอมรับของผู้เช่า Entra ID ของคุณ หากต้องการแก้ไข ให้เพิ่มโดเมนแบบกําหนดเองของคุณไปยัง Entra ID หากต้องการข้อมูลเพิ่มเติม โปรดดู การยืนยันโดเมนแบบกําหนดเอง ในข้อกําหนดการเผยแพร่ทั่วไป
ปัญหารันไทม์
- หน้าจอสีขาว: ตรวจสอบคอนโซลเบราว์เซอร์เพื่อหาข้อผิดพลาด JavaScript
- ความล้มเหลวในการรับรองความถูกต้อง: ตรวจสอบการลงทะเบียนแอป Entra ID และเปลี่ยนเส้นทาง URI
- ความล้มเหลวในการเรียกใช้ API: ตรวจสอบการกําหนดค่า CORS และสิทธิ์ API
การเพิ่มประสิทธิภาพ
- โหลดช้า: เปิดใช้งานการบีบอัดและปรับขนาดบันเดิลให้เหมาะสม
- ปัญหาการแคช: กําหนดค่าส่วนหัวของแคชที่เหมาะสมใน Front Door
- เวลาแฝงทางภูมิศาสตร์: ตรวจสอบให้แน่ใจว่าประตูหน้าได้รับการกําหนดค่าอย่างเหมาะสมสําหรับการกําหนดเส้นทางทั่วโลก
คู่มือที่เกี่ยวข้อง
- วิธีเผยแพร่และจัดการปริมาณงาน - การอัปโหลดรายการไปยัง Fabric
- คู่มือการตั้งค่า - การตั้งค่าสภาพแวดล้อมการพัฒนาเริ่มต้น
- บทช่วยสอน: การเริ่มต้นใช้งาน - การเริ่มต้นใช้งาน Extensibility Toolkit