Share via


Oktatóanyag: Saját üzemeltetésű CI/CD-futók és -ügynökök üzembe helyezése az Azure Container Apps-feladatokkal

A GitHub Actions és az Azure Pipelines lehetővé teszi CI-/CD-munkafolyamatok futtatását saját üzemeltetésű futókkal és ügynökökkel. Önkiszolgáló futókat és ügynököket futtathat eseményvezérelt Azure Container Apps-feladatok használatával.

A saját üzemeltetésű futók akkor hasznosak, ha olyan munkafolyamatokat kell futtatnia, amelyek hozzáférést igényelnek a helyi erőforrásokhoz vagy eszközökhöz, amelyek nem érhetők el a felhőalapú futók számára. Például egy Container Apps-feladat önkiszolgáló futója lehetővé teszi a munkafolyamat számára, hogy hozzáférjen a feladat virtuális hálózatában lévő erőforrásokhoz, amelyek nem érhetők el a felhőalapú futók számára.

A saját üzemeltetésű futók eseményvezérelt feladatokként való futtatásával kihasználhatja az Azure Container Apps kiszolgáló nélküli jellegét. A feladatok automatikusan futnak, amikor egy munkafolyamat aktiválódik, és a feladat befejezésekor kilépnek.

Csak a feladat futási idejéért kell fizetnie.

Ebben az oktatóanyagban megtudhatja, hogyan futtathat GitHub Actions-futókat eseményvezérelt Container Apps-feladatként.

  • Container Apps-környezet létrehozása a saját üzemeltetésű futó üzembe helyezéséhez
  • GitHub-adattár létrehozása saját üzemeltetésű futót használó munkafolyamat futtatásához
  • GitHub Actions-futót futtató tárolórendszerkép létrehozása
  • A futó üzembe helyezése feladatként a Container Apps-környezetben
  • Hozzon létre egy munkafolyamatot, amely a saját üzemeltetésű futót használja, és ellenőrizze, hogy fut-e

Fontos

A saját üzemeltetésű futók csak privát adattárakhoz ajánlottak. Ha nyilvános adattárakkal használja őket, veszélyes kódot futtathat a saját üzemeltetésű futóján. További információkért lásd a saját üzemeltetésű futók biztonságát.

Ebben az oktatóanyagban megtudhatja, hogyan futtathat Azure Pipelines-ügynököket eseményvezérelt Container Apps-feladatként.

  • Container Apps-környezet létrehozása a saját üzemeltetésű ügynök üzembe helyezéséhez
  • Azure DevOps-szervezet és -projekt létrehozása
  • Azure Pipelines-ügynököt futtató tárolórendszerkép létrehozása
  • Helyőrző ügynök létrehozása manuális feladat használatával a Container Apps-környezetben
  • Az ügynök üzembe helyezése feladatként a Container Apps-környezetben
  • Hozzon létre egy folyamatot, amely a saját üzemeltetésű ügynököt használja, és ellenőrizze, hogy fut-e

Fontos

A saját üzemeltetésű ügynökök csak magánprojektekhez ajánlottak. Ha nyilvános projektekkel használja őket, veszélyes kódokat futtathat a saját üzemeltetésű ügynökén. További információ: Saját üzemeltetésű ügynök biztonsága.

Feljegyzés

A tárolóalkalmazások és -feladatok nem támogatják a Docker tárolókban való futtatását. A Docker-parancsokat használó munkafolyamatok minden lépése sikertelen lesz, ha egy saját üzemeltetésű futón vagy ügynökön fut egy Container Apps-feladatban.

Előfeltételek

  • Azure-fiók: Ha nem rendelkezik ilyen fiókkal, ingyenesen létrehozhat egyet.

  • Azure CLI: Az Azure CLI telepítése.

  • Azure DevOps-szervezet: Ha nem rendelkezik aktív előfizetéssel rendelkező DevOps-szervezettel, ingyenesen létrehozhat egyet.

A korlátozások listájához tekintse meg a feladatokra vonatkozó korlátozásokat .

Beállítás

Ha a parancssori felületről szeretne bejelentkezni az Azure-ba, futtassa a következő parancsot, és kövesse az utasításokat a hitelesítési folyamat befejezéséhez.

az login

A parancssori felület legújabb verziójának futtatásához futtassa a frissítési parancsot.

az upgrade

Ezután telepítse vagy frissítse az Azure Container Apps bővítményt a parancssori felülethez.

