Share via


Üzembe helyezés az Azure Container Appsben a GitHub Actions segítésével

Az Azure Container Apps lehetővé teszi a GitHub Actions használatával a változatok közzétételét a tárolóalkalmazásban. A véglegesítések GitHub-adattárba való leküldésekor egy munkafolyamat aktiválódik, amely frissíti a tárolóregisztrációs adatbázis tárolólemezképét. Az Azure Container Apps egy új változatot hoz létre a frissített tárolórendszerkép alapján.

A GitHub-adattár módosításai aktiválnak egy műveletet egy új változat létrehozásához.

A GitHub Actions-munkafolyamatot az adattár egy adott ágára irányuló véglegesítések aktiválják. A munkafolyamat létrehozásakor ön dönti el, hogy melyik ág aktiválja a munkafolyamatot.

Ez a cikk bemutatja, hogyan hozhat létre teljesen testre szabható munkafolyamatot. Ha kezdő GitHub Actions-munkafolyamatot szeretne létrehozni az Azure CLI-vel, olvassa el a GitHub Actions-munkafolyamat létrehozása az Azure CLI-vel című témakört.

Azure Container Apps GitHub-művelet

A tárolóalkalmazás létrehozásához és üzembe helyezéséhez adja hozzá a műveletet a azure/container-apps-deploy-action GitHub Actions-munkafolyamathoz.

A művelet a következő forgatókönyveket támogatja:

  • Buildelés Dockerfile-ból és üzembe helyezés a Container Appsben
  • Buildelés forráskódból Dockerfile nélkül, és üzembe helyezés a Container Appsben. Támogatott nyelvek: .NET, Java, Node.js, PHP és Python
  • Meglévő tárolórendszerkép üzembe helyezése a Container Appsben

Felhasználási példák

Íme néhány gyakori forgatókönyv a művelet használatához. További információkért tekintse meg a művelet GitHub Marketplace-oldalát.

Buildelés és üzembe helyezés a Container Appsben

Az alábbi kódrészlet bemutatja, hogyan hozhat létre tárolórendszerképet a forráskódból, és hogyan helyezheti üzembe a Container Appsben.

steps:

  - name: Log in to Azure
    uses: azure/login@v1
    with:
      creds: ${{ secrets.AZURE_CREDENTIALS }}

  - name: Build and deploy Container App
    uses: azure/container-apps-deploy-action@v1
    with:
      appSourcePath: ${{ github.workspace }}/src
      acrName: myregistry
      containerAppName: my-container-app
      resourceGroup: my-rg

A művelet a Dockerfile-t appSourcePath használja a tárolólemezkép létrehozásához. Ha nem található Dockerfile, a művelet megkísérli létrehozni a tárolórendszerképet a forráskódból a következőben appSourcePath: .

Meglévő tárolórendszerkép üzembe helyezése a Container Appsben

Az alábbi kódrészlet bemutatja, hogyan helyezhet üzembe egy meglévő tárolórendszerképet a Container Appsben.

steps:

  - name: Log in to Azure
    uses: azure/login@v1
    with:
      creds: ${{ secrets.AZURE_CREDENTIALS }}

  - name: Build and deploy Container App
    uses: azure/container-apps-deploy-action@v1
    with:
      acrName: myregistry
      containerAppName: my-container-app
      resourceGroup: my-rg
      imageToDeploy: myregistry.azurecr.io/app:${{ github.sha }}

Fontos

Ha külön lépésben hoz létre tárolórendszerképet, győződjön meg arról, hogy egy olyan egyedi címkét használ, mint például a véglegesítési SHA a stabil címke latesthelyett. További információ: Képcímke – ajánlott eljárások.

Hitelesítés az Azure Container Registry használatával

Az Azure Container Apps-műveletnek hitelesítenie kell az Azure Container Registryt a tárolórendszerkép leküldéséhez. A tárolóalkalmazásnak az Azure Container Registryvel is hitelesítenie kell a tárolólemezkép lekéréséhez.

