Ćwiczenie — wdrażanie pliku Bicep z przepływów pracy usługi GitHub

Ukończone

Funkcja GitHub Actions jest podobna do usługi Azure Pipelines w naturze. Zapewniają one sposób automatyzowania tworzenia i wdrażania oprogramowania. W tym ćwiczeniu dowiesz się, jak wdrożyć plik Bicep przy użyciu akcji usługi GitHub.

Wymagania wstępne

  • Będziesz potrzebować konta usługi GitHub, które możesz utworzyć bezpłatnie tutaj.
  • Repozytorium GitHub jest również wymagane do przechowywania pliku Bicep i przepływów pracy utworzonych wcześniej w sekcji Ćwiczenie — tworzenie szablonów Bicep. Po utworzeniu repozytorium GitHub wypchnij do niego plik Bicep.
  • Do wdrożenia na platformie Azure wymagany jest dostęp do subskrypcji platformy Azure, którą można utworzyć bezpłatnie tutaj.

Tworzenie jednostki usługi na platformie Azure

Aby wdrożyć zasoby na platformie Azure, musisz utworzyć jednostkę usługi, której może używać usługa GitHub. Otwórz więc terminal lub użyj usługi Cloud Shell w witrynie Azure Portal i wpisz następujące polecenia:

az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth

Uwaga

Nie zapomnij zastąpić identyfikatora subskrypcji Twoimi.

Po pomyślnym zakończeniu operacji powinien zostać wyświetlony obiekt JSON zawierający właściwości tenantId, subscriptionId, clientId, clientSecreti kilka innych, takich jak następujące.

{
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
}

Zanotuj ten obiekt, ponieważ musisz dodać go do wpisów tajnych usługi GitHub.

Tworzenie wpisu tajnego usługi GitHub

W repozytorium GitHub przejdź do pozycji Ustawienia>Akcje wpisów tajnych.> Utwórz nowy wpis tajny o nazwie AZURE_CREDENTIALS i wklej cały obiekt JSON uzyskany w poprzednim kroku.

Utwórz kolejny wpis tajny dla nazwy grupy zasobów o nazwie takiej jak AZURE_RG i jeden dla subskrypcji.

Zrzut ekranu przedstawiający stronę tworzenia wpisów tajnych usługi GitHub i zarządzania nimi.

Tworzenie akcji usługi GitHub

  1. Najpierw przejdź do repozytorium i wybierz menu Akcje. Następnie skonfiguruj przepływ pracy, aby utworzyć pusty przepływ pracy w repozytorium. Jeśli wolisz, możesz zmienić nazwę pliku na inną.

    Zrzut ekranu przedstawiający tworzenie, edytowanie i podgląd nowych plików w usłudze GitHub.

  2. Zastąp zawartość pliku następującym fragmentem kodu:

    on: [push]
    name: Azure ARM
    jobs:
        build-and-deploy:
            runs-on: ubuntu-latest
            steps:
                # Checkout code
                - uses: actions/checkout@main
    
                  # Log into Azure
                - uses: azure/login@v1
                  with:
                      creds: ${{ secrets.AZURE_CREDENTIALS }}
    
                  # Deploy Bicep file
                - name: deploy
                  uses: azure/arm-deploy@v1
                  with:
                      subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
                      resourceGroupName: ${{ secrets.AZURE_RG }}
                      template: ./main.bicep
                      parameters: storagePrefix=stg
                      failOnStdErr: false
    

    Możesz zastąpić prefiks konta magazynu własnym.

    Uwaga

    Pierwsza część przepływu pracy definiuje wyzwalacz i jego nazwę. Reszta definiuje zadanie i używa kilku zadań do wyewidencjonowania kodu, logowania się na platformie Azure i wdrażania pliku Bicep.

  3. Wybierz pozycję Rozpocznij zatwierdzenie, a następnie wprowadź tytuł i opis w oknie podręcznym. Następnie wybierz pozycję Zatwierdź bezpośrednio w gałęzi głównej, a następnie pozycję Zatwierdź nowy plik.

    Zrzut ekranu witryny GitHub zatwierdza nowy plik w gałęzi głównej.

  4. Przejdź do karty Akcje i wybierz nowo utworzoną akcję, która powinna być uruchomiona.

    Zrzut ekranu przedstawiający uruchamianie i wdrażanie akcji usługi GitHub.

  5. Monitoruj stan i po zakończeniu zadania sprawdź witrynę Azure Portal, aby sprawdzić, czy konto magazynu jest tworzone.

    Zrzut ekranu przedstawiający pomyślną wykonaną akcję usługi GitHub.