az extension add --name containerapp --upgrade

Az aktuális bővítmény vagy modul telepítése után regisztrálja a névtereket és Microsoft.OperationalInsights a Microsoft.App névtereket.

Feljegyzés

Az Azure Container Apps-erőforrások át lettek migrálva a Microsoft.Web névtérből a Microsoft.App névtérbe. További részletekért tekintse meg a Névtér 2022 . márciusi migrálását a Microsoft.Web-ből a Microsoft.App.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Környezeti változók létrehozása

Most, hogy az Azure CLI beállítása befejeződött, meghatározhatja a jelen cikkben használt környezeti változókat.

RESOURCE_GROUP="jobs-sample"
LOCATION="northcentralus"
ENVIRONMENT="env-jobs-sample"
JOB_NAME="github-actions-runner-job"
RESOURCE_GROUP="jobs-sample"
LOCATION="northcentralus"
ENVIRONMENT="env-jobs-sample"
JOB_NAME="azure-pipelines-agent-job"
PLACEHOLDER_JOB_NAME="placeholder-agent-job"

Container Apps-környezet létrehozása

Az Azure Container Apps-környezet biztonságos határként működik a tárolóalkalmazások és -feladatok körül, így megoszthatják ugyanazt a hálózatot, és kommunikálhatnak egymással.

Feljegyzés

Egy meglévő virtuális hálózattal integrált Container Apps-környezet létrehozásához lásd : Virtuális hálózat biztosítása belső Azure Container Apps-környezetnek.

  1. Az erőforráscsoport létrehozásához használja az alábbi parancsot.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Hozza létre a Container Apps-környezetet az alábbi paranccsal.

    az containerapp env create \
        --name "$ENVIRONMENT" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION"
    

GitHub-adattár létrehozása munkafolyamat futtatásához

Munkafolyamat végrehajtásához létre kell hoznia egy GitHub-adattárat, amely tartalmazza a munkafolyamat definícióját.

  1. Lépjen a GitHubra, és jelentkezzen be.

  2. Hozzon létre egy új adattárat a következő értékek megadásával.

    Beállítás Érték
    Tulajdonos Válassza ki a GitHub-felhasználónevét.
    Adattár neve Adja meg az adattár nevét.
    Látótávolság Válassza a Privát lehetőséget.
    Az adattár inicializálása a Válassza a README-fájl hozzáadása lehetőséget.

    Hagyja meg a többi értéket alapértelmezett kijelölésként.

  3. Válassza a Create repository (Adattár létrehozása) gombot.

  4. Az új adattárban válassza a Műveletek lehetőséget.

  5. Keresse meg az egyszerű munkafolyamat-sablont, és válassza a Konfigurálás lehetőséget.

  6. Válassza a Módosítások véglegesítése lehetőséget a munkafolyamat adattárhoz való hozzáadásához.

A munkafolyamat a ubuntu-latest GitHub által üzemeltetett futón fut, és egy üzenetet nyomtat ki a konzolra. Később lecseréli a GitHub által üzemeltetett futót egy saját üzemeltetésű futóra.

Személyes GitHub-hozzáférési jogkivonat lekérése

Saját üzemeltetésű futó futtatásához létre kell hoznia egy személyes hozzáférési jogkivonatot (PAT) a GitHubon. Minden alkalommal, amikor egy futó elindul, a PAT használatával létrehoz egy jogkivonatot, amely regisztrálja a futót a GitHubon. A PAT-t a GitHub Actions futóméretezési szabálya is használja az adattár munkafolyamat-üzenetsorának figyeléséhez és a futók szükség szerinti elindításához.

  1. A GitHubon válassza ki a profilképét a jobb felső sarokban, és válassza a Gépház.

  2. Válassza a Fejlesztői beállítások lehetőséget.

  3. A Személyes hozzáférési jogkivonatok területen válassza a Részletes jogkivonatok lehetőséget.

  4. Válassza az Új jogkivonat létrehozása lehetőséget.

  5. Az Új, részletes személyes hozzáférési jogkivonat képernyőn adja meg a következő értékeket.

    Beállítás Érték
    Jogkivonat neve Adja meg a jogkivonat nevét.
    Lejárat Válassza ki a 30 napot.
    Adattár-hozzáférés Válassza a Csak az adattárak lehetőséget, és válassza ki a létrehozott adattárat.

    Adja meg a következő értékeket az adattárengedélyekhez.

    Beállítás Érték
    Műveletek Válassza az Írásvédett lehetőséget.
    Felügyelet Válassza az Olvasás és írás lehetőséget.
    Metaadatok Válassza az Írásvédett lehetőséget.
  6. Válassza a Jogkivonat létrehozása lehetőséget.

  7. Másolja ki a jogkivonat értékét.

  8. Definiálja a futó és a méretezési szabály későbbi konfigurálásához használt változókat.

    GITHUB_PAT="<GITHUB_PAT>"
    REPO_OWNER="<REPO_OWNER>"
    REPO_NAME="<REPO_NAME>"
    

    Cserélje le a helyőrzőket a következő értékekre:

    Helyőrző Érték
    <GITHUB_PAT> A létrehozott GitHub PAT.
    <REPO_OWNER> A korábban létrehozott adattár tulajdonosa. Ez az érték általában a GitHub-felhasználónév.
    <REPO_NAME> A korábban létrehozott adattár neve. Ez az érték ugyanaz a név, amelyet az Adattár név mezőjében megadott.

