Kurz: Nasazení místního spouštěče CI/CD a agentů pomocí úloh Azure Container Apps

GitHub Actions a Azure Pipelines umožňují spouštět pracovní postupy CI/CD s využitím spouštěčů a agentů v místním prostředí. Pomocí úloh Azure Container Apps řízených událostmi můžete spouštět spouštěče a agenty v místním prostředí.

Spouštěče v místním prostředí jsou užitečné, když potřebujete spouštět pracovní postupy, které vyžadují přístup k místním prostředkům nebo nástrojům, které nejsou dostupné pro spouštěč hostovaný v cloudu. Například místní spouštěč v úloze Container Apps umožňuje vašemu pracovnímu postupu přistupovat k prostředkům ve virtuální síti úlohy, které nejsou přístupné pro spouštěč hostovaný v cloudu.

Spouštění samoobslužných spouštěčů jako úloh řízených událostmi umožňuje využívat bezserverovou povahu Azure Container Apps. Úlohy se spustí automaticky při aktivaci pracovního postupu a ukončení po dokončení úlohy.

Platíte jenom za dobu, kdy je úloha spuštěná.

V tomto kurzu se naučíte spouštět spouštěče GitHub Actions jako úlohu container apps řízenou událostmi.

  • Vytvoření prostředí Container Apps pro nasazení místního spouštěče
  • Vytvoření úložiště GitHub pro spuštění pracovního postupu, který používá místního spouštěče
  • Sestavení image kontejneru, která spouští spouštěč GitHub Actions
  • Nasazení spouštěče jako úlohy do prostředí Container Apps
  • Vytvoření pracovního postupu, který používá spouštěč v místním prostředí, a ověření, že běží

Důležité

Spouštěče v místním prostředí se doporučují jenom pro privátní úložiště. Použití s veřejnými úložišti může umožnit spuštění nebezpečného kódu ve spouštěči v místním prostředí. Další informace najdete v tématu Zabezpečení spouštěče v místním prostředí.

V tomto kurzu se naučíte spouštět agenty Azure Pipelines jako úlohu container apps řízenou událostmi.

  • Vytvoření prostředí Container Apps pro nasazení agenta v místním prostředí
  • Vytvoření organizace a projektu Azure DevOps
  • Sestavení image kontejneru, která spouští agenta Azure Pipelines
  • Použití ruční úlohy k vytvoření zástupného agenta v prostředí Container Apps
  • Nasazení agenta jako úlohy do prostředí Container Apps
  • Vytvoření kanálu, který používá agenta v místním prostředí, a ověření jeho spuštění

Důležité

Agenti v místním prostředí se doporučují jenom pro soukromé projekty. Použití s veřejnými projekty může umožnit spuštění nebezpečného kódu na vašem místním agentu. Další informace najdete v tématu Zabezpečení agenta v místním prostředí.

Poznámka:

Kontejnerové aplikace a úlohy nepodporují spouštění Dockeru v kontejnerech. Všechny kroky ve vašich pracovních postupech, které používají příkazy Dockeru, selžou při spuštění na místním spouštěči nebo agentu v úloze Container Apps.

Požadavky

  • Účet Azure: Pokud ho nemáte, můžete si ho zdarma vytvořit.

  • Azure CLI: Nainstalujte Azure CLI.

  • Organizace Azure DevOps: Pokud nemáte organizaci DevOps s aktivním předplatným, můžete si ji zdarma vytvořit.

Seznam omezení najdete v části Omezení úloh.

Nastavení

Pokud se chcete přihlásit k Azure z rozhraní příkazového řádku, spusťte následující příkaz a podle pokynů dokončete proces ověřování.

az login

Pokud chcete zajistit, že používáte nejnovější verzi rozhraní příkazového řádku, spusťte příkaz upgrade.

az upgrade

Dále nainstalujte nebo aktualizujte rozšíření Azure Container Apps pro rozhraní příkazového řádku.

az extension add --name containerapp --upgrade

Teď, když je nainstalované aktuální rozšíření nebo modul, zaregistrujte obory Microsoft.App názvů a Microsoft.OperationalInsights obory názvů.

Poznámka:

Prostředky Azure Container Apps se migrovaly z Microsoft.Web oboru názvů do Microsoft.App oboru názvů. Další podrobnosti najdete v tématu Migrace oboru názvů z webu Microsoft.Web na Microsoft.App v březnu 2022 .

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

Vytvoření proměnných prostředí

Po dokončení nastavení Azure CLI můžete definovat proměnné prostředí, které se používají v tomto článku.

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"

Vytvoření prostředí Container Apps

