Ota käyttöön Fabric-sovellus GitHub Actions -toiminnolla

Automatisoi Fabric-sovelluksen käyttöönotto GitHub-repositoriosta Fabric-työtilaan käyttämällä GitHub Actions -työnkulkua. Työnkulku kirjautuu sisään Fabric palvelupäähenkilön kanssa, asentaa Rayfin-komentoketjun ja suorittaa rayfin up soveltaakseen koodisi, tietokantaskeemasi ja staattisen sisällön kohdetyötilaan. Tässä artikkelissa opit:

  • Valmistele palvelupäähenkilö ja Fabric-työtila automatisoituja käyttöönottoja varten.
  • Määritä GitHub-repositorion salaisuudet, joita työnkulku tarvitsee.
  • Lisää käyttöönoton työnkulkutiedosto repositorioosi.
  • Käynnistä käyttöönotto automaattisesti main ja manuaalisesti sekä valinnaisella tuhoavan muutoksen tuella.
  • Käytä samaa työnkulkua uudelleen ominaisuushaaroissa ja ympäristökohtaisissa käyttöönotossa.

Edellytykset

  • Fabric-sovellusprojekti GitHub-repositoriossa. Jos sinulla ei vielä ole sellaista, katso Luo ensimmäinen Fabric Apps -projektisi ja työnnä sovelluskoodisi repositorioon.
  • Fabric-työtila, johon palvelun päämies voi ottaa käyttöön. Ympäristön erottamisesta katso Hallinnoi kehitys- ja tuotantoympäristöjä.
  • Microsoft Entra ID -palvelupäähenkilö (sovelluksen rekisteröinti), jossa on asiakassalaisuus.
  • Lupa lisätä secrets GitHub-repositorioon.

Vaihe 1: Luo palveluperiaate käyttöönottoja varten

Työnkulku kirjautuu sisään ei-interaktiivisesti, joten se käyttää palvelupäätä interaktiivisen käyttäjätilin sijaan.

  1. Azure-portaalissa rekisteröi uusi hakemus Microsoft Entra ID>App registrations.
  2. Tallenna sovelluksen (asiakas) ID ja Directory (vuokralaisen) ID.
  3. Sertifikaatit & salaisuudet -osiossa luo uusi asiakassalaisuus ja kopioi arvo. Säilytä se turvallisesti: et voi katsoa sitä uudelleen myöhemmin.
  4. Anna palvelupäähenkilölle Contributor tai korkeampi oikeus kohde-Fabric työtilaan, jotta se voi luoda ja päivittää Fabric sovelluksen kohteen.

Important

Palvelupäähenkilöiden käyttöönotot vaativat Fabric-vuokralaisasetuksia, jotka sallivat palveluperiaatteiden käyttää Fabric-rajapintoja. Varmista Fabric-ylläpitäjältäsi, että tämä on käytössä.

Vaihe 2: Lisää tietovaraston salaisuudet

GitHub-repositoriossasi mene Settings>Secrets and variables>Actions ja lisää seuraavat repositorion salaisuudet:

Salaisen koodin nimi Arvo
CLIENT_ID Palvelupäähenkilön sovelluksen (asiakas) tunnus.
TENANT_ID Hakemiston (vuokralaisen) tunnus.
CLIENT_SECRET Asiakkaan salainen arvo.
FABRIC_WORKSPACE_NAME Kohteen nimi Fabric työtila (esimerkiksi my-app-prod).

Vaihe 3: Lisää työnkulkutiedosto

Luo arkistossasi tiedosto .github/workflows/deploy-to-fabric.yml , jossa on seuraava sisältö:

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

Mitä kukin osio tekee

  • on.push: Suorittaa työnkulun automaattisesti jokaisella painalluksella .main
  • on.workflow_dispatch: Lisää Run workflow -painikkeen GitHub Actions käyttöliittymään, jossa on force valintaruutu. Voimansiirtojen salliminen niin tuhoisiin skeemamuutoksiin (kuten sarakkeiden tai taulukoiden poistaminen) on sallittua.--forcerayfin up Jätä se tarkistamatta turvallisten ja tuhoamattomien laukaisujen varalta.
  • concurrency: Varmistaa, että vain yksi käyttöönotto per haara toimii samanaikaisesti. Jos uusi push osuu, kun edellinen deploy on vielä käynnissä, vanhempi juoksu perutaan ja tilalle tulee uusi commit. Tämä asetus estää kahden rayfin up tehtävän kilpailemisen samalla työtilalla.
  • env: Välittää palvelupäähenkilön tunnukset ja kohdetyötilan nimen tehtävään.
  • Install Rayfin CLI: Asentaa CLI:n maailmanlaajuisesti, joten rayfin se on PATHILLA.
  • Login to Fabric with service principal: Tunnistautuu käyttäen * ympäristömuuttujia.
  • Deploy to Fabric: Ajaa rayfin up konfiguroitua vuokralaista ja työtilaa vastaan. --yes hyväksyy ei-tuhoavat kehotteet; --force lisätään vain, kun manuaalinen suoritus sitä pyytää.

Vaihe 4: Käynnistä käyttöönotto

Voit käynnistää työnkulun kahdella tavalla:

  • Automaattisesti: Työnnä tai yhdistä commit haarautumiseen main .
  • Manually: GitHub:ssa mene Actions>Deploy to Fabric>Suorita workflow. Valitse haarautuminen ja halutessasi valitse Salli tuhoavat skeemamuutokset, jotka voivat johtaa tietojen menetykseen ennen suorituksen aloittamista.

Työnkulun päätyttyä Deploy to Fabric -vaihe tulostaa Fabric-sovelluksen URL-osoitteen ja käyttöönoton ID:n.

Huomioitavat asiat ja rajoitukset

  • Samanaikaisuus on konttorikohtainen. Ne concurrency.group sisältävät github.ref, joten eri haarojen käyttöönotot eivät kumoa toisiaan. Tämä käyttäytyminen on tarkoituksellista, kun haarat kartoitetaan eri työtiloihin.
  • Tuhoavat muutokset ovat oletuksena estettuja. rayfin up kieltäytyy skeemaoperaatioista, jotka voivat menettää dataa, ellei --force niitä ohi. Ota voima käyttöön manuaaliseen suoritukseen vain, kun olet tarkistanut suunnitellut toiminnot.
  • Työtiloja täytyy olla olemassa. Työnkulku ei luo Fabric-työtiloja. Luo ne Fabric-portaalissa ja anna palvelupäämiehelle pääsy ensin.