A GitHub Actions futótároló lemezképének létrehozása

Saját üzemeltetésű futó létrehozásához létre kell hoznia egy tárolórendszerképet, amely végrehajtja a futót. Ebben a szakaszban létrehozza a tárolórendszerképet, és leküldi egy tárolóregisztrációs adatbázisba.

Feljegyzés

Az oktatóanyagban készült rendszerkép egy alapszintű, saját üzemeltetésű futót tartalmaz, amely alkalmas a Container Apps-feladatként való futtatásra. Testre szabhatja úgy, hogy további eszközöket vagy függőségeket is tartalmazzon, amelyeket a munkafolyamatok igényelnek.

  1. Adjon nevet a tárolórendszerképnek és a beállításjegyzéknek.

    CONTAINER_IMAGE_NAME="github-actions-runner:1.0"
    CONTAINER_REGISTRY_NAME="<CONTAINER_REGISTRY_NAME>"
    

    Cserélje le <CONTAINER_REGISTRY_NAME> a tárolóregisztrációs adatbázis létrehozásához használt egyedi névre. A tárolóregisztrációs adatbázis nevének egyedinek kell lennie az Azure-ban , és csak számokból és kisbetűkből álló 5–50 karakter hosszúságúnak kell lennie.

  2. Hozzon létre egy tárolóregisztrációs adatbázist.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. A futó lemezkép létrehozásához használt Dockerfile elérhető a GitHubon. Futtassa a következő parancsot az adattár klónozásához és a tárolólemezkép felhőben való létrehozásához a az acr build parancs használatával.

    az acr build \
        --registry "$CONTAINER_REGISTRY_NAME" \
        --image "$CONTAINER_IMAGE_NAME" \
        --file "Dockerfile.github" \
        "https://github.com/Azure-Samples/container-apps-ci-cd-runner-tutorial.git"
    

    A rendszerkép már elérhető a tárolóregisztrációs adatbázisban.

Saját üzemeltetésű futó üzembe helyezése feladatként

