Szybki start: wdrażanie plików Bicep przy użyciu funkcji GitHub Actions
Funkcja GitHub Actions to zestaw funkcji w usłudze GitHub do automatyzowania przepływów pracy tworzenia oprogramowania. W tym przewodniku Szybki start użyjesz funkcji GitHub Actions dla wdrożenia usługi Azure Resource Manager, aby zautomatyzować wdrażanie pliku Bicep na platformie Azure.
Zawiera krótkie wprowadzenie do funkcji GitHub actions i plików Bicep. Jeśli chcesz uzyskać bardziej szczegółowe instrukcje dotyczące konfigurowania akcji i projektu usługi GitHub, zobacz Wdrażanie zasobów platformy Azure przy użyciu funkcji Bicep i GitHub Actions.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Konto usługi GitHub. Jeśli nie masz takiego konta, zarejestruj się bezpłatnie.
- Repozytorium GitHub do przechowywania plików Bicep i plików przepływu pracy. Aby go utworzyć, zobacz Tworzenie nowego repozytorium.
Utwórz grupę zasobów
Utwórz grupę zasobów. W dalszej części tego przewodnika Szybki start wdrożysz plik Bicep w tej grupie zasobów.
az group create -n exampleRG -l westus
Generowanie poświadczeń wdrożenia
Aby użyć akcji logowania platformy Azure z funkcją OIDC, należy skonfigurować poświadczenie tożsamości federacyjnej w aplikacji Microsoft Entra lub tożsamości zarządzanej przypisanej przez użytkownika.
Opcja 1. Aplikacja Firmy Microsoft Entra
- Utwórz aplikację Firmy Microsoft Entra przy użyciu jednostki usługi według witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
- Skopiuj wartości identyfikatora klienta, identyfikatora subskrypcji i identyfikatora katalogu (dzierżawy), aby użyć ich później w przepływie pracy funkcji GitHub Actions.
- Przypisz odpowiednią rolę do jednostki usługi za pomocą witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
- Skonfiguruj poświadczenie tożsamości federacyjnej w aplikacji Microsoft Entra w celu zaufania tokenów wystawionych przez funkcję GitHub Actions do repozytorium GitHub.
Opcja 2. Tożsamość zarządzana przypisana przez użytkownika
- Utwórz tożsamość zarządzaną przypisaną przez użytkownika.
- Skopiuj wartości identyfikatora klienta, identyfikatora subskrypcji i identyfikatora katalogu (dzierżawy), aby użyć ich później w przepływie pracy funkcji GitHub Actions.
- Przypisz odpowiednią rolę do tożsamości zarządzanej przypisanej przez użytkownika.
- Skonfiguruj poświadczenia tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika do tokenów zaufania wystawionych przez funkcję GitHub Actions w repozytorium GitHub.
Konfigurowanie wpisów tajnych usługi GitHub
Musisz podać identyfikator klienta aplikacji, identyfikator katalogu (dzierżawy) i identyfikator subskrypcji do akcji logowania. Te wartości można podać bezpośrednio w przepływie pracy lub przechowywać w wpisach tajnych usługi GitHub i odwoływać się do nich w przepływie pracy. Zapisanie wartości jako wpisów tajnych usługi GitHub jest bezpieczniejszą opcją.
W usłudze GitHub przejdź do repozytorium.
Wybierz pozycję Wpisy tajne zabezpieczeń > i zmienne > Akcje.
Wybierz pozycję Nowy wpis tajny repozytorium.
Uwaga
Aby zwiększyć bezpieczeństwo przepływu pracy w repozytoriach publicznych, użyj wpisów tajnych środowiska zamiast wpisów tajnych repozytorium. Jeśli środowisko wymaga zatwierdzenia, zadanie nie może uzyskać dostępu do wpisów tajnych środowiska, dopóki jeden z wymaganych recenzentów go nie zatwierdzi.
Utwórz wpisy tajne dla ,
AZURE_CLIENT_ID
AZURE_TENANT_ID
iAZURE_SUBSCRIPTION_ID
. Skopiuj te wartości z aplikacji Microsoft Entra lub tożsamości zarządzanej przypisanej przez użytkownika dla wpisów tajnych usługi GitHub:Wpis tajny usługi GitHub Aplikacja Microsoft Entra lub tożsamość zarządzana przypisana przez użytkownika AZURE_CLIENT_ID Client ID AZURE_SUBSCRIPTION_ID Identyfikator subskrypcji AZURE_TENANT_ID Identyfikator katalogu (dzierżawcy) Uwaga
Ze względów bezpieczeństwa zalecamy używanie wpisów tajnych usługi GitHub zamiast przekazywania wartości bezpośrednio do przepływu pracy.
Dodawanie pliku Bicep
Dodaj plik Bicep do repozytorium GitHub. Następujący plik Bicep tworzy konto magazynu:
@minLength(3)
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
'Standard_ZRS'
'Premium_LRS'
'Premium_ZRS'
'Standard_GZRS'
'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string = resourceGroup().location
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
Plik Bicep wymaga jednego parametru o nazwie storagePrefix z 3 do 11 znaków.
Plik można umieścić w dowolnym miejscu w repozytorium. Przykładowy przepływ pracy w następnej sekcji zakłada, że plik Bicep nosi nazwę main.bicep i jest przechowywany w katalogu głównym repozytorium.
Tworzenie przepływu pracy
Przepływ pracy definiuje kroki do wykonania po wyzwoleniu. Jest to plik YAML (.yml) w ścieżce .github/workflows/ repozytorium. Rozszerzenie pliku przepływu pracy może być .yml lub yaml.
Aby utworzyć przepływ pracy, wykonaj następujące kroki:
W repozytorium GitHub wybierz pozycję Akcje z górnego menu.
Wybierz pozycję Nowy przepływ pracy.
Wybierz opcję Skonfiguruj przepływ pracy samodzielnie.
Zmień nazwę pliku przepływu pracy, jeśli wolisz inną nazwę niż main.yml. Na przykład: deployBicepFile.yml.
Zastąp zawartość pliku yml następującym kodem:
on: [push] name: Azure ARM permissions: id-token: write contents: read jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} # Deploy Bicep file - name: deploy uses: azure/arm-deploy@v1 with: subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }} resourceGroupName: ${{ secrets.AZURE_RG }} template: ./main.bicep parameters: 'storagePrefix=mystore storageSKU=Standard_LRS' failOnStdErr: false
Wybierz pozycję Zatwierdź zmiany.
Wybierz pozycję Zatwierdź bezpośrednio w gałęzi głównej.
Wybierz pozycję Zatwierdź nowy plik (lub Zatwierdź zmiany).
Aktualizowanie pliku przepływu pracy lub pliku Bicep wyzwala przepływ pracy. Przepływ pracy rozpoczyna się bezpośrednio po zatwierdzeniu zmian.
Sprawdzanie stanu przepływu pracy
- Wybierz kartę Akcje . Zostanie wyświetlony przepływ pracy Tworzenie deployBicepFile.yml . Uruchomienie przepływu pracy trwa od 1 do 2 minut.
- Wybierz przepływ pracy, aby go otworzyć, a następnie sprawdź, czy element
Status
toSuccess
.
Czyszczenie zasobów
Gdy grupa zasobów i repozytorium nie są już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów i repozytorium GitHub.
az group delete --name exampleRG