หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ปรับใช้แอป Fabric โดยอัตโนมัติจากที่เก็บ GitHub ไปยังพื้นที่ทํางาน Fabric โดยใช้เวิร์กโฟลว์ GitHub Actions เวิร์กโฟลว์ลงชื่อเข้าใช้ Fabric ด้วยบริการหลัก ติดตั้ง Rayfin CLI และเรียกใช้ rayfin up เพื่อใช้โค้ด สคีมาฐานข้อมูล และเนื้อหาแบบคงที่กับพื้นที่ทํางานเป้าหมาย
บทความนี้แสดงให้คุณรู้จักวิธี:
- เตรียมบริการหลักและพื้นที่ทํางาน Fabric สําหรับการปรับใช้อัตโนมัติ
- กําหนดค่าข้อมูลลับของที่เก็บ GitHub ที่เวิร์กโฟลว์ต้องการ
- เพิ่มไฟล์เวิร์กโฟลว์การปรับใช้ไปยังที่เก็บของคุณ
- ทริกเกอร์การปรับใช้โดยอัตโนมัติ
mainและด้วยตนเองด้วยการสนับสนุนการเปลี่ยนแปลงแบบทําลายล้าง - ใช้เวิร์กโฟลว์เดียวกันซ้ําสําหรับสาขาคุณลักษณะและการปรับใช้เฉพาะสภาพแวดล้อม
ข้อกําหนดเบื้องต้น
- โปรเจ็กต์แอป Fabric ในที่เก็บ GitHub หากยังไม่มี โปรดดู สร้างโปรเจ็กต์ Fabric Apps แรกของคุณ และส่งโค้ดแอปพลิเคชันไปยังที่เก็บ
- พื้นที่ทํางาน Fabric ที่บริการหลักสามารถปรับใช้ได้ สําหรับการแยกสภาพแวดล้อม โปรดดู จัดการสภาพแวดล้อมการพัฒนาและผลิตภัณฑ์
- บริการหลักของ Microsoft Entra ID (การลงทะเบียนแอป) ที่มีข้อมูลลับของไคลเอ็นต์
- สิทธิ์ในการเพิ่ม secrets ไปยังที่เก็บ GitHub
ขั้นตอนที่ 1: สร้างบริการหลักสําหรับการปรับใช้
เวิร์กโฟลว์ลงชื่อเข้าใช้แบบไม่โต้ตอบ ดังนั้นจึงใช้บริการหลักแทนบัญชีผู้ใช้แบบโต้ตอบ
- ในพอร์ทัล Azure ให้ลงทะเบียนแอปพลิเคชันใหม่ภายใต้ Microsoft Entra ID>App registrations
- บันทึกรหัสแอปพลิเคชัน (ไคลเอ็นต์) และรหัสไดเรกทอรี (ผู้เช่า)
- ภายใต้ ใบรับรองและข้อมูลลับ ให้สร้าง ข้อมูลลับของไคลเอ็นต์ ใหม่และคัดลอกค่า จัดเก็บอย่างปลอดภัย: คุณจะไม่สามารถดูได้อีกในภายหลัง
- ให้สิทธิ์แก่บริการหลัก Contributor หรือสูงกว่าบนพื้นที่ทํางาน Fabric เป้าหมาย เพื่อให้สามารถสร้างและอัปเดตรายการแอป Fabric ได้
Important
การปรับใช้บริการหลักจําเป็นต้องมีการตั้งค่าผู้เช่า Fabric ที่อนุญาตให้บริการหลักใช้ Fabric API ยืนยันกับผู้ดูแลระบบ Fabric ของคุณว่าเปิดใช้งานสิ่งนี้แล้ว
ขั้นตอนที่ 2: เพิ่มข้อมูลลับของที่เก็บ
ในที่เก็บ GitHub ของคุณ ให้ไปที่ Settings>Secrets and variables>Actions และเพิ่มข้อมูลลับของที่เก็บต่อไปนี้:
| ชื่อข้อมูลลับ | มูลค่า |
|---|---|
CLIENT_ID |
รหัสแอปพลิเคชัน (ไคลเอ็นต์) ของบริการหลัก |
TENANT_ID |
รหัสไดเรกทอรี (ผู้เช่า) |
CLIENT_SECRET |
ค่าข้อมูลลับของไคลเอ็นต์ |
FABRIC_WORKSPACE_NAME |
ชื่อของเป้าหมาย Fabric พื้นที่ทํางาน (ตัวอย่างเช่น my-app-prod) |
ขั้นตอนที่ 3: เพิ่มไฟล์เวิร์กโฟลว์
ในที่เก็บของคุณ ให้สร้างไฟล์ .github/workflows/deploy-to-fabric.yml ที่มีเนื้อหาต่อไปนี้:
name: Deploy to Fabric
on:
push:
branches: [main]
workflow_dispatch:
inputs:
force:
description: 'Allow destructive schema changes that may result in data loss'
required: false
default: false
type: boolean
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
deploy:
name: Deploy to Fabric
runs-on: ubuntu-latest
env:
CLIENT_ID: ${{ secrets.CLIENT_ID }}
TENANT_ID: ${{ secrets.TENANT_ID }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
FABRIC_WORKSPACE_NAME: ${{ secrets.FABRIC_WORKSPACE_NAME }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Rayfin CLI
run: npm install -g @microsoft/rayfin-cli
- name: Login to Rayfin with service principal
run: |
rayfin login \
--service-principal \
-t $TENANT_ID
-u $CLIENT_ID
-p CLIENT_SECRET
- name: Deploy to Fabric
run: |
EXTRA_ARGS=""
if [[ "${{ inputs.force }}" == "true" ]]; then
EXTRA_ARGS="$EXTRA_ARGS --force"
fi
rayfin up \
--workspace "$FABRIC_WORKSPACE_NAME" \
--yes \
$EXTRA_ARGS
หน้าที่ของแต่ละส่วน
-
on.push: เรียกใช้เวิร์กโฟลว์โดยอัตโนมัติทุกครั้งที่กดไปที่main -
on.workflow_dispatch: เพิ่มปุ่ม เรียกใช้เวิร์กโฟลว์ ใน UI GitHub Actions ด้วยกล่องกาเครื่องหมาย force การเปิดใช้งานการส่งผ่าน--forceแรงเพื่อrayfin upการเปลี่ยนแปลงสคีมาที่ทําลายล้าง (เช่น การวางคอลัมน์หรือตาราง) ได้รับอนุญาต ปล่อยทิ้งไว้โดยไม่เลือกเพื่อการปรับใช้ที่ปลอดภัยและไม่ทําลาย -
concurrency: ตรวจสอบให้แน่ใจว่ามีการปรับใช้เพียงครั้งเดียวต่อสาขา หากการพุชใหม่เกิดขึ้นในขณะที่การปรับใช้ก่อนหน้านี้ยังคงทํางานอยู่การเรียกใช้ที่เก่ากว่าจะถูกยกเลิกเพื่อสนับสนุนการคอมมิตที่ใหม่กว่า การตั้งค่านี้ป้องกันไม่ให้สองrayfin upงานแข่งกันบนพื้นที่ทํางานเดียวกัน -
env: ส่งข้อมูลประจําตัวของบริการหลักและชื่อพื้นที่ทํางานเป้าหมายลงในงาน -
Install Rayfin CLI: ติดตั้ง CLI ทั่วโลกเพื่อให้rayfinอยู่บน PATH -
Login to Fabric with service principal: รับรองความถูกต้องโดยใช้ตัวแปรสภาพแวดล้อม* -
Deploy to Fabric: เรียกใช้rayfin upกับผู้เช่าและพื้นที่ทํางานที่กําหนดค่าไว้--yesยอมรับข้อความแจ้งที่ไม่ทําลาย--forceจะถูกเพิ่มเฉพาะเมื่อมีการร้องขอการเรียกใช้ด้วยตนเองเท่านั้น
ขั้นตอนที่ 4: ทริกเกอร์การปรับใช้
คุณสามารถทริกเกอร์เวิร์กโฟลว์ได้สองวิธี:
-
โดยอัตโนมัติ: ผลักดันหรือผสานการคอมมิตไปยัง
mainสาขา - ด้วยตนเอง: ใน GitHub ไปที่ Actions>ปรับใช้กับ Fabric>เรียกใช้เวิร์กโฟลว์ เลือกสาขาที่จะปรับใช้และเลือก อนุญาตการเปลี่ยนแปลง Schema แบบทําลายล้างที่อาจส่งผลให้ข้อมูลสูญหาย ก่อนเริ่มการเรียกใช้
หลังจากเวิร์กโฟลว์เสร็จสิ้น ขั้นตอน ปรับใช้กับ Fabric ในบันทึกการเรียกใช้จะพิมพ์ URL ของแอป Fabric และรหัสการปรับใช้
ข้อควรพิจารณาและข้อจำกัด
- การทํางานพร้อมกันเป็นต่อสาขา การ
concurrency.groupรวมgithub.refดังนั้นการปรับใช้กับสาขาต่างๆ จะไม่ยกเลิกซึ่งกันและกัน ลักษณะการทํางานนี้เป็นเจตนาเมื่อคุณแมปสาขาไปยังพื้นที่ทํางานที่แตกต่างกัน - การเปลี่ยนแปลงที่ทําลายล้างจะถูกบล็อกโดยค่าเริ่มต้น
rayfin upปฏิเสธการดําเนินการ Schema ที่อาจสูญเสียข้อมูลเว้นแต่--forceจะมีการส่งผ่าน เปิดใช้งาน บังคับ สําหรับการเรียกใช้ด้วยตนเองเมื่อคุณได้ตรวจสอบการดําเนินงานที่วางแผนไว้เท่านั้น - พื้นที่ทํางานต้องมีอยู่ เวิร์กโฟลว์ไม่ได้สร้างพื้นที่ทํางาน Fabric สร้างในพอร์ทัล Fabric และให้สิทธิ์การเข้าถึงบริการหลักก่อน