Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Automatizálhatja egy Fabric-alkalmazás üzembe helyezését egy GitHub-adattárból egy Fabric munkaterületre egy GitHub Actions munkafolyamat használatával. A munkafolyamat service principal használatával jelentkezik be a Fabricbe, telepíti a Rayfin CLI-t, majd a rayfin up futtatásával alkalmazza a kódot, az adatbázissémát és a statikus tartalmat a célmunkaterületre.
Ez a cikk bemutatja, hogyan:
- Készítsen elő egy szolgáltatásnév-identitást és egy Fabric-munkaterületet az automatizált üzembe helyezésekhez.
- Konfigurálja a munkafolyamathoz szükséges GitHub adattár titkos kulcsát.
- Adja hozzá az üzembehelyezési munkafolyamat-fájlt az adattárhoz.
- A telepítéseket automatikusan a(z)
mainelemen, illetve manuálisan is elindíthatja, opcionális destruktív módosítások támogatásával. - Ugyanazt a munkafolyamatot használja a funkcióágakhoz és a környezetenkénti telepítésekhez.
Prerequisites
- Egy Fabric alkalmazásprojekt egy GitHub-adattárban. Ha még nem rendelkezik ilyennel, tekintse meg A Fabric Apps-projekt létrehozása és az alkalmazáskód leküldése az adattárba.
- Egy Fabric-munkaterület, amelybe a service principal telepíthet. A környezetek elkülönítését a fejlesztői és a produkált környezetek kezelése című témakörben talál.
- Egy Microsoft Entra ID szolgáltatásnév (alkalmazásregisztráció) ügyfélkóddal.
- Engedély secrets hozzáadásához az GitHub adattárhoz.
1. lépés: Szolgáltatásnév létrehozása üzembe helyezéshez
A munkafolyamat nem interaktívan jelentkezik be, ezért interaktív felhasználói fiók helyett service principalt használ.
- A Azure portálon regisztráljon egy új alkalmazást a Microsoft Entra ID>Alkalmazásregisztrációk alatt.
- Jegyezze fel az alkalmazás (ügyfél) azonosítóját és a címtár (bérlő) azonosítóját.
- A Tanúsítványok > titkos kódok területen hozzon létre egy új ügyfélkulcsot , és másolja ki az értéket. Biztonságosan tárolhatja: később nem tekintheti meg újra.
- Adjon a szolgáltatásnévnek Contributor vagy magasabb szintű jogosultságot a cél Fabric-munkaterületen, hogy létrehozhassa és frissíthesse a Fabric-alkalmazáselemet.
Important
A szolgáltatásnevek általi üzembe helyezéshez olyan Fabric-bérlői beállítások szükségesek, amelyek engedélyezik, hogy a szolgáltatásnevek használják a Fabric API-kat. Győződjön meg a Fabric rendszergazdájától, hogy ez engedélyezve van.
2. lépés: Adattár titkos kulcsok hozzáadása
A GitHub adattárban lépjen a Settings>Secrets és változók>Actions elemre, és adja hozzá a következő tárház titkos kulcsait:
| Titkos név | Value |
|---|---|
CLIENT_ID |
A szolgáltatásnév alkalmazás-(ügyfél-) azonosítója. |
TENANT_ID |
A címtár (bérlő) azonosítója. |
CLIENT_SECRET |
Az ügyféltitok értéke. |
FABRIC_WORKSPACE_NAME |
A cél Fabric munkaterület neve (például my-app-prod). |
3. lépés: A munkafolyamat-fájl hozzáadása
Az adattárban hozza létre a fájlt .github/workflows/deploy-to-fabric.yml a következő tartalommal:
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
Az egyes szakaszok feladata
-
on.push: A munkafolyamat automatikusan lefut minden push esetén a(z)mainágra. -
on.workflow_dispatch: Hozzáad egy Run munkafolyamatot gombot a GitHub Actions felhasználói felületén egy force jelölőnégyzettel. A force engedélyezése átadja a--forceparamétert arayfin upszámára, így az olyan destruktív sémamódosítások is engedélyezettek, mint az oszlopok vagy táblák törlése. Hagyja jelöletlenül a biztonságos, nem destruktív üzembe helyezésekhez. -
concurrency: Biztosítja, hogy áganként egyszerre csak egy telepítés futhat. Ha új push érkezik, miközben egy korábbi telepítés még fut, a korábbi futás megszakad az újabb commit javára. Ez a beállítás megakadályozza, hogy kétrayfin upfeladat versenyezzon ugyanazon a munkaterületen. -
env: Átadja a szolgáltatásnévhez tartozó hitelesítő adatokat és a cél munkaterület nevét a feladatnak. -
Install Rayfin CLI: Globálisan telepíti a parancssori felületet, ígyrayfina PATH-on is. -
Login to Fabric with service principal: Hitelesítés a*környezeti változókkal. -
Deploy to Fabric: Lefuttatja a(z)rayfin upelemet a konfigurált bérlőn és munkaterületen.--yesnem romboló kéréseket fogad el;--forcecsak akkor lesz hozzáadva, ha a manuális futtatás kérte.
4. lépés: Üzembe helyezés aktiválása
A munkafolyamat kétféleképpen indítható el:
-
Automatikusan: Véglegesítés leküldése vagy egyesítése az
mainágba. - Manuálisan: A GitHubon lépjen a Actions>Üzembe helyezés a Fabricba>Munkafolyamat futtatása elemre. Jelölje ki az ágat az üzembe helyezéshez, és ha szükséges, ellenőrizze a futtatás megkezdése előtt az adatvesztést okozó romboló sémamódosítások engedélyezése jelölőnégyzetet.
A munkafolyamat befejezése után a A futtatási napló Fabric lépése kinyomtatja a Fabric alkalmazás URL-címét és az üzembe helyezés azonosítóját.
Megfontolások és korlátok
- A párhuzamosság áganként értendő. A
concurrency.grouptartalmazzagithub.ref, így a különböző ágakon történő üzembe helyezés nem szakítja meg egymást. Ez a viselkedés szándékos, amikor az ágakat különböző munkaterületekhez rendeli. - A romboló módosítások alapértelmezés szerint le vannak tiltva.
rayfin upelutasítja azokat a sémaműveleteket, amelyek adatvesztést okozhatnak, hacsak nem--forcekerül átadásra. Csak akkor engedélyezze az erő használatát manuális futtatáshoz, ha áttekintette a tervezett műveleteket. - A munkaterületeknek létezniük kell. A munkafolyamat nem hoz létre Fabric munkaterületeket. Hozza létre őket a Fabric portálon, és először biztosítson hozzáférést a szolgáltatásnév-azonosítónak.