Freigeben über


Schnellstart: Bereitstellen von Bicep-Dateien mithilfe von GitHub Actions

GitHub Actions ist eine Suite mit Features in GitHub, mit denen Sie Ihre Workflows für die Softwareentwicklung automatisieren können. In dieser Schnellstartanleitung verwenden Sie die GitHub Actions zum Bereitstellen von Azure Resource Manager, um die Bereitstellung einer Bicep-Datei in Azure zu automatisieren.

Es bietet eine kurze Einführung in GitHub und Bicep-Dateien. Wenn Sie detailliertere Schritte zum Einrichten der GitHub-Aktionen und -Projekte wünschen, lesen Sie Bereitstellen von Azure-Ressourcen mithilfe von Bicep und GitHub Actions.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
  • Ein GitHub-Konto. Falls Sie noch nicht über ein Konto verfügen, können Sie sich kostenlos registrieren.
  • Ein GitHub-Repository, in dem Sie Ihre Bicep-Dateien und Ihre Workflowdateien speichern können. Informationen zum Erstellen eines neuen Repositorys finden Sie in diesem Hilfeartikel.

Ressourcengruppe erstellen

Erstellen Sie eine Ressourcengruppe. Weiter hinten in diesem Schnellstart stellen Sie Ihre Bicep-Datei für diese Ressourcengruppe bereit.

az group create -n exampleRG -l westus

Generieren von Anmeldeinformationen für die Bereitstellung

Um die Aktion Azure-Anmeldung mit OIDC zu verwenden, müssen Sie Anmeldeinformationen für eine Verbundidentität in einer Microsoft Entra-Anwendung oder eine benutzerseitig zugewiesene verwaltete Identität konfigurieren.

Option 1: Microsoft Entra-Anwendung

Option 2: Benutzerseitig zugewiesene verwaltete Identität

Konfigurieren der GitHub-Geheimnisse

Sie müssen die Client-ID Ihrer Anwendung, die Verzeichnis-ID (Mandanten-ID) und die Abonnement-ID für die Anmeldeaktion bereitstellen. Diese Werte können entweder direkt im Workflow bereitgestellt werden oder in GitHub-Geheimnissen gespeichert und darauf in Ihrem Workflow verwiesen werden. Das Speichern der Werte als GitHub-Geheimnisse ist die sicherere Option.

  1. Wechseln Sie in GitHub zu Ihrem Repository.

  2. Wählen Sie Security > Secrets and variables > Actions (Sicherheit > Geheimnisse und Variablen > Aktionen) aus.

    Screenshot des Hinzufügens eines Geheimnisses

  3. Wählen Sie New repository secret (Neues Repositorygeheimnis) aus.

    Hinweis

    Um die Sicherheit von Workflows in öffentlichen Repositorys zu verbessern, verwenden Sie Umgebungsgeheimnisse anstelle von geheimen Repositorygeheimnissen. Wenn für die Umgebung eine Genehmigung erforderlich ist, kann ein Auftrag erst dann auf Umgebungsgeheimnisse zugreifen, wenn einer der erforderlichen Reviewer den Auftrag genehmigt hat.

  4. Erstellen Sie Geheimnisse für AZURE_CLIENT_ID, AZURE_TENANT_ID und AZURE_SUBSCRIPTION_ID. Kopieren Sie diese Werte aus Ihrer Microsoft Entra-Anwendung oder benutzerseitig zugewiesenen verwalteten Identität für Ihre GitHub-Geheimnisse:

    GitHub-Geheimnis Microsoft Entra-Anwendung oder benutzerseitig zugewiesene verwaltete Identität
    AZURE_CLIENT_ID Client-ID
    AZURE_SUBSCRIPTION_ID Abonnement-ID
    AZURE_TENANT_ID Verzeichnis-ID (Mandant)

    Hinweis

    Aus Sicherheitsgründen empfehlen wir die Verwendung von GitHub-Geheimnissen, anstatt Werte direkt an den Workflow zu übergeben.

Hinzufügen einer Bicep-Datei

Fügen Sie Ihrem GitHub-Repository eine Bicep-Datei hinzu. Die folgende Bicep-Datei erstellt ein Speicherkonto:

@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

Die Bicep-Datei erfordert einen Parameter namens storagePrefix mit 3 bis 11 Zeichen.

Sie können die Datei an einer beliebigen Stelle im Repository ablegen. Im Workflowbeispiel im nächsten Abschnitt wird davon ausgegangen, dass die Bicep-Datei main.bicep heißt und im Repositorystamm gespeichert ist.

Erstellen des Workflows

Ein Workflow definiert die Schritte, die ausgeführt werden müssen, wenn sie ausgelöst werden. Es ist eine YAML-Datei (.yml) im GITHUB/Workflows/-Pfad Ihres Repositorys. Die Erweiterung der Workflowdatei kann entweder .yml oder .yaml lauten.

Gehen Sie wie folgt vor, um einen Workflow zu erstellen:

  1. Klicken Sie in Ihrem GitHub-Repository im oberen Menü auf Actions (Aktionen).

  2. Klicken Sie auf New workflow (Neuer Workflow).

  3. Klicken Sie auf set up a workflow yourself (Workflow selbst einrichten).

  4. Benennen Sie die Workflowdatei um, wenn Sie einen anderen Namen als main.yml bevorzugen. Beispiel: deployBicepFile.yml.

  5. Ersetzen Sie den Inhalt der YML-Datei durch folgenden Code:

    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. Wählen Sie Commit changes (Änderungen committen) aus.

  7. Wählen Sie Direkten Commit zum Hauptbranch ausführen aus.

  8. Klicken Sie auf Commit new file (Neue Datei committen) (oder Commit changes [Änderungen committen]).

Wenn Sie entweder die Workflowdatei oder die Bicep-Datei aktualisieren, wird der Workflow ausgelöst. Der Workflow wird direkt nach dem Committen der Änderungen gestartet.

Überprüfen des Workflowstatus

  1. Klicken Sie auf die Registerkarte Actions (Aktionen). Es wird ein Workflow zum Erstellen von deployBicepFile.yml aufgelistet. Die Ausführung des Workflows dauert 1–2 Minuten.
  2. Wählen Sie den Workflow aus, um ihn zu öffnen, und überprüfen Sie, ob StatusSuccess ist.

Bereinigen von Ressourcen

Wenn Ihre Ressourcengruppe und das Repository nicht mehr benötigt werden, bereinigen Sie die bereitgestellten Ressourcen, indem Sie die Ressourcengruppe und Ihr GitHub-Repository löschen.

az group delete --name exampleRG

Nächste Schritte