Most már létrehozhat egy feladatot, amely a tárolórendszerképet használja. Ebben a szakaszban létrehoz egy feladatot, amely végrehajtja a saját üzemeltetésű futót, és hitelesíti a GitHubot a korábban létrehozott PAT használatával. A feladat a skálázási szabályt használja feladatvégrehajtások github-runner létrehozásához a függőben lévő munkafolyamat-futtatások száma alapján.

  1. Hozzon létre egy feladatot a Container Apps-környezetben.

    az containerapp job create -n "$JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
        --trigger-type Event \
        --replica-timeout 1800 \
        --replica-retry-limit 0 \
        --replica-completion-count 1 \
        --parallelism 1 \
        --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
        --min-executions 0 \
        --max-executions 10 \
        --polling-interval 30 \
        --scale-rule-name "github-runner" \
        --scale-rule-type "github-runner" \
        --scale-rule-metadata "githubAPIURL=https://api.github.com" "owner=$REPO_OWNER" "runnerScope=repo" "repos=$REPO_NAME" "targetWorkflowQueueLength=1" \
        --scale-rule-auth "personalAccessToken=personal-access-token" \
        --cpu "2.0" \
        --memory "4Gi" \
        --secrets "personal-access-token=$GITHUB_PAT" \
        --env-vars "GITHUB_PAT=secretref:personal-access-token" "GH_URL=https://github.com/$REPO_OWNER/$REPO_NAME" "REGISTRATION_TOKEN_API_URL=https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/runners/registration-token" \
        --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"
    

    Az alábbi táblázat a parancsban használt kulcsparamétereket ismerteti.

    Paraméter Leírás
    --replica-timeout A replika végrehajtásának maximális időtartama.
    --replica-retry-limit A sikertelen replikák újrapróbálkozásának száma.
    --replica-completion-count A feladat végrehajtása előtt sikeresen befejezendő replikák száma.
    --parallelism Feladatvégrehajtásonként indítandó replikák száma.
    --min-executions A lekérdezési időközönként futtatandó feladatvégrehajtások minimális száma.
    --max-executions A lekérdezési időközönként futtatandó feladatvégrehajtások maximális száma.
    --polling-interval A skálázási szabály kiértékelésének időköze.
    --scale-rule-name A méretezési szabály neve.
    --scale-rule-type A használni kívánt méretezési szabály típusa. A GitHub futóméretezőjéről a KEDA dokumentációjában olvashat bővebben.
    --scale-rule-metadata A méretezési szabály metaadatai. Ha GitHub Enterprise-t használ, frissítse githubAPIURL az API URL-címét.
    --scale-rule-auth A méretezési szabály hitelesítése.
    --secrets A feladathoz használandó titkos kódok.
    --env-vars A feladathoz használandó környezeti változók.
    --registry-server A feladathoz használni kívánt tárolóregisztrációs adatbázis-kiszolgáló. Azure Container Registry esetén a parancs automatikusan konfigurálja a hitelesítést.

    A méretezési szabály konfigurációja határozza meg a figyelendő eseményforrást. Az egyes lekérdezési időközök kiértékelése és annak meghatározása, hogy hány feladatvégrehajtást kell aktiválni. További információ: Méretezési szabályok beállítása.

Az eseményvezérelt feladat most a Container Apps környezetben jön létre.

Munkafolyamat futtatása és a feladat ellenőrzése

A feladat úgy van konfigurálva, hogy 30 másodpercenként kiértékelje a méretezési szabályt. Minden értékelés során ellenőrzi azoknak a függő munkafolyamat-futtatásoknak a számát, amelyekhez saját üzemeltetésű futó szükséges, és egy új feladat végrehajtását indítja el a függőben lévő munkafolyamathoz, legfeljebb 10 végrehajtás konfigurálva.

A feladat helyes konfigurálásának ellenőrzéséhez módosítsa a munkafolyamatot egy saját üzemeltetésű futó használatára, és aktiválja a munkafolyamat-futtatásokat. Ezután megtekintheti a feladatvégrehajtási naplókat a munkafolyamat futtatásának megtekintéséhez.

  1. A GitHub-adattárban keresse meg a korábban létrehozott munkafolyamatot. Ez egy YAML-fájl a .github/workflows könyvtárban.

  2. Válassza a Szerkesztés a helyén lehetőséget.

  3. Frissítse a tulajdonságot a runs-on következőre self-hosted:

    runs-on: self-hosted
    
  4. Válassza a Módosítások véglegesítése...lehetőséget.

  5. Válassza a Módosítások véglegesítése lehetőséget.

  6. Lépjen a Műveletek lapra.

    Ekkor egy új munkafolyamat lesz várólistára állítva. 30 másodpercen belül megkezdődik a feladat végrehajtása, és a munkafolyamat hamarosan befejeződik.

    Várjon, amíg a művelet befejeződik, mielőtt továbblép a következő lépésre.

  7. A feladat végrehajtásának listázása annak ellenőrzéséhez, hogy a feladat végrehajtása sikeresen megtörtént-e.

    az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --output table \
        --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
    

Azure DevOps-projekt és -adattár létrehozása

Egy folyamat végrehajtásához Azure DevOps-projektre és adattárra van szükség.

  1. Lépjen az Azure DevOpsra , és jelentkezzen be a fiókjába.

  2. Válasszon ki egy meglévő szervezetet, vagy hozzon létre egy újat.

  3. A szervezet áttekintési lapján válassza az Új projekt lehetőséget, és adja meg a következő értékeket.

    Beállítás Érték
    Projektnév Adja meg a projekt nevét.
    Láthatóság Válassza a Privát lehetőséget.
  4. Válassza a Létrehozás lehetőséget.

  5. Az oldalnavigációban válassza az Adattárak lehetőséget.

  6. A főág inicializálása README vagy .gitignore használatával csoportban válassza a README hozzáadása lehetőséget.

  7. Hagyja meg a többi értéket alapértelmezettként, és válassza az Inicializálás lehetőséget.