Prostředí Azure Container Apps funguje jako zabezpečená hranice pro kontejnerové aplikace a úlohy, aby mohly sdílet stejnou síť a komunikovat mezi sebou.

Poznámka:

Pokud chcete vytvořit prostředí Container Apps, které je integrované s existující virtuální sítí, přečtěte si téma Poskytnutí virtuální sítě internímu prostředí Azure Container Apps.

  1. Vytvořte skupinu prostředků pomocí následujícího příkazu.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Pomocí následujícího příkazu vytvořte prostředí Container Apps.

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

Vytvoření úložiště GitHub pro spuštění pracovního postupu

Pokud chcete spustit pracovní postup, musíte vytvořit úložiště GitHub, které obsahuje definici pracovního postupu.

  1. Přejděte na GitHub a přihlaste se.

  2. Vytvořte nové úložiště zadáním následujících hodnot.

    Nastavení Hodnota
    Vlastník Vyberte své uživatelské jméno GitHubu.
    Název úložiště Zadejte název úložiště.
    Viditelnost Vyberte Soukromý.
    Inicializace tohoto úložiště pomocí Vyberte Přidat soubor README.

    Zbývající hodnoty ponechte jako výchozí výběr.

  3. Vyberte Create repository (Vytvořit úložiště).

  4. V novém úložišti vyberte Akce.

  5. Vyhledejte šablonu jednoduchého pracovního postupu a vyberte Konfigurovat.

  6. Vyberte Potvrdit změny a přidejte pracovní postup do úložiště.

Pracovní postup běží na spouštěči hostované na ubuntu-latest GitHubu a vytiskne zprávu do konzoly. Později nahradíte spouštěč hostovaný na GitHubu místním spouštěčem.

Získání osobního přístupového tokenu GitHubu

Pokud chcete spustit spouštěč v místním prostředí, musíte na GitHubu vytvořit osobní přístupový token (PAT). Při každém spuštění spouštěče se pat použije k vygenerování tokenu pro registraci spouštěče v GitHubu. Pat také používá pravidlo škálování GitHub Actions ke sledování fronty pracovního postupu úložiště a spuštění spouštěčů podle potřeby.

  1. Na GitHubu vyberte svůj profilový obrázek v pravém horním rohu a vyberte Nastavení.

  2. Vyberte Nastavení pro vývojáře.

  3. V části Osobní přístupové tokeny vyberte Jemně odstupňované tokeny.

  4. Vyberte Vygenerovat nový token.

  5. Na obrazovce Nový jemně odstupňovaný osobní přístupový token zadejte následující hodnoty.

    Nastavení Hodnota
    Název tokenu Zadejte název tokenu.
    Vypršení platnosti Vyberte 30 dní.
    Přístup k úložišti Vyberte Pouze úložiště a vyberte úložiště, které jste vytvořili.

    Zadejte následující hodnoty pro oprávnění úložiště.

    Nastavení Hodnota
    Akce Vyberte jen pro čtení.
    Správa Vyberte Číst a zapisovat.
    Metadata Vyberte jen pro čtení.
  6. Vyberte Vygenerovat token.

  7. Zkopírujte hodnotu tokenu.

  8. Definujte proměnné, které se později použijí ke konfiguraci spouštěče a pravidla škálování.

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

    Zástupné symboly nahraďte následujícími hodnotami:

    Zástupný symbol Hodnota
    <GITHUB_PAT> GitHub PAT, který jste vygenerovali.
    <REPO_OWNER> Vlastník úložiště, které jste vytvořili dříve. Tato hodnota je obvykle vaše uživatelské jméno GitHubu.
    <REPO_NAME> Název úložiště, které jste vytvořili dříve. Tato hodnota je stejný název, který jste zadali do pole Název úložiště.

Sestavení image kontejneru GitHub Actions runner

Pokud chcete vytvořit spouštěč v místním prostředí, musíte vytvořit image kontejneru, která spustí spouštěč. V této části sestavíte image kontejneru a nasdílíte ji do registru kontejneru.

Poznámka:

Image, kterou vytvoříte v tomto kurzu, obsahuje základní místního spouštěče, který je vhodný pro spuštění jako úloha Container Apps. Můžete ho přizpůsobit tak, aby zahrnoval další nástroje nebo závislosti, které pracovní postupy vyžadují.

  1. Definujte název image kontejneru a registru.

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

    Nahraďte <CONTAINER_REGISTRY_NAME> jedinečným názvem pro vytvoření registru kontejneru. Názvy registru kontejnerů musí být v Rámci Azure jedinečné a musí mít délku 5 až 50 znaků obsahující číslice a malá písmena.

  2. Vytvořte registr kontejneru.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. Soubor Dockerfile pro vytvoření image spouštěče je k dispozici na GitHubu. Spuštěním následujícího příkazu naklonujte úložiště a pomocí příkazu sestavte image kontejneru az acr build v cloudu.

    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"
    

    Image je teď dostupná v registru kontejneru.

