แชร์ผ่าน


วิธีโฮสต์ปริมาณงานของคุณใน Azure

บทความนี้อธิบายวิธีการโฮสต์ปริมาณงาน Fabric Extensibility Toolkit ของคุณใน Azure โดยใช้สถาปัตยกรรมส่วนหน้าเท่านั้น ชุดเครื่องมือความสามารถในการขยายใช้วิธีการปรับใช้แบบ Cloud-Native กับบริการ Azure ที่ปรับให้เหมาะสมสําหรับเว็บแอปพลิเคชันแบบคงที่

ภาพรวมสถาปัตยกรรม

ชุดเครื่องมือการขยาย Fabric ใช้สถาปัตยกรรมที่เน้นการปรับใช้ส่วนหน้าด้วยบริการ Azure:

ไดอะแกรมของสถาปัตยกรรมการปรับใช้ 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

สร้างแพ็คเกจการปรับใช้

  1. นําทางไปยัง build\Frontend โฟลเดอร์ในโปรเจ็กต์ของคุณ
  2. เลือกไฟล์ทั้งหมดและ assets โฟลเดอร์ภายใต้ไดเร็กทอรีบิลด์
  3. สร้างไฟล์ที่มี .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 มาตรฐาน:

  1. ผู้ใช้เข้าถึงปริมาณงานของคุณผ่าน Fabric
  2. Fabric เปลี่ยนเส้นทางไปยังแอปพลิเคชันที่โฮสต์ใน Azure ของคุณ
  3. แอปของคุณเปลี่ยนเส้นทางไปยัง Entra ID สําหรับการตรวจสอบสิทธิ์
  4. Entra ID ส่งคืนโทเค็นการรับรองความถูกต้อง
  5. แอปของคุณใช้โทเค็นเพื่อเข้าถึง 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

  1. เปิด พอร์ทัลผู้ดูแลระบบ Microsoft Fabric
  2. นําทางไปยัง การจัดการ>อัปโหลดปริมาณงาน
  3. อัปโหลดไฟล์ของคุณManifestPackage.1.0.0.nupkg
  4. กําหนดการตั้งค่าปริมาณงานและสิทธิ์
  5. เปิดใช้งานปริมาณงานสําหรับผู้เช่าของคุณ

อัปเดตรายการสําหรับการปรับใช้ 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
  • เวลาแฝงทางภูมิศาสตร์: ตรวจสอบให้แน่ใจว่าประตูหน้าได้รับการกําหนดค่าอย่างเหมาะสมสําหรับการกําหนดเส้นทางทั่วโลก