Új ügynökkészlet létrehozása

Hozzon létre egy új ügynökkészletet a saját üzemeltetésű futó futtatásához.

  1. Az Azure DevOps-projektben bontsa ki a bal oldali navigációs sávot, és válassza a Projektbeállítások lehetőséget.

    Képernyőkép az Azure DevOps projektbeállítások gombjáról.

  2. A Projektbeállítások navigációs menü Folyamatok szakaszában válassza az Ügynökkészletek lehetőséget.

    Képernyőkép az Azure DevOps-ügynökkészletek gombról.

  3. Válassza a Készlet hozzáadása lehetőséget, és adja meg a következő értékeket.

    Beállítás Érték
    Csatolandó készlet Válassza az Új lehetőséget.
    Készlet típusa Válassza a saját üzemeltetésű lehetőséget.
    Név Adja meg a tárolóalkalmazásokat.
    Hozzáférési engedély megadása az összes folyamathoz Jelölje be ezt a jelölőnégyzetet.
  4. Válassza a Létrehozás lehetőséget.

Azure DevOps személyes hozzáférési jogkivonat beszerzése

Saját üzemeltetésű futó futtatásához létre kell hoznia egy személyes hozzáférési jogkivonatot (PAT) az Azure DevOpsban. A PAT használatával hitelesítheti a futót az Azure DevOpsszal. A méretezési szabály a függőben lévő folyamatfuttatások számának meghatározására és új feladatvégrehajtások indítására is használható.

  1. Az Azure DevOpsban válassza a profilkép melletti Felhasználói beállítások lehetőséget a jobb felső sarokban.

  2. Válassza ki a személyes hozzáférési jogkivonatokat.

  3. A Személyes hozzáférési jogkivonatok lapon válassza az Új jogkivonat lehetőséget, és adja meg a következő értékeket.

    Beállítás Érték
    Név Adja meg a jogkivonat nevét.
    Szervezet Válassza ki a korábban kiválasztott vagy létrehozott szervezetet.
    Hatókörök Válassza az Egyéni definiált lehetőséget.
    Az összes hatókör megjelenítése Válassza az Összes hatókör megjelenítése lehetőséget.
    Ügynökkészletek (Olvasás és kezelés) Válassza az Ügynökkészletek (Olvasás és kezelés) lehetőséget.

    Hagyja bejelöletlenül az összes többi hatókört.

  4. Válassza a Létrehozás lehetőséget.

  5. Másolja a jogkivonat értékét egy biztonságos helyre.

    A lap elhagyása után nem tudja lekérni a jogkivonatot.

  6. Definiálja a Container Apps-feladatok későbbi konfigurálásához használt változókat.

    AZP_TOKEN="<AZP_TOKEN>"
    ORGANIZATION_URL="<ORGANIZATION_URL>"
    AZP_POOL="container-apps"
    

    Cserélje le a helyőrzőket a következő értékekre:

    Helyőrző Érték Megjegyzések
    <AZP_TOKEN> A létrehozott Azure DevOps PAT.
    <ORGANIZATION_URL> Az Azure DevOps-szervezet URL-címe. Győződjön meg arról, hogy az URL-cím végén nincs zárójel / . Például, https://dev.azure.com/myorg vagy https://myorg.visualstudio.com.

Az Azure Pipelines-ügynök tárolólemezképének létrehozása

Saját üzemeltetésű ügynök létrehozásához létre kell hoznia egy tárolórendszerképet, amely az ügynököt futtatja. Ebben a szakaszban létrehozza a tárolórendszerképet, és leküldi egy tárolóregisztrációs adatbázisba.

Feljegyzés

