Udostępnij za pośrednictwem


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

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

Opcja 2. Tożsamość zarządzana przypisana przez użytkownika

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ą.

  1. W usłudze GitHub przejdź do repozytorium.

  2. Wybierz pozycję Wpisy tajne zabezpieczeń > i zmienne > Akcje.

    Zrzut ekranu przedstawiający dodawanie wpisu tajnego

  3. 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.

  4. Utwórz wpisy tajne dla , AZURE_CLIENT_IDAZURE_TENANT_IDi AZURE_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:

  1. W repozytorium GitHub wybierz pozycję Akcje z górnego menu.

  2. Wybierz pozycję Nowy przepływ pracy.

  3. Wybierz opcję Skonfiguruj przepływ pracy samodzielnie.

  4. Zmień nazwę pliku przepływu pracy, jeśli wolisz inną nazwę niż main.yml. Na przykład: deployBicepFile.yml.

  5. 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
    
  6. Wybierz pozycję Zatwierdź zmiany.

  7. Wybierz pozycję Zatwierdź bezpośrednio w gałęzi głównej.

  8. 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

  1. Wybierz kartę Akcje . Zostanie wyświetlony przepływ pracy Tworzenie deployBicepFile.yml . Uruchomienie przepływu pracy trwa od 1 do 2 minut.
  2. Wybierz przepływ pracy, aby go otworzyć, a następnie sprawdź, czy element Status to Success.

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

Następne kroki