Üzembe helyezés az App Service-ben a GitHub Actions segítségével

Ismerkedés a GitHub Actions szolgáltatással a munkafolyamat automatizálásához és Azure-alkalmazás Szolgáltatásban való üzembe helyezéshez a GitHubról.

Előfeltételek

A GitHub Actions üzembe helyezésének beállítása az alkalmazás létrehozásakor

A GitHub Actions üzembe helyezése integrálva van az alapértelmezett alkalmazáslétrehozó varázslóba. Csak be kell állítania a folyamatos üzembe helyezéstaz Üzembe helyezés lapon engedélyezve , és konfigurálnia kell a kívánt szervezetet, adattárat és ágat.

A screenshot showing how to enable GitHub Actions deployment in the App Service create wizard.

A folyamatos üzembe helyezés engedélyezésekor az alkalmazáslétrehozási varázsló automatikusan kiválasztja a hitelesítési módszert az alapszintű hitelesítés kiválasztása alapján, és ennek megfelelően konfigurálja az alkalmazást és a GitHub-adattárat:

Egyszerű hitelesítés kiválasztása Hitelesítési módszer
Letiltás Felhasználó által hozzárendelt identitás (OpenID Csatlakozás)
Engedélyezés Alapszintű hitelesítés

Feljegyzés

Ha az alkalmazás létrehozásakor hibaüzenet jelenik meg, amely szerint az Azure-fiókja nem rendelkezik bizonyos engedélyekkel, előfordulhat, hogy nem rendelkezik a felhasználó által hozzárendelt identitás létrehozásához és konfigurálásához szükséges engedélyekkel. Másik lehetőségként tekintse meg a GitHub Actions üzembe helyezésének beállítása az üzembe helyezési központból című témakört.

A GitHub Actions üzembe helyezésének beállítása az üzembe helyezési központból

Egy meglévő alkalmazás esetében az App Service Deployment Center használatával gyorsan megkezdheti a GitHub Actions használatát. Ez a kulcsrakész módszer automatikusan létrehoz egy GitHub Actions-munkafolyamatfájlt az alkalmazásverem alapján, és véglegesíti azt a GitHub-adattárban.

Az Üzembe helyezési központ lehetővé teszi a biztonságosabb OpenID Csatlakozás hitelesítés konfigurálását is a felhasználó által hozzárendelt identitásbeállítással.

Ha az Azure-fiókja rendelkezik a szükséges engedélyekkel, kiválaszthatja, hogy létrehoz-e egy felhasználó által hozzárendelt identitást. Ellenkező esetben kiválaszthat egy meglévő, felhasználó által hozzárendelt felügyelt identitást az Identitás legördülő menüben. Az Azure-rendszergazdával együttműködve létrehozhat egy felhasználó által hozzárendelt felügyelt identitást a webhely közreműködői szerepkörével.

További információ: Folyamatos üzembe helyezés Azure-alkalmazás szolgáltatásban.

GitHub Actions-munkafolyamat manuális beállítása

A munkafolyamatokat az Üzembe helyezési központ használata nélkül is üzembe helyezheti.

  1. Üzembehelyezési hitelesítő adatok létrehozása
  2. A GitHub titkos kódjának konfigurálása
  3. Munkafolyamat-fájl hozzáadása a GitHub-adattárhoz

1. Üzembehelyezési hitelesítő adatok létrehozása

A GitHub Actions Azure-alkalmazás-szolgáltatásaival való hitelesítés ajánlott módja egy felhasználó által definiált felügyelt identitás, és ennek legegyszerűbb módja a GitHub Actions üzembe helyezésének konfigurálása közvetlenül a portálon, és a felhasználó által hozzárendelt felügyelt identitás kiválasztása.

Feljegyzés

A felhasználó által hozzárendelt felügyelt identitást használó hitelesítés jelenleg előzetes verzióban érhető el.

Másik lehetőségként hitelesítést végezhet szolgáltatásnévvel, OpenID Csatlakozás vagy közzétételi profillal is.