Az oktatóanyagban készült rendszerkép egy alapszintű, saját üzemeltetésű ügynököt tartalmaz, amely alkalmas a Container Apps-feladatként való futtatásra. Testre szabhatja úgy, hogy további eszközöket vagy függőségeket is tartalmazzon, amelyeket a folyamatok igényelnek.

  1. A terminálban adjon nevet a tárolórendszerképnek és a beállításjegyzéknek.

    CONTAINER_IMAGE_NAME="azure-pipelines-agent:1.0"
    CONTAINER_REGISTRY_NAME="<CONTAINER_REGISTRY_NAME>"
    

    Cserélje le <CONTAINER_REGISTRY_NAME> a tárolóregisztrációs adatbázis létrehozásához használt egyedi névre.

    A tárolóregisztrációs adatbázis nevének egyedinek kell lennie az Azure-ban , és csak számokból és kisbetűkből álló 5–50 karakter hosszúságúnak kell lennie.

  2. Hozzon létre egy tárolóregisztrációs adatbázist.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. A futó lemezkép létrehozásához használt Dockerfile elérhető a GitHubon. Futtassa a következő parancsot az adattár klónozásához és a tárolólemezkép felhőben való létrehozásához a az acr build parancs használatával.

    az acr build \
        --registry "$CONTAINER_REGISTRY_NAME" \
        --image "$CONTAINER_IMAGE_NAME" \
        --file "Dockerfile.azure-pipelines" \
        "https://github.com/Azure-Samples/container-apps-ci-cd-runner-tutorial.git"
    

    A rendszerkép már elérhető a tárolóregisztrációs adatbázisban.

Helyőrző saját üzemeltetésű ügynök létrehozása

Mielőtt saját üzemeltetésű ügynököt futtatna az új ügynökkészletben, létre kell hoznia egy helyőrző ügynököt. A helyőrző ügynök biztosítja, hogy az ügynökkészlet elérhető legyen. Az ügynökkészletet használó folyamatok akkor hiúsulnak meg, ha nincs helyőrző ügynök.

Egy offline helyőrző ügynök regisztrálásához manuális feladatot is futtathat. A feladat egyszer fut, és törölhető. A helyőrző ügynök nem használ fel erőforrásokat az Azure Container Appsben vagy az Azure DevOpsban.

  1. Hozzon létre egy manuális feladatot a Container Apps-környezetben, amely létrehozza a helyőrző ügynököt.

    az containerapp job create -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
        --trigger-type Manual \
        --replica-timeout 300 \
        --replica-retry-limit 0 \
        --replica-completion-count 1 \
        --parallelism 1 \
        --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
        --cpu "2.0" \
        --memory "4Gi" \
        --secrets "personal-access-token=$AZP_TOKEN" "organization-url=$ORGANIZATION_URL" \
        --env-vars "AZP_TOKEN=secretref:personal-access-token" "AZP_URL=secretref:organization-url" "AZP_POOL=$AZP_POOL" "AZP_PLACEHOLDER=1" "AZP_AGENT_NAME=placeholder-agent" \
        --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"
    

    Az alábbi táblázat a parancsban használt kulcsparamétereket ismerteti.

    Paraméter Leírás
    --replica-timeout A replika végrehajtásának maximális időtartama.
    --replica-retry-limit A sikertelen replikák újrapróbálkozásának száma.
    --replica-completion-count A feladat végrehajtása előtt sikeresen befejezendő replikák száma.
    --parallelism Feladatvégrehajtásonként indítandó replikák száma.
    --secrets A feladathoz használandó titkos kódok.
    --env-vars A feladathoz használandó környezeti változók.
    --registry-server A feladathoz használni kívánt tárolóregisztrációs adatbázis-kiszolgáló. Azure Container Registry esetén a parancs automatikusan konfigurálja a hitelesítést.

    A AZP_PLACEHOLDER környezeti változó beállítása úgy konfigurálja az ügynöktárolót, hogy offline helyőrző ügynökként regisztráljon feladat futtatása nélkül.

  2. Hajtsa végre a manuális feladatot a helyőrző ügynök létrehozásához.

    az containerapp job start -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    
  3. A feladat végrehajtásának listázása annak ellenőrzéséhez, hogy a feladat végrehajtása sikeresen megtörtént-e.

    az containerapp job execution list \
        --name "$PLACEHOLDER_JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --output table \
        --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
    
  4. Ellenőrizze, hogy a helyőrző ügynök létrejött-e az Azure DevOpsban.

    1. Az Azure DevOpsban lépjen a projekthez.
    2. Válassza a Projektbeállítások>ügynökkészletek>tárolóalkalmazás-ügynökök> lehetőséget.
    3. Győződjön meg arról, hogy a névvel ellátott placeholder-agent helyőrző ügynök szerepel a listában, és az állapota offline állapotú.
  5. A feladatra már nincs szükség. Azt törölheti.

    az containerapp job delete -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    