Képek leküldéséhez a művelet automatikusan hitelesíti magát a művelethez acrName megadott azure/login hitelesítő adatokkal megadott tárolóregisztrációs adatbázissal.

A rendszerképek lekéréséhez az Azure Container Apps felügyelt identitást (ajánlott) vagy rendszergazdai hitelesítő adatokat használ az Azure Container Registryvel való hitelesítéshez. A felügyelt identitás használatához a műveletet üzembe helyező tárolóalkalmazást úgy kell konfigurálni, hogy felügyelt identitást használjon. A beállításjegyzék rendszergazdai hitelesítő adataival való hitelesítéshez állítsa be a művelet és acrUsernameacrPassword a bemeneteket.

Konfiguráció

Az alábbi lépésekkel konfigurálhat egy GitHub Actions-munkafolyamatot az Azure Container Appsben való üzembe helyezéshez.

  • GitHub-adattár létrehozása az alkalmazáshoz
  • Tárolóalkalmazás létrehozása engedélyezett felügyelt identitással
  • AcrPull Az Azure Container Registry szerepkörének hozzárendelése a tárolóalkalmazás felügyelt identitásához
  • Titkos kódok konfigurálása a GitHub-adattárban
  • GitHub Actions-munkafolyamat létrehozása

Előfeltételek

Követelmény Utasítások
Azure-fiók Ha nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot. A folytatáshoz az Azure-előfizetés közreműködői vagy tulajdonosi engedélyére van szüksége. Részletekért tekintse meg az Azure-szerepkörök hozzárendelését az Azure Portalon .
GitHub-fiók Regisztráljon ingyenesen.
Azure CLI Telepítse az Azure CLI-t.

GitHub-adattár létrehozása és forráskód klónozása

A munkafolyamat létrehozása előtt az alkalmazás forráskódjának egy GitHub-adattárban kell lennie.

  1. Jelentkezzen be az Azure-ba az Azure CLI-vel.

    az login
    
  2. Ezután telepítse a parancssori felület legújabb Azure Container Apps-bővítményét.

    az extension add --name containerapp --upgrade
    
  3. Ha nincs saját GitHub-adattára, hozzon létre egyet egy mintából.

    1. Új adattár létrehozásához lépjen a következő helyre:
    2. Nevezze el az adattárat my-container-app.
  4. Klónozza az adattárat a helyi gépre.

    git clone https://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/my-container-app.git
    

Tárolóalkalmazás létrehozása engedélyezett felügyelt identitással

Hozza létre a tárolóalkalmazást a az containerapp up következő lépésekben található paranccsal. Ez a parancs létrehozza az Azure-erőforrásokat, létrehozza a tárolórendszerképet, tárolja a lemezképet egy beállításjegyzékben, és üzembe helyezi egy tárolóalkalmazásban.

