Megosztás a következőn keresztül:


Egyéni tároló üzembe helyezése az App Service-ben a GitHub Actions használatával

A GitHub Actions lehetővé teszi, hogy automatizált szoftverfejlesztési munkafolyamatot hozzon létre. Az Azure Web Deploy művelettel automatizálhatja a munkafolyamatot, hogy egyéni tárolókat helyezzen üzembe az App Service-ben a GitHub Actions használatával.

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

Egy Azure-alkalmazás szolgáltatástároló munkafolyamatához a fájl három szakaszból áll:

Section Tevékenységek
Hitelesítés 1. Kérje le a szolgáltatásnevet vagy tegye közzé a profilt.
2. Hozzon létre egy GitHub-titkos kulcsot.
Build 1. Hozza létre a környezetet.
2. Hozza létre a tárolórendszerképet.
Telepítés 1. Helyezze üzembe a tárolórendszerképet.

Előfeltételek

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

A GitHub Actionshez készült Azure-alkalmazás Services szolgáltatással való hitelesítés ajánlott módja egy közzétételi profil. Hitelesítést szolgáltatásnévvel vagy Open ID Connecttel is végezhet, de a folyamat további lépéseket igényel.

Mentse a közzétételi profil hitelesítő adatait vagy szolgáltatásnevét GitHub-titkos kódként az Azure-ral való hitelesítéshez. A munkafolyamaton belül hozzáférhet a titkos kódhoz.

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.

    Feljegyzés

    2020 októberétől a Linux-webalkalmazások a fájl letöltése előtt meg kell adni az alkalmazásbeállítást WEBSITE_WEBDEPLOY_USE_SCM true. Ez a követelmény a jövőben megszűnik. Az App Service-alkalmazás konfigurálása az Azure Portalon című cikkből megtudhatja, hogyan konfigurálhatja a webalkalmazások általános beállításait.

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

A GitHub-titkos kód konfigurálása hitelesítéshez

A GitHubon tallózzon az adattárban. Válassza a Beállítások biztonsági titkos kulcsok és változók > – Új adattár 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.

A GitHub-munkafolyamat konfigurálásakor az AZURE_WEBAPP_PUBLISH_PROFILE Azure Web App üzembe helyezési műveletét fogja használni. Példa:

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

GitHub-titkos kulcsok konfigurálása a beállításjegyzékhez

A Docker Bejelentkezési művelettel használandó titkos kulcsok meghatározása. A dokumentumban szereplő példa az Azure Container Registryt használja a tárolóregisztrációs adatbázishoz.

  1. Nyissa meg a tárolót az Azure Portalon vagy a Dockerben, és másolja ki a felhasználónevet és a jelszót. Az Azure Container Registry felhasználónevét és jelszavát az Azure Portalon, a beállításjegyzék beállításkulcsai> alatt találja.

  2. Adjon meg egy új titkos kulcsot a beállításjegyzékben szereplő felhasználónévhez REGISTRY_USERNAME.

  3. Adjon meg egy új titkos kulcsot a beállításjegyzékjelszóhoz REGISTRY_PASSWORD.

Tárolórendszerkép létrehozása

Az alábbi példa a Node.JS Docker-rendszerképet összeállító munkafolyamat egy részét mutatja be. A Docker Login használatával jelentkezzen be egy privát tárolóregisztrációs adatbázisba. Ez a példa az Azure Container Registryt használja, de ugyanez a művelet más adatbázisok esetében is működik.

name: Linux Container Node Workflow

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - uses: azure/docker-login@v1
      with:
        login-server: mycontainer.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}
    - run: |
        docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
        docker push mycontainer.azurecr.io/myapp:${{ github.sha }}     

A Docker-bejelentkezés használatával egyszerre több tárolóregisztrációs adatbázisba is bejelentkezhet. Ez a példa két új GitHub-titkos kódot tartalmaz a docker.io való hitelesítéshez. A példa feltételezi, hogy a beállításjegyzék gyökérszintjén található egy Dockerfile.

name: Linux Container Node Workflow

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - uses: azure/docker-login@v1
      with:
        login-server: mycontainer.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}
    - uses: azure/docker-login@v1
      with:
        login-server: index.docker.io
        username: ${{ secrets.DOCKERIO_USERNAME }}
        password: ${{ secrets.DOCKERIO_PASSWORD }}
    - run: |
        docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
        docker push mycontainer.azurecr.io/myapp:${{ github.sha }}     

Üzembe helyezés App Service-tárolóban

Ha a rendszerképet egy egyéni tárolóban szeretné üzembe helyezni az App Service-ben, használja a azure/webapps-deploy@v2 műveletet. Ez a művelet hét paraméterből áll:

Paraméter Magyarázat
alkalmazás neve (Kötelező) Az App Service-alkalmazás neve
közzétételi profil (Nem kötelező) A Web Appsre (Windows és Linux) és a Web App Containersre (linux) vonatkozik. A többtárolós forgatókönyv nem támogatott. Profil (*.publishsettings) fájltartalmak közzététele webes üzembe helyezési titkos kódokkal
pont-név (Nem kötelező) Adjon meg egy, az éles ponttól eltérő meglévő pontot
csomag (Nem kötelező) Csak a webalkalmazásra vonatkozik: A csomag vagy mappa elérési útja. *.zip, *.war, *.jar vagy üzembe helyezendő mappa
Képek (Kötelező) Csak webalkalmazás-tárolókra vonatkozik: Adja meg a teljes tárolórendszerkép(ek) nevét. Például: "myregistry.azurecr.io/nginx:latest" vagy "python:3.7.2-alpine/". Többtárolós alkalmazások esetén több tárolórendszerkép neve is megadható (többsoros elválasztva)
configuration-file (Nem kötelező) Csak webalkalmazás-tárolókra vonatkozik: A Docker-Compose fájl elérési útja. Teljes elérési útnak kell lennie, vagy az alapértelmezett munkakönyvtárhoz képest. Többtárolós alkalmazásokhoz szükséges.
indítási parancs (Nem kötelező) Adja meg az indítási parancsot. Például dotnet futtatása vagy dotnet filename.dll
name: Linux Container Node Workflow

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - uses: azure/docker-login@v1
      with:
        login-server: mycontainer.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}

    - run: |
        docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
        docker push mycontainer.azurecr.io/myapp:${{ github.sha }}     

    - uses: azure/webapps-deploy@v2
      with:
        app-name: 'myapp'
        publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
        images: 'mycontainer.azurecr.io/myapp:${{ github.sha }}'

Következő lépések

A GitHubon különböző adattárakba csoportosított műveletkészletet találhat, amelyek mindegyike dokumentációt és példákat tartalmaz a GitHub CI/CD-hez való használatához és az alkalmazások Azure-ban való üzembe helyezéséhez.