Saját üzemeltetésű ügynök létrehozása eseményvezérelt feladatként

Most, hogy rendelkezik helyőrző ügynökkel, létrehozhat egy saját üzemeltetésű ügynököt. Ebben a szakaszban egy eseményvezérelt feladatot hoz létre, amely egy saját üzemeltetésű ügynököt futtat egy folyamat aktiválásakor.

az containerapp job create -n "$JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
    --trigger-type Event \
    --replica-timeout 1800 \
    --replica-retry-limit 0 \
    --replica-completion-count 1 \
    --parallelism 1 \
    --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
    --min-executions 0 \
    --max-executions 10 \
    --polling-interval 30 \
    --scale-rule-name "azure-pipelines" \
    --scale-rule-type "azure-pipelines" \
    --scale-rule-metadata "poolName=$AZP_POOL" "targetPipelinesQueueLength=1" \
    --scale-rule-auth "personalAccessToken=personal-access-token" "organizationURL=organization-url" \
    --cpu "2.0" \
    --memory "4Gi" \
    --secrets "personal-access-token=$AZP_TOKEN" "organization-url=$ORGANIZATION_URL" \
    --env-vars "AZP_TOKEN=secretref:personal-access-token" "AZP_URL=secretref:organization-url" "AZP_POOL=$AZP_POOL" \
    --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"

Az alábbi táblázat a parancsban használt méretezési szabály paramétereit ismerteti.

Paraméter Leírás
--min-executions A lekérdezési időközönként futtatandó feladatvégrehajtások minimális száma.
--max-executions A lekérdezési időközönként futtatandó feladatvégrehajtások maximális száma.
--polling-interval A skálázási szabály kiértékelésének időköze.
--scale-rule-name A méretezési szabály neve.
--scale-rule-type A használni kívánt méretezési szabály típusa. Az Azure Pipelines-skálázóval kapcsolatos további információkért tekintse meg a KEDA dokumentációját.
--scale-rule-metadata A méretezési szabály metaadatai.
--scale-rule-auth A méretezési szabály hitelesítése.

A méretezési szabály konfigurációja határozza meg a figyelendő eseményforrást. Az egyes lekérdezési időközök kiértékelése és annak meghatározása, hogy hány feladatvégrehajtást kell aktiválni. További információ: Méretezési szabályok beállítása.

Az eseményvezérelt feladat most a Container Apps környezetben jön létre.

Folyamat futtatása és a feladat ellenőrzése

Most, hogy konfigurált egy saját üzemeltetésű ügynökfeladatot, futtathat egy folyamatot, és ellenőrizheti, hogy megfelelően működik-e.

  1. Az Azure DevOps-projekt bal oldali navigációs sávján lépjen a Pipelines elemre.

  2. Válassza a Folyamat létrehozása lehetőséget.

  3. A kód helyeként válassza az Azure Repos Gitet .

  4. Válassza ki a korábban létrehozott adattárat.

  5. Válassza a Starter-folyamatot.

  6. A YAML folyamatban módosítsa a pool következőt vmImage: ubuntu-latestname: container-apps: .

    pool:
      name: container-apps
    
  7. Válassza a Mentés és futtatás lehetőséget.

    A folyamat a Container Apps-környezetben létrehozott saját üzemeltetésű ügynökfeladatot futtatja és használja.

  8. A feladat végrehajtásának listázása annak ellenőrzéséhez, hogy a feladat végrehajtása sikeresen megtörtént-e.

    az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --output table \
        --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
    

Tipp.

Problémákat tapasztal? Tudassa velünk a GitHubon, ha megnyit egy hibát az Azure Container Apps adattárában.

Az erőforrások eltávolítása

Ha végzett, futtassa a következő parancsot a Container Apps-erőforrásokat tartalmazó erőforráscsoport törléséhez.

Figyelemfelhívás

Az alábbi parancs törli a megadott erőforráscsoportot és a benne lévő összes erőforrást. Ha az oktatóanyag hatókörén kívül eső erőforrások a megadott erőforráscsoportban találhatók, akkor azok is törlődnek.

az group delete \
    --resource-group $RESOURCE_GROUP

A GitHub-adattár törléséhez lásd : Adattár törlése.

Következő lépések