Az alkalmazás létrehozása után hozzáadhat egy felügyelt identitást az alkalmazáshoz, és hozzárendelheti az identitást a AcrPull szerepkörhöz, hogy lehetővé tegye az identitás számára a lemezképek lekérését a beállításjegyzékből.

  1. Váltson a klónozott adattár src mappájára.

    cd my-container-app
    cd src
    
  2. Azure-erőforrások létrehozása és tárolóalkalmazás üzembe helyezése a az containerapp up paranccsal.

    az containerapp up \
      --name my-container-app \
      --source . \
      --ingress external 
    
  3. A parancs kimenetében jegyezze fel az Azure Container Registry nevét.

  4. Kérje le a tárolóregisztrációs adatbázis teljes erőforrás-azonosítóját.

    az acr show --name <ACR_NAME> --query id --output tsv
    

    Cserélje le a <ACR_NAME> elemet a tárolójegyzék nevére.

  5. Felügyelt identitás engedélyezése a tárolóalkalmazáshoz.

    az containerapp identity assign \
      --name my-container-app \
      --resource-group my-container-app-rg \
      --system-assigned \
      --output tsv
    

    Jegyezze fel a felügyelt identitás egyszerű azonosítóját a parancs kimenetében.

  6. Rendelje hozzá az AcrPull Azure Container Registry szerepkörét a tárolóalkalmazás felügyelt identitásához.

    az role assignment create \
      --assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \
      --role AcrPull \
      --scope <ACR_RESOURCE_ID>
    

    Cserélje le <MANAGED_IDENTITY_PRINCIPAL_ID> a felügyelt identitás egyszerű azonosítójára és <ACR_RESOURCE_ID> az Azure Container Registry erőforrás-azonosítójára.

  7. Konfigurálja a tárolóalkalmazást úgy, hogy a felügyelt identitás használatával lekérje a rendszerképeket az Azure Container Registryből.

    az containerapp registry set \
      --name my-container-app \
      --resource-group my-container-app-rg \
      --server <ACR_NAME>.azurecr.io \
      --identity system
    

    Cserélje le <ACR_NAME> az Azure Container Registry nevére.

Titkos kódok konfigurálása a GitHub-adattárban

A GitHub-munkafolyamathoz egy titkos kódra van szükség, amely az Azure-ral való hitelesítéshez szükséges AZURE_CREDENTIALS . A titkos kód tartalmazza a tárolóalkalmazást és a tárolóregisztrációs adatbázist tartalmazó erőforráscsoport közreműködői szerepkörrel rendelkező szolgáltatásnév hitelesítő adatait.

  1. Hozzon létre egy szolgáltatásnevet a közreműködői szerepkörrel a tárolóalkalmazást és a tárolóregisztrációs adatbázist tartalmazó erőforráscsoporton.

    az ad sp create-for-rbac \
      --name my-app-credentials \
      --role contributor \
      --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/my-container-app-rg \
      --json-auth \
      --output json
    

    Cserélje le <SUBSCRIPTION_ID> az Azure-előfizetés azonosítójára. Ha a tárolóregisztrációs adatbázis egy másik erőforráscsoportban található, adja meg mindkét erőforráscsoportot a --scopes paraméterben.

  2. Másolja ki a JSON-kimenetet a parancsból.

  3. A GitHub-adattárban lépjen a Gépház> Secrets>Actions elemre, és válassza az Új tárház titkos kódját.

  4. Adja meg AZURE_CREDENTIALS a nevet, és illessze be a JSON-kimenet tartalmát értékként.

  5. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.

GitHub Actions-munkafolyamat létrehozása

  1. A GitHub-adattárban lépjen a Műveletek elemre, és válassza az Új munkafolyamat lehetőséget.

  2. Válassza a Munkafolyamat beállítása lehetőséget.

  3. Illessze be a következő YAML-et a szerkesztőbe.

    name: Azure Container Apps Deploy
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v3
    
          - name: Log in to Azure
            uses: azure/login@v1
            with:
              creds: ${{ secrets.AZURE_CREDENTIALS }}
    
          - name: Build and deploy Container App
            uses: azure/container-apps-deploy-action@v1
            with:
              appSourcePath: ${{ github.workspace }}/src
              acrName: <ACR_NAME>
              containerAppName: my-container-app
              resourceGroup: my-container-app-rg
    

    Cserélje le <ACR_NAME> az Azure Container Registry nevére. Győződjön meg arról, hogy az ág neve és branches értékei megegyeznek appSourcePathcontainerAppNameaz adattár és resourceGroup az Azure-erőforrások értékeivel.

  4. Véglegesítse a főág módosításait.

Egy GitHub Actions-munkafolyamat futtatásának meg kell kezdődnie a tárolóalkalmazás létrehozásához és üzembe helyezéséhez. A folyamat állapotának ellenőrzéséhez lépjen a Műveletek elemre.

Az alkalmazás új változatának üzembe helyezéséhez küldjön le egy új véglegesítést a főágba .