Nasazení místního spouštěče jako úlohy

Teď můžete vytvořit úlohu, která se používá k použití image kontejneru. V této části vytvoříte úlohu, která spustí spouštěč v místním prostředí a ověří se v GitHubu pomocí dříve vygenerovaného PAT. Úloha používá github-runner pravidlo škálování k vytvoření spuštění úloh na základě počtu čekajících spuštění pracovního postupu.

  1. Vytvořte úlohu v prostředí Container Apps.

    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"
    

    Následující tabulka popisuje klíčové parametry použité v příkazu.

    Parametr Popis
    --replica-timeout Maximální doba trvání, po které může replika provést.
    --replica-retry-limit Počet opakování neúspěšné repliky.
    --replica-completion-count Počet replik, které se úspěšně dokončí před provedením úlohy, se považuje za úspěšný.
    --parallelism Počet replik, které se mají spustit pro každou úlohu
    --min-executions Minimální počet spuštění úloh pro každý interval dotazování.
    --max-executions Maximální počet spuštění úloh pro každý interval dotazování.
    --polling-interval Interval dotazování, ve kterém se má vyhodnotit pravidlo škálování.
    --scale-rule-name Název pravidla škálování
    --scale-rule-type Typ pravidla škálování, které se má použít. Další informace o škálovacím nástroji GitHub Runner najdete v dokumentaci KEDA.
    --scale-rule-metadata Metadata pravidla škálování. Pokud používáte GitHub Enterprise, aktualizujte githubAPIURL ji pomocí adresy URL rozhraní API.
    --scale-rule-auth Ověřování pravidla škálování.
    --secrets Tajné kódy, které se mají použít pro úlohu.
    --env-vars Proměnné prostředí, které se mají použít pro úlohu.
    --registry-server Server registru kontejneru, který se má použít pro úlohu. V případě služby Azure Container Registry příkaz automaticky nakonfiguruje ověřování.

    Konfigurace pravidla škálování definuje zdroj událostí, který se má monitorovat. Vyhodnocuje se v každém intervalu dotazování a určuje, kolik spuštění úloh se má aktivovat. Další informace najdete v tématu Nastavení pravidel škálování.

Úloha řízená událostmi se teď vytvoří v prostředí Container Apps.

Spuštění pracovního postupu a ověření úlohy

Úloha je nakonfigurovaná tak, aby vyhodnocovala pravidlo škálování každých 30 sekund. Během každého vyhodnocení zkontroluje počet čekajících spuštění pracovního postupu, které vyžadují spuštění spouštěče v místním prostředí, a spustí spuštění nové úlohy pro čekající pracovní postup až do nakonfigurovaného maximálního počtu 10 spuštění.

Pokud chcete ověřit, že úloha byla správně nakonfigurovaná, upravíte pracovní postup tak, aby používal spouštěč v místním prostředí a aktivoval spuštění pracovního postupu. Pak můžete zobrazit protokoly spuštění úlohy a zobrazit spuštění pracovního postupu.

  1. V úložišti GitHub přejděte do pracovního postupu, který jste vygenerovali dříve. Jedná se o soubor YAML v .github/workflows adresáři.

  2. Vyberte Možnost Upravit na místě.

  3. Aktualizujte vlastnost na runs-onself-hosted:

    runs-on: self-hosted
    
  4. Vyberte Potvrdit změny....

  5. Vyberte Potvrdit změny.

  6. Přejděte na kartu Akce .

    Nový pracovní postup je nyní zařazen do fronty. Během 30 sekund se spustí spuštění úlohy a pracovní postup se dokončí brzy po dokončení.

    Než začnete s dalším krokem, počkejte na dokončení akce.

  7. Vytvořte seznam spuštění úlohy, abyste potvrdili, že se vytvořilo a úspěšně dokončilo provádění úlohy.

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

Vytvoření projektu a úložiště Azure DevOps

Ke spuštění kanálu potřebujete projekt a úložiště Azure DevOps.

  1. Přejděte do Azure DevOps a přihlaste se ke svému účtu.

  2. Vyberte existující organizaci nebo vytvořte novou.

  3. Na stránce přehledu organizace vyberte Nový projekt a zadejte následující hodnoty.

    Nastavení Hodnota
    Název projektu Zadejte název projektu.
    Viditelnost Vyberte Soukromý.
  4. Vyberte Vytvořit.

  5. Na boční navigaci vyberte Úložiště.

  6. V části Inicializace hlavní větve pomocí souboru README nebo .gitignore vyberte Přidat soubor README.

  7. Zbývající hodnoty ponechte jako výchozí a vyberte Inicializovat.

Vytvoření nového fondu agentů

Vytvořte nový fond agentů pro spuštění spouštěče v místním prostředí.

  1. V projektu Azure DevOps rozbalte levý navigační panel a vyberte Nastavení projektu.

    Snímek obrazovky s tlačítkem nastavení projektu Azure DevOps

  2. V části Kanály v navigační nabídce nastavení projektu vyberte Fondy agentů.

    Snímek obrazovky s tlačítkem Fondy agentů Azure DevOps

  3. Vyberte Přidat fond a zadejte následující hodnoty.

    Nastavení Hodnota
    Fond pro propojení Vyberte Nový.
    Typ fondu Vyberte možnost Hostování v místním prostředí.
    Název Zadejte kontejnerové aplikace.
    Udělení oprávnění k přístupu všem kanálům Zaškrtněte toto políčko.
  4. Vyberte Vytvořit.

Získání tokenu pat Azure DevOps

Pokud chcete spustit spouštěč v místním prostředí, musíte v Azure DevOps vytvořit osobní přístupový token (PAT). Pat se používá k ověření spouštěče v Azure DevOps. Pravidlo škálování také používá k určení počtu čekajících spuštění kanálu a aktivaci nových spuštění úloh.

  1. V Azure DevOps vyberte v pravém horním rohu uživatelská nastavení vedle svého profilového obrázku.

  2. Vyberte osobní přístupové tokeny.

  3. Na stránce Osobní přístupové tokeny vyberte Nový token a zadejte následující hodnoty.

    Nastavení Hodnota
    Název Zadejte název tokenu.
    Organizace Vyberte organizaci, kterou jste zvolili nebo vytvořili dříve.
    Obory Vyberte Možnost Vlastní definovaná.
    Zobrazit všechny obory Vyberte Zobrazit všechny obory.
    Fondy agentů (čtení a správa) Vyberte fondy agentů (číst a spravovat)

    Nechejte nevybrané všechny ostatní obory.

  4. Vyberte Vytvořit.

  5. Zkopírujte hodnotu tokenu do zabezpečeného umístění.

    Po opuštění stránky nemůžete token načíst.

  6. Definujte proměnné, které se později použijí ke konfiguraci úloh Container Apps.

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

    Zástupné symboly nahraďte následujícími hodnotami:

    Zástupný symbol Hodnota Komentáře
    <AZP_TOKEN> Azure DevOps PAT, který jste vygenerovali.
    <ORGANIZATION_URL> Adresa URL vaší organizace Azure DevOps Ujistěte se, že na konci adresy URL není žádné koncové./ Například https://dev.azure.com/myorg nebo https://myorg.visualstudio.com.

Sestavení image kontejneru agenta Azure Pipelines

Pokud chcete vytvořit agenta v místním prostředí, musíte vytvořit image kontejneru, na které běží agent. V této části sestavíte image kontejneru a nasdílíte ji do registru kontejneru.

Poznámka:

Image, kterou vytvoříte v tomto kurzu, obsahuje základního místního agenta, který je vhodný pro spuštění jako úloha Container Apps. Můžete ho přizpůsobit tak, aby zahrnoval další nástroje nebo závislosti, které kanály vyžadují.

  1. Zpátky v terminálu definujte název image kontejneru a registru.

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

    Nahraďte <CONTAINER_REGISTRY_NAME> jedinečným názvem pro vytvoření registru kontejneru.

    Názvy registru kontejnerů musí být v Rámci Azure jedinečné a musí mít délku 5 až 50 znaků obsahující číslice a malá písmena.

  2. Vytvořte registr kontejneru.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. Soubor Dockerfile pro vytvoření image spouštěče je k dispozici na GitHubu. Spuštěním následujícího příkazu naklonujte úložiště a pomocí příkazu sestavte image kontejneru az acr build v cloudu.

    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"
    

    Image je teď dostupná v registru kontejneru.

Vytvoření zástupného zástupného agenta v místním prostředí

Než budete moct spustit agenta v místním prostředí ve vašem novém fondu agentů, musíte vytvořit zástupného agenta. Zástupný agent zajišťuje, že je fond agentů dostupný. Kanály, které používají fond agentů, selžou, když neexistuje žádný zástupný agent.

Ruční úlohu můžete spustit pro registraci offline zástupného agenta. Úloha se spustí jednou a dá se odstranit. Zástupný agent nepoužívá žádné prostředky v Azure Container Apps ani Azure DevOps.

  1. V prostředí Container Apps vytvořte ruční úlohu, která vytvoří zástupného agenta.

    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"
    

    Následující tabulka popisuje klíčové parametry použité v příkazu.

    Parametr Popis
    --replica-timeout Maximální doba trvání, po které může replika provést.
    --replica-retry-limit Počet opakování neúspěšné repliky.
    --replica-completion-count Počet replik, které se úspěšně dokončí před provedením úlohy, se považuje za úspěšný.
    --parallelism Počet replik, které se mají spustit pro každou úlohu
    --secrets Tajné kódy, které se mají použít pro úlohu.
    --env-vars Proměnné prostředí, které se mají použít pro úlohu.
    --registry-server Server registru kontejneru, který se má použít pro úlohu. V případě služby Azure Container Registry příkaz automaticky nakonfiguruje ověřování.

    AZP_PLACEHOLDER Nastavení proměnné prostředí nakonfiguruje kontejner agenta tak, aby se zaregistroval jako offline zástupný agent bez spuštění úlohy.

  2. Spuštěním ruční úlohy vytvořte zástupného agenta.

    az containerapp job start -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    
  3. Vytvořte seznam spuštění úlohy, abyste potvrdili, že se vytvořilo a úspěšně dokončilo provádění úlohy.

    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. Ověřte, že se zástupný agent vytvořil v Azure DevOps.

    1. V Azure DevOps přejděte do svého projektu.
    2. Vyberte Nastavení projectu>Agent fondy>agentů kontejner-apps>Agent.
    3. Ověřte, že je uvedený zástupný agent placeholder-agent a jeho stav je offline.
  5. Úloha není znovu nutná. Můžete ho odstranit.

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

Vytvoření místního agenta jako úlohy řízené událostmi

Teď, když máte zástupného agenta, můžete vytvořit agenta v místním prostředí. V této části vytvoříte úlohu řízenou událostmi, která při aktivaci kanálu spustí agenta v místním prostředí.

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"

Následující tabulka popisuje parametry pravidla škálování použité v příkazu.

Parametr Popis
--min-executions Minimální počet spuštění úloh pro každý interval dotazování.
--max-executions Maximální počet spuštění úloh pro každý interval dotazování.
--polling-interval Interval dotazování, ve kterém se má vyhodnotit pravidlo škálování.
--scale-rule-name Název pravidla škálování
--scale-rule-type Typ pravidla škálování, které se má použít. Další informace o škálovacím nástroji Azure Pipelines najdete v dokumentaci KEDA.
--scale-rule-metadata Metadata pravidla škálování.
--scale-rule-auth Ověřování pravidla škálování.

Konfigurace pravidla škálování definuje zdroj událostí, který se má monitorovat. Vyhodnocuje se v každém intervalu dotazování a určuje, kolik spuštění úloh se má aktivovat. Další informace najdete v tématu Nastavení pravidel škálování.

Úloha řízená událostmi se teď vytvoří v prostředí Container Apps.

Spuštění kanálu a ověření úlohy

Teď, když jste nakonfigurovali úlohu agenta v místním prostředí, můžete spustit kanál a ověřit, že funguje správně.

  1. V levém navigačním panelu projektu Azure DevOps přejděte na Kanály.

  2. Vyberte Vytvořit kanál.

  3. Jako umístění kódu vyberte Git Azure Repos.

  4. Vyberte úložiště, které jste vytvořili dříve.

  5. Vyberte počáteční kanál.

  6. V kanálu YAML změňte pool z vmImage: ubuntu-latest na name: container-apps.

    pool:
      name: container-apps
    
  7. Zvolte Uložit a Spustit.

    Kanál se spustí a používá úlohu agenta v místním prostředí, kterou jste vytvořili v prostředí Container Apps.

  8. Vytvořte seznam spuštění úlohy, abyste potvrdili, že se vytvořilo a úspěšně dokončilo provádění úlohy.

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

Tip

Máte problémy? Dejte nám vědět na GitHubu otevřením problému v úložišti Azure Container Apps.

Vyčištění prostředků

Jakmile budete hotovi, spuštěním následujícího příkazu odstraňte skupinu prostředků, která obsahuje vaše prostředky Container Apps.

Upozornění

Následující příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto kurzu existují v zadané skupině prostředků, odstraní se také.

az group delete \
    --resource-group $RESOURCE_GROUP

Pokud chcete odstranit úložiště GitHub, přečtěte si téma Odstranění úložiště.

Další kroky