Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Automatiser udrulninger af en Fabric-app fra et GitHub-repository til et Fabric-arbejdsområde ved at bruge en GitHub Actions-arbejdsgang. Workflowet logger ind på Fabric med en serviceprincipal, installerer Rayfin CLI og kører rayfin up for at anvende din kode, databaseskema og statiske indhold på det ønskede arbejdsområde.
I denne artikel lærer du, hvordan du kan:
- Forbered en serviceprincip og et Fabric-arbejdsområde til automatiserede udrulninger.
- Konfigurer GitHub-repositoriets hemmeligheder, som arbejdsgangen har brug for.
- Tilføj deploy-workflowfilen til dit repository.
- Udløs udrulninger automatisk og manuelt
mainmed valgfri understøttelse af destruktive ændringer. - Genanvend den samme arbejdsgang til feature branchs og miljøspecifikke deployments.
Forudsætninger
- Et Fabric-appprojekt i et GitHub-repository. Hvis du ikke har et endnu, så se Create your first Fabric Apps project og skub din applikationskode til repository.
- Et Fabric-arbejdsområde, som service-principalen kan deploye til. For miljøadskillelse, se Administrer udviklings- og produktionsmiljøer.
- En Microsoft Entra ID service principal (app-registrering) med en klienthemmelighed.
- Tilladelse til at tilføje secrets til GitHub-arkivet.
Trin 1: Opret en serviceprincipal til udrulninger
Arbejdsgangen logger ind ikke-interaktivt, så den bruger en serviceprincip i stedet for en interaktiv brugerkonto.
- I Azure-portalen registreres en ny ansøgning under Microsoft Entra ID>App registrations.
- Indskriv applikations-ID-et (klient-)ID og Directory-(lejer-)ID'et.
- Under Certifikater & hemmeligheder oprettes en ny klienthemmelighed og værdien kopieres. Opbevar den sikkert: du kan ikke se den igen senere.
- Giv tjenesteprincipalen Contributor eller højere tilladelse til mål-Fabric arbejdsområde, så den kan oprette og opdatere Fabric-app-elementet.
Vigtig
Service principal-udrulninger kræver Fabric-lejerindstillinger, der tillader service principals at bruge Fabric API'er. Bekræft med din Fabric-administrator, at dette er aktiveret.
Trin 2: Tilføj repository-hemmeligheder
I dit GitHub repository går du til Settings>Secrets and variables>Actions og tilføjer følgende repository-hemmeligheder:
| Hemmeligt navn | Værdi |
|---|---|
CLIENT_ID |
Applikations-ID'et (klient-)ID'et for tjenesteprincipalen. |
TENANT_ID |
Directory (lejer) ID'et. |
CLIENT_SECRET |
Kundens hemmelige værdi. |
FABRIC_WORKSPACE_NAME |
Navnet på målet Fabric arbejdsområde (for eksempel my-app-prod). |
Trin 3: Tilføj workflow-filen
Opret filen .github/workflows/deploy-to-fabric.yml med følgende indhold i dit repository:
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
Hvad hver sektion gør
-
on.push: Kører arbejdsgangen automatisk ved hvert push tilmain. -
on.workflow_dispatch: Tilføjer en Run workflow-knap i GitHub Actions UI med en force afkrydsningsboks. Muliggøring af force passes--forcetilrayfin up, så destruktive skemaændringer (såsom at fjerne kolonner eller tabeller) er tilladt. Lad det være ukontrolleret for sikre, ikke-destruktive udsendelser. -
concurrency: Sikrer kun én udrulning pr. gren ad gangen. Hvis et nyt push lander, mens en tidligere deploy stadig kører, bliver det ældre run annulleret til fordel for det nyere commit. Denne indstilling forhindrer torayfin upjobs i at køre om hovedet på samme arbejdsplads. -
env: Sender service principal-legitimationsoplysninger og målarbejdsområdenavn ind i jobbet. -
Install Rayfin CLI: Installerer CLI globalt, sårayfinden er på PATH. -
Login to Fabric with service principal: Autentificerer ved hjælp af miljøvariablerne*. -
Deploy to Fabric: Kørerrayfin upmod den konfigurerede lejer og arbejdsområde.--yesaccepterer ikke-destruktive prompts;--forcetilføjes kun, når den manuelle kørsel kræver det.
Trin 4: Udløs en udrulning
Du kan udløse arbejdsgangen på to måder:
-
Automatisk: Skub eller merge en commit til branchen
main. - Manuelt: I GitHub gå til Actions>Deploy to Fabric>Kør workflow. Vælg den gren, der skal deployes, og vælg eventuelt Tillad destruktive skemaændringer, der kan resultere i datatab, før du starter kørselen.
Når arbejdsgangen er færdig, udskriver trin Deploy to Fabric i kør-loggen Fabric-appens URL og deployment-ID'et.
Overvejelser og begrænsninger
- Samtidighed er pr. filial. Det
concurrency.groupinkluderergithub.ref, så udsendelser til forskellige grene ikke annullerer hinanden. Denne adfærd er bevidst, når du mapper grene til forskellige arbejdsområder. - Destruktive ændringer blokeres som standard.
rayfin upnægter skemaoperationer, der kan miste data, medmindre--forcede bliver godkendt. Aktiver kun magtanvendelse ved manuel kørsel, når du har gennemgået de planlagte operationer. - Arbejdsområder skal eksistere. Arbejdsgangen skaber ikke Fabric-arbejdsområder. Opret dem i Fabric-portalen og giv service principal adgang først.