Feljegyzés

A közzétételi profil használatához engedélyezni kell az alapszintű hitelesítést .

A közzétételi profil egy alkalmazásszintű hitelesítő adat. A közzétételi profil beállítása GitHub-titkos kódként.

  1. Nyissa meg az App Service-t az Azure Portalon.

  2. Az Áttekintés lapon válassza a Közzétételi profil lekérése lehetőséget.

  3. Mentse a letöltött fájlt. A fájl tartalmával létrehoz egy GitHub-titkos kulcsot.

Feljegyzés

2020 októberétől a Linux-webalkalmazások a közzétételi profil letöltése előtt meg kell adni az alkalmazásbeállítástWEBSITE_WEBDEPLOY_USE_SCMtrue. Ez a követelmény a jövőben megszűnik.

2. A GitHub titkos kódjának konfigurálása

A GitHubon tallózzon az adattárban. Válassza Gépház > Biztonsági > titkos kulcsok és változók > Actions New repository secret (Új tárház titkos műveletei) > lehetőséget.

Alkalmazásszintű hitelesítő adatok használatához illessze be a letöltött közzétételi profilfájl tartalmát a titkos kód értékmezőbe. Nevezze el a titkos kulcsot AZURE_WEBAPP_PUBLISH_PROFILE.

Amikor később konfigurálja a GitHub-munkafolyamatfájlt, az AZURE_WEBAPP_PUBLISH_PROFILE Azure Web App üzembe helyezéséhez használja. Példa:

- uses: azure/webapps-deploy@v2
  with:
    publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

3. Adja hozzá a munkafolyamat-fájlt a GitHub-adattárhoz

A munkafolyamatokat egy YAML-fájl (.yml) határozza meg a /.github/workflows/ GitHub-adattár elérési útján. Ez a definíció a munkafolyamatot alkotó különböző lépéseket és paramétereket tartalmazza.

A munkafolyamat-fájl legalább a következő különböző lépésekkel rendelkezik:

  1. Hitelesítés az App Service-ben a létrehozott GitHub-titkos kóddal.
  2. A webalkalmazás létrehozása.
  3. A webalkalmazás üzembe helyezése.

Ha a kódot egy App Service-alkalmazásban szeretné üzembe helyezni, használja az azure/webapps-deploy@v3 műveletet. A művelethez meg kell adni a webalkalmazás app-name nevét, és a nyelvi veremtől függően egy *.zip, *.war, *.jar vagy mappa elérési útját.package A művelet lehetséges bemeneteinek azure/webapps-deploy@v3 teljes listáját a action.yml definícióban találja.

Az alábbi példák a webalkalmazást összeállító munkafolyamat különböző támogatott nyelveken történő részét mutatják be.

A publish-profile bemenetnek hivatkoznia kell a AZURE_WEBAPP_PUBLISH_PROFILE korábban létrehozott GitHub-titkos kódra.

name: .NET Core CI

on: [push]

env:
  AZURE_WEBAPP_NAME: my-app-name    # set this to your application's name
  AZURE_WEBAPP_PACKAGE_PATH: '.'      # set this to the path to your web app project, defaults to the repository root
  DOTNET_VERSION: '6.0.x'           # set this to the dot net version to use

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # Checkout the repo
      - uses: actions/checkout@main
      
      # Setup .NET Core SDK
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }} 
      
      # Run dotnet build and publish
      - name: dotnet build and publish
        run: |
          dotnet restore
          dotnet build --configuration Release
          dotnet publish -c Release --property:PublishDir='${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp' 
          
      # Deploy to Azure Web apps
      - name: 'Run Azure webapp deploy action using publish profile credentials'
        uses: azure/webapps-deploy@v3
        with: 
          app-name: ${{ env.AZURE_WEBAPP_NAME }} # Replace with your app name
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE  }} # Define secret variable in repository settings as per action documentation
          package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp'

Következő lépések

Tekintse meg az Azure GitHub Actions és munkafolyamatok hivatkozásait: