Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Automatiser distribusjoner av en Fabric-app fra et GitHub-repositorium til et Fabric-arbeidsområde ved å bruke en GitHub Actions-arbeidsflyt. Arbeidsflyten logger inn for å Fabric med en tjenesteprincipal, installerer Rayfin CLI, og kjører rayfin up for å anvende koden, databaseskjemaet og statisk innhold på målarbeidsområdet.
Denne artikkelen viser deg hvordan du gjør følgende:
- Forbered en tjenesteprinsipp og et Fabric-arbeidsområde for automatiserte distribusjoner.
- Konfigurer GitHub-repositoriets hemmeligheter arbeidsflyten trenger.
- Legg til deployeringsarbeidsflytfilen i repositoryet ditt.
- Utløs distribusjoner automatisk på
mainog manuelt med valgfri støtte for destruktive endringer. - Gjenbruk samme arbeidsflyt for feature branches og miljøspesifikke distribusjoner.
Forutsetninger
- Et Fabric-appprosjekt i et GitHub-arkiv. Hvis du ikke har en ennå, se Create your first Fabric Apps project og send applikasjonskoden din til repositoriet.
- Et Fabric-arbeidsområde som tjenesteprincipalen kan distribuere til. For miljøseparasjon, se Administrer utviklings- og produksjonsmiljøer.
- En Microsoft Entra ID-tjenesteprincipal (appregistrering) med en klienthemmelighet.
- Tillatelse til å legge til secrets i GitHub-repositoriet.
Trinn 1: Opprett en tjenesteprinsipp for distribusjoner
Arbeidsflyten logger inn ikke-interaktivt, så den bruker en tjenesteprinsipp i stedet for en interaktiv brukerkonto.
- I Azure-portalen, registrer en ny søknad under Microsoft Entra ID>App registrations.
- Registrer applikasjons-ID-en (klient-ID-en) og katalog-ID-en (leietaker-ID-en).
- Under Sertifikater og hemmeligheter, opprett en ny klienthemmelighet og kopier verdien. Oppbevar det sikkert: du kan ikke se det igjen senere.
- Gi tjenesteprincipalen Contributor eller høyere tillatelse på målarbeidsområdet Fabric slik at den kan opprette og oppdatere Fabric app-elementet.
Important
Distribusjoner av tjenesteprinsipper krever Fabric-leietakerinnstillinger som lar tjenesteprinsipper bruke Fabric-API-er. Bekreft med din Fabric-administrator at dette er aktivert.
Steg 2: Legg til reposito-hemmeligheter
I ditt GitHub-repositorium, gå til Settings>Secrets and variables>Actions og legg til følgende reposio-hemmeligheter:
| Hemmelig navn | Verdi |
|---|---|
CLIENT_ID |
Applikasjons-ID-en (klient-ID-en) til tjenestehovedpersonen. |
TENANT_ID |
The Directory (tenant) ID. |
CLIENT_SECRET |
Kundens hemmelige verdi. |
FABRIC_WORKSPACE_NAME |
Navnet på målet Fabric arbeidsområde (for eksempel my-app-prod). |
Trinn 3: Legg til arbeidsflytfilen
I ditt repository, opprett filen .github/workflows/deploy-to-fabric.yml med følgende innhold:
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
Hva hver seksjon gjør
-
on.push: Kjører arbeidsflyten automatisk for hvert push tilmain. -
on.workflow_dispatch: Legger til en Run workflow-knapp i GitHub Actions UI med en force avkrysningsboks. Muliggjøring av kraftoverganger--forcetilrayfin upslik at destruktive skjemaendringer (som å fjerne kolonner eller tabeller) er tillatt. La det være ukontrollert for trygge, ikke-destruktive utplasseringer. -
concurrency: Sikrer at kun én utrulling per gren kjøres om gangen. Hvis en ny push lander mens en tidligere deploy fortsatt kjører, blir den eldre runen kansellert til fordel for den nyere commit. Denne innstillingen forhindrer at torayfin upjobber konkurrerer på samme arbeidsområde. -
env: Sender tjenesteprincipalens legitimasjon og målarbeidsplassens navn inn i jobben. -
Install Rayfin CLI: Installerer CLI globalt, sårayfinden er på PATH. -
Login to Fabric with service principal: Autentiserer ved å bruke miljøvariablene*. -
Deploy to Fabric: Kjørerrayfin upmot den konfigurerte leietakeren og arbeidsområdet.--yesaksepterer ikke-destruktive oppfordringer;--forcelegges kun til når den manuelle kjøringen ber om det.
Trinn 4: Utløs en utrulling
Du kan utløse arbeidsflyten på to måter:
-
Automatisk: Skyv eller slå sammen en commit til grenen
main. - Manuelt: I GitHub, gå til Actions>Deploy to Fabric>Run workflow. Velg grenen som skal distribueres og velg eventuelt Tillat destruktive skjemaendringer som kan føre til datatap før starten av kjøringen.
Etter at arbeidsflyten er ferdig, skriver steget Deploy to Fabric i kjøreloggen ut Fabric-appens URL og distribusjons-ID-en.
Hensyn og begrensninger
- Felles forløp er per gren. Det
concurrency.groupinkluderergithub.ref, slik at utplasseringer til forskjellige grener ikke kansellerer hverandre. Denne oppførselen er bevisst når du mapper grener til forskjellige arbeidsområder. - Destruktive endringer blokkeres som standard.
rayfin upnekter skjemaoperasjoner som kan miste data med mindre--forcede blir godkjent. Aktiver kun makt for en manuell kjøring når du har gjennomgått de planlagte operasjonene. - Arbeidsplasser må eksistere. Arbeidsflyten lager ikke Fabric-arbeidsområder. Opprett dem i Fabric-portalen og gi tjenestelederen tilgang først.