Nasazení do App Service funkcí GitHub Actions

Začněte používat GitHub Actions k automatizaci pracovního postupu a nasazení do služby Aplikace Azure Service z GitHubu.

Požadavky

Nastavení nasazení GitHub Actions při vytváření aplikace

Nasazení GitHub Actions je integrované do výchozího průvodce vytvořením aplikace. Stačí nastavit průběžné nasazování na kartě Nasazení a nakonfigurovat požadovanou organizaci, úložiště a větev.

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

Když povolíte průběžné nasazování, průvodce vytvořením aplikace automaticky vybere metodu ověřování na základě základního výběru ověřování a odpovídajícím způsobem nakonfiguruje vaši aplikaci a úložiště GitHub:

Výběr základního ověřování Metoda ověřování
Zakázat Identita přiřazená uživatelem (OpenID Připojení)
Povolit Základní ověřování

Poznámka:

Pokud při vytváření aplikace dojde k chybě s informací, že váš účet Azure nemá určitá oprávnění, nemusí mít požadovaná oprávnění k vytvoření a konfiguraci identity přiřazené uživatelem. Alternativu najdete v tématu Nastavení nasazení GitHub Actions z Centra nasazení.

Nastavení nasazení GitHub Actions z Centra nasazení

Pro existující aplikaci můžete rychle začít s GitHub Actions pomocí Centra nasazení služby App Service. Tato metoda turn-key automaticky vygeneruje soubor pracovního postupu GitHub Actions na základě zásobníku vaší aplikace a potvrdí ho do úložiště GitHub.

Centrum nasazení také umožňuje snadno nakonfigurovat bezpečnější openID Připojení ověřování pomocí možnosti identity přiřazené uživatelem.

Pokud má váš účet Azure potřebná oprávnění, můžete vybrat vytvoření identity přiřazené uživatelem. V opačném případě můžete v rozevíracím seznamu Identita vybrat existující spravovanou identitu přiřazenou uživatelem. Se správcem Azure můžete vytvořit spravovanou identitu přiřazenou uživatelem s rolí Přispěvatel webu.

Další informace najdete v tématu Průběžné nasazování do služby Aplikace Azure Service.

Ruční nastavení pracovního postupu GitHub Actions

Pracovní postup můžete nasadit i bez použití Centra nasazení.

  1. Generování přihlašovacích údajů pro nasazení
  2. Konfigurace tajného kódu GitHubu
  3. Přidání souboru pracovního postupu do úložiště GitHub

1. Generování přihlašovacích údajů pro nasazení

Doporučený způsob ověřování pomocí služby Aplikace Azure Services pro GitHub Actions je s uživatelsky definovanou spravovanou identitou a nejjednodušší způsob, jak to udělat tak, že nakonfigurujete nasazení GitHub Actions přímo na portálu a vyberete spravovanou identitu přiřazenou uživatelem.

Poznámka:

Ověřování pomocí spravované identity přiřazené uživatelem je aktuálně ve verzi Preview.

Případně se můžete ověřit pomocí instančního objektu, openID Připojení nebo profilu publikování.

Poznámka:

Profil publikování vyžaduje , aby bylo povolené základní ověřování .

Profil publikování je přihlašovací údaje na úrovni aplikace. Nastavte svůj profil publikování jako tajný klíč GitHubu.

  1. Na webu Azure Portal přejděte do služby App Service.

  2. Na stránce Přehled vyberte Získat profil publikování.

  3. Uložte stažený soubor. Obsah souboru použijete k vytvoření tajného kódu GitHubu.

Poznámka:

Od října 2020 potřebuje webové aplikace pro Linux nastavení WEBSITE_WEBDEPLOY_USE_SCM aplikace nastavené na truepřed stažením profilu publikování. Tento požadavek bude v budoucnu odebrán.

2. Konfigurace tajného kódu GitHubu

Na GitHubu přejděte do úložiště. Vyberte Nastavení > Tajné kódy > zabezpečení > a proměnné Actions > New repository secret.

Pokud chcete použít přihlašovací údaje na úrovni aplikace, vložte obsah staženého souboru profilu publikování do pole hodnoty tajného kódu. Pojmenujte tajný kód AZURE_WEBAPP_PUBLISH_PROFILE.

Když soubor pracovního postupu GitHubu nakonfigurujete později, použijete AZURE_WEBAPP_PUBLISH_PROFILE akci nasazení webové aplikace Azure. Příklad:

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

3. Přidání souboru pracovního postupu do úložiště GitHub

Pracovní postup je definován souborem YAML (.yml) v /.github/workflows/ cestě v úložišti GitHub. Tato definice obsahuje různé kroky a parametry, které tvoří pracovní postup.

Soubor pracovního postupu by měl minimálně následující různé kroky:

  1. Ověřte se pomocí služby App Service pomocí tajného kódu GitHubu, který jste vytvořili.
  2. Sestavte webovou aplikaci.
  3. Nasaďte webovou aplikaci.

K nasazení kódu do aplikace App Service použijete akci azure/webapps-deploy@v3 . Akce vyžaduje název vaší webové aplikace a app-name v závislosti na zásobníku jazyků, cestu *.zip, *.war, *.jar nebo složku, do packagekteré se má nasadit . Úplný seznam možných vstupů pro azure/webapps-deploy@v3 akci najdete v definici action.yml .

Následující příklady ukazují část pracovního postupu, která vytváří webovou aplikaci v různých podporovaných jazycích.

Vstup publish-profile by měl odkazovat na tajný kód GitHubu AZURE_WEBAPP_PUBLISH_PROFILE , který jste vytvořili dříve.

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'

Další kroky

Projděte si reference na Azure GitHub Actions a pracovní postupy: