Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Αυτοματοποιήστε τις αναπτύξεις μιας εφαρμογής Fabric από ένα αποθετήριο GitHub σε έναν χώρο εργασίας Fabric χρησιμοποιώντας μια ροή εργασιών GitHub Actions. Η ροή εργασίας συνδέεται για να Fabric με μια κύρια υπηρεσία, εγκαθιστά το Rayfin CLI και εκτελεί το rayfin up για να εφαρμόσει τον κώδικα, το σχήμα βάσης δεδομένων και το στατικό περιεχόμενο στον χώρο εργασίας προορισμού.
Αυτό το άρθρο σας δείχνει πώς να:
- Προετοιμάστε μια κύρια υπηρεσία και έναν χώρο εργασίας Fabric για αυτοματοποιημένες αναπτύξεις.
- Διαμορφώστε τα μυστικά του αποθετηρίου GitHub που χρειάζεται η ροή εργασίας.
- Προσθέστε το αρχείο ροής εργασιών ανάπτυξης στο αποθετήριο δεδομένων σας.
- Ενεργοποιήστε τις υλοποιήσεις αυτόματα
mainκαι χειροκίνητα με την προαιρετική υποστήριξη καταστροφικών αλλαγών. - Χρησιμοποιήστε ξανά την ίδια ροή εργασίας για κλάδους δυνατοτήτων και αναπτύξεις για συγκεκριμένο περιβάλλον.
Προϋποθέσεις
- Ένα έργο εφαρμογής Fabric σε ένα αποθετήριο δεδομένων GitHub. Εάν δεν έχετε ακόμη, ανατρέξτε στο θέμα Δημιουργήστε το πρώτο σας έργο Fabric Apps και προωθήστε τον κώδικα της εφαρμογής σας στο αποθετήριο.
- Ένας χώρος εργασίας Fabric στον οποίο μπορεί να αναπτυχθεί η κύρια υπηρεσία. Για τον διαχωρισμό περιβάλλοντος, ανατρέξτε στην ενότητα Διαχείριση περιβαλλόντων προγραμματιστή και προϊόντος.
- Μια κύρια υπηρεσία Microsoft Entra ID (καταχώρηση εφαρμογής) με μυστικό κωδικό προγράμματος-πελάτη.
- Δικαίωμα προσθήκης secrets στο αποθετήριο GitHub.
Βήμα 1: Δημιουργία κύριας υπηρεσίας για αναπτύξεις
Η ροή εργασίας συνδέεται μη αλληλεπιδραστικά, επομένως χρησιμοποιεί μια κύρια υπηρεσία αντί για έναν αλληλεπιδραστικό λογαριασμό χρήστη.
- Στην πύλη Azure, καταχωρήστε μια νέα αίτηση στο Microsoft Entra ID>App registrations.
- Καταγράψτε το αναγνωριστικό εφαρμογής (πελάτης) και το αναγνωριστικό καταλόγου (μισθωτή).
- Στην περιοχή Πιστοποιητικά & μυστικοί κωδικοί, δημιουργήστε έναν νέο μυστικό κωδικό προγράμματος-πελάτη και αντιγράψτε την τιμή. Αποθηκεύστε το με ασφάλεια: δεν μπορείτε να το δείτε ξανά αργότερα.
- Εκχωρήστε στην κύρια υπηρεσία Contributor ή υψηλότερο δικαίωμα στον χώρο εργασίας προορισμού Fabric, ώστε να μπορεί να δημιουργήσει και να ενημερώσει το στοιχείο εφαρμογής Fabric.
Σημαντικό
Οι αναπτύξεις κύριας υπηρεσίας απαιτούν ρυθμίσεις μισθωτή Fabric που επιτρέπουν στις κύριες υπηρεσίες να χρησιμοποιούν Fabric API. Επιβεβαιώστε με τον διαχειριστή του Fabric ότι αυτό είναι ενεργοποιημένο.
Βήμα 2: Προσθήκη μυστικών αρχείων αποθήκευσης
Στο αποθετήριο GitHub, μεταβείτε στο Settings>Secrets and variables>Actions και προσθέστε τα ακόλουθα μυστικά του αποθετηρίου:
| Μυστικό όνομα | Τιμή |
|---|---|
CLIENT_ID |
Το αναγνωριστικό εφαρμογής (προγράμματος-πελάτη) της κύριας υπηρεσίας. |
TENANT_ID |
Το αναγνωριστικό καταλόγου (μισθωτή). |
CLIENT_SECRET |
Η τιμή του μυστικού κωδικού προγράμματος-πελάτη. |
FABRIC_WORKSPACE_NAME |
Το όνομα του χώρου εργασίας Fabric προορισμού (για παράδειγμα, my-app-prod). |
Βήμα 3: Προσθήκη του αρχείου ροής εργασίας
Στο αποθετήριο δεδομένων σας, δημιουργήστε το αρχείο .github/workflows/deploy-to-fabric.yml με το ακόλουθο περιεχόμενο:
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
Τι κάνει κάθε ενότητα
-
on.push: Εκτελεί αυτόματα τη ροή εργασίας σε κάθε πάτημα στοmain. -
on.workflow_dispatch: Προσθέτει ένα κουμπί Εκτέλεση ροής εργασίας στο περιβάλλον εργασίας χρήστη GitHub Actions με ένα πλαίσιο επιλογής force. Επιτρέπεται η ενεργοποίηση περασμάτων--forceσεrayfin upτόσο καταστροφικές αλλαγές σχήματος (όπως η απόρριψη στηλών ή πινάκων). Αφήστε το ανεξέλεγκτο για ασφαλείς, μη καταστροφικές αναπτύξεις. -
concurrency: Εξασφαλίζει ότι εκτελείται μόνο μία ανάπτυξη ανά κλάδο κάθε φορά. Εάν μια νέα ώθηση προσγειωθεί ενώ μια προηγούμενη ανάπτυξη εξακολουθεί να εκτελείται, η παλαιότερη εκτέλεση ακυρώνεται υπέρ της νεότερης υποβολής. Αυτή η ρύθμιση αποτρέπει την εκτέλεση δύοrayfin upεργασιών στον ίδιο χώρο εργασίας. -
env: Μεταβιβάζει τα διαπιστευτήρια της κύριας υπηρεσίας και το όνομα του χώρου εργασίας προορισμού στην εργασία. -
Install Rayfin CLI: Εγκαθιστά το CLI καθολικά, επομένωςrayfinβρίσκεται στο PATH. -
Login to Fabric with service principal: Πραγματοποιεί έλεγχο ταυτότητας χρησιμοποιώντας τις μεταβλητές περιβάλλοντος*. -
Deploy to Fabric: Εκτελείταιrayfin upστον μισθωτή και τον χώρο εργασίας που έχει ρυθμιστεί.--yesδέχεται μη καταστροφικές προτροπές.--forceπροστίθεται μόνο όταν το ζητήσει η χειροκίνητη εκτέλεση.
Βήμα 4: Ενεργοποίηση ανάπτυξης
Μπορείτε να ενεργοποιήσετε τη ροή εργασίας με δύο τρόπους:
-
Αυτόματα: Προωθήστε ή συγχωνεύστε μια υποβολή στον
mainκλάδο. - Μη αυτόματα: Στο GitHub, μεταβείτε στο Actions>Deploy to Fabric>Run workflow. Επιλέξτε τη διακλάδωση που θέλετε να αναπτύξετε και προαιρετικά επιλέξτε Να επιτρέπονται καταστροφικές αλλαγές σχήματος που μπορεί να οδηγήσουν σε απώλεια δεδομένων πριν ξεκινήσετε την εκτέλεση.
Μετά την ολοκλήρωση της ροής εργασιών, το βήμα Ανάπτυξη σε Fabric στο αρχείο καταγραφής εκτέλεσης εκτυπώνει τη διεύθυνση URL της εφαρμογής Fabric και το αναγνωριστικό ανάπτυξης.
Ζητήματα προς εξέταση και περιορισμοί
- Ο ταυτοχρονισμός είναι ανά υποκατάστημα. Το
concurrency.groupπεριλαμβάνειgithub.ref, επομένως οι αναπτύξεις σε διαφορετικούς κλάδους δεν ακυρώνουν η μία την άλλη. Αυτή η συμπεριφορά είναι σκόπιμη όταν αντιστοιχίζετε κλάδους σε διαφορετικούς χώρους εργασίας. - Οι καταστροφικές αλλαγές αποκλείονται από προεπιλογή.
rayfin upΑρνείται λειτουργίες σχήματος που μπορεί να χάσουν δεδομένα εκτός εάν--forceπεράσουν. Ενεργοποιήστε τη δύναμη για χειροκίνητη εκτέλεση μόνο όταν έχετε ελέγξει τις προγραμματισμένες λειτουργίες. - Οι χώροι εργασίας πρέπει να υπάρχουν. Η ροή εργασίας δεν δημιουργεί χώρους εργασίας Fabric. Δημιουργήστε τα στην πύλη Fabric και εκχωρήστε πρώτα πρόσβαση στην κύρια υπηρεσία.