Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Automatyzowanie wdrożeń aplikacji Fabric z repozytorium GitHub do obszaru roboczego Fabric przy użyciu przepływu pracy GitHub Actions. Przepływ pracy loguje się do usługi Fabric przy użyciu nazwy głównej usługi, instaluje narzędzie wiersza polecenia Rayfin i uruchamia rayfin up, aby wdrożyć kod, schemat bazy danych i zasoby statyczne w docelowym obszarze roboczym.
W tym artykule pokazano, jak wykonać następujące działania:
- Przygotuj jednostkę usługi głównej i obszar roboczy usługi Fabric do zautomatyzowanych wdrożeń.
- Skonfiguruj sekrety repozytorium GitHub wymagane przez przepływ pracy.
- Dodaj plik przepływu pracy wdrożenia do repozytorium.
- Uruchamiaj wdrożenia automatycznie na
mainoraz ręcznie z opcjonalną obsługą destrukcyjnych zmian. - Użyj tego samego przepływu pracy dla gałęzi funkcji i wdrożeń specyficznych dla środowiska.
Wymagania wstępne
- Projekt aplikacji Fabric w repozytorium GitHub. Jeśli jeszcze go nie masz, zobacz Utwórz swój pierwszy projekt Fabric Apps i wypchnij kod aplikacji do repozytorium.
- Obszar roboczy Fabric, do którego może zostać wdrożona jednostka usługi. Aby uzyskać informacje na temat separacji środowiska, zobacz Zarządzanie środowiskami deweloperskimi i prodowymi.
- Jednostka usługi Microsoft Entra ID (rejestracja aplikacji) z kluczem tajnym klienta.
- Uprawnienie do dodawania secrets do repozytorium GitHub.
Krok 1. Utwórz nazwę główną usługi na potrzeby wdrożeń
Przepływ pracy loguje się w trybie nieinteraktywnym, więc używa jednostki usługi zamiast interaktywnego konta użytkownika.
- W portalu Azure zarejestruj nową aplikację w Microsoft Entra ID>Rejestracje aplikacji.
- Zarejestruj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawcy).
- W obszarze Certyfikaty i wpisy tajne utwórz nowy klucz tajny klienta i skopiuj wartość. Zapisz go bezpiecznie: nie możesz wyświetlić go ponownie później.
- Udziel nazwie głównej usługi uprawnień Contributor lub wyższych w docelowym obszarze roboczym Fabric, aby mogła tworzyć i aktualizować element aplikacji Fabric.
Ważna
Wdrożenia z użyciem nazw głównych usługi wymagają ustawień dzierżawy Fabric, które zezwalają nazwom głównym usługi na korzystanie z interfejsów API usługi Fabric. Potwierdź u administratora usługi Fabric, że ta funkcja jest włączona.
Krok 2: Dodaj sekrety repozytorium
W repozytorium w serwisie GitHub przejdź do sekcji Settings>Secrets and variables>Actions i dodaj następujące sekrety repozytorium:
| Tajna nazwa | Value |
|---|---|
CLIENT_ID |
Identyfikator aplikacji (klienta) jednostki usługi. |
TENANT_ID |
Identyfikator katalogu (dzierżawy). |
CLIENT_SECRET |
Wartość klucza tajnego klienta. |
FABRIC_WORKSPACE_NAME |
Nazwa docelowego obszaru roboczego Fabric (na przykład my-app-prod). |
Krok 3. Dodawanie pliku przepływu pracy
W repozytorium utwórz plik .github/workflows/deploy-to-fabric.yml z następującą zawartością:
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
Co robi każda sekcja
-
on.push: Automatycznie uruchamia przepływ pracy po każdym wypchnięciu domain. -
on.workflow_dispatch: Dodaje przycisk Uruchom przepływ pracy w interfejsie GitHub Actions z polem wyboru force. Włączenie opcji force przekazuje--forcedorayfin up, dzięki czemu dozwolone są destrukcyjne zmiany schematu (takie jak usuwanie kolumn lub tabel). Pozostaw to pole niezaznaczone, aby wdrożenia były bezpieczne i nieniszczące. -
concurrency: Zapewnia, że dla każdej gałęzi jednocześnie uruchamia się tylko jedno wdrożenie. Jeśli pojawi się nowy push, gdy poprzednie wdrożenie wciąż trwa, wcześniejsze uruchomienie zostanie anulowane na rzecz nowszego commita. To ustawienie uniemożliwia rywalizację dwóch zadańrayfin upo ten sam obszar roboczy. -
env: przekazuje do zadania poświadczenia jednostki usługi i docelową nazwę obszaru roboczego. -
Install Rayfin CLI: Instaluje CLI globalnie, abyrayfinbyło dostępne w zmiennej PATH. -
Login to Fabric with service principal: uwierzytelnia się przy użyciu zmiennych środowiskowych*. -
Deploy to Fabric: uruchamiarayfin updla skonfigurowanej dzierżawy i obszaru roboczego.--yesakceptuje nieniszczące polecenia;--forcejest dodawany tylko wtedy, gdy zażądano tego podczas ręcznego uruchomienia.
Krok 4. Wyzwalanie wdrożenia
Przepływ pracy można wyzwolić na dwa sposoby:
-
Automatycznie: wypychanie lub scalanie zatwierdzenia z gałęzią
main. - Ręcznie: W witrynie GitHub przejdź do Actions>Deploy to Fabric>Run workflow. Wybierz gałąź do wdrożenia i opcjonalnie zaznacz opcję Zezwalaj na destrukcyjne zmiany w schemacie, które mogą spowodować utratę danych przed rozpoczęciem uruchomienia.
Po zakończeniu przepływu pracy w dzienniku uruchomienia krok Wdróż do Fabric wyświetla adres URL aplikacji Fabric oraz identyfikator wdrożenia.
Uwagi i ograniczenia
- Współbieżność dotyczy każdej gałęzi.
concurrency.groupobejmujegithub.ref, więc wdrożenia do różnych gałęzi nie anulują się nawzajem. To zachowanie jest celowe, gdy mapujesz gałęzie do różnych obszarów roboczych. - Zmiany destrukcyjne są domyślnie blokowane.
rayfin upodrzuca operacje na schemacie, które mogą spowodować utratę danych, jeśli nie zostanie przekazane--force. Włączaj opcję force dla ręcznego uruchomienia tylko po przejrzeniu planowanych operacji. - Obszary robocze muszą istnieć. Przepływ pracy nie tworzy obszarów roboczych Fabric. Utwórz je w portalu Fabric i najpierw przyznaj jednostce usługi dostęp.