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
- 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.
Pokud se při spouštění az containerapp
příkazů v Azure CLI nebo rutinách Az.App
z modulu v Azure PowerShellu zobrazí chyby týkající se chybějících parametrů, ujistěte se, že máte nainstalovanou nejnovější verzi rozšíření Azure Container Apps.
az extension add --name containerapp --upgrade
Poznámka:
Od května 2024 už rozšíření Azure CLI ve výchozím nastavení nepovolují funkce ve verzi Preview. Pokud chcete získat přístup k funkcím Container Apps ve verzi Preview, nainstalujte rozšíření Container Apps pomocí --allow-preview true
nástroje .
az extension add --name containerapp --upgrade --allow-preview true
Teď, když je nainstalované aktuální rozšíření nebo modul, zaregistrujte obory Microsoft.App
názvů a Microsoft.OperationalInsights
obory názvů.
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 integrované s existující virtuální sítí, přečtěte si téma Poskytnutí virtuální sítě prostředí Azure Container Apps.
Vytvořte skupinu prostředků pomocí následujícího příkazu.
az group create \ --name "$RESOURCE_GROUP" \ --location "$LOCATION"
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.
Přejděte na GitHub a přihlaste se.
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.
Vyberte Create repository (Vytvořit úložiště).
V novém úložišti vyberte Akce.
Vyhledejte šablonu jednoduchého pracovního postupu a vyberte Konfigurovat.
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.
Poznámka:
Osobní přístupové tokeny (PAT) mají datum vypršení platnosti. Pravidelně obměňujte tokeny, abyste zajistili, že zůstanou platné (nevypršela platnost), aby se zachovala nepřerušovaná služba.
Na GitHubu vyberte svůj profilový obrázek v pravém horním rohu a vyberte Nastavení.
Vyberte Nastavení pro vývojáře.
V části Osobní přístupové tokeny vyberte Jemně odstupňované tokeny.
Vyberte Vygenerovat nový token.
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í. Vyberte Vygenerovat token.
Zkopírujte hodnotu tokenu.
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í.
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.Vytvořte registr kontejneru.
az acr create \ --name "$CONTAINER_REGISTRY_NAME" \ --resource-group "$RESOURCE_GROUP" \ --location "$LOCATION" \ --sku Basic
Aby bylo možné použít spravovanou identitu k načtení imagí, musí váš registr kontejneru povolit tokeny cílové skupiny Azure Resource Manageru (ARM).
Pomocí následujícího příkazu zkontrolujte, jestli mají tokeny ARM povolený přístup ke službě Azure Container Registry (ACR).
az acr config authentication-as-arm show --registry "$CONTAINER_REGISTRY_NAME"
Pokud jsou povoleny tokeny ARM, příkaz vypíše následující výstup.
{ "status": "enabled" }
status
Pokud anodisabled
, povolte tokeny ARM pomocí následujícího příkazu.az acr config authentication-as-arm update --registry "$CONTAINER_REGISTRY_NAME" --status enabled
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.
Vytvoření spravované identity přiřazené uživatelem
Abyste se vyhnuli používání přihlašovacích údajů pro správu, načítejte image z privátních úložišť ve službě Microsoft Azure Container Registry pomocí spravovaných identit pro ověřování. Pokud je to možné, použijte spravovanou identitu přiřazenou uživatelem k načtení imagí.
Vytvořte spravovanou identitu přiřazenou uživatelem. Než spustíte následující příkazy, zvolte název vaší spravované identity a nahraďte ho
\<PLACEHOLDER\>
názvem.IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP
Získejte ID prostředku identity.
IDENTITY_ID=$(az identity show \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
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.
Vytvořte úlohu v prostředí Container Apps.
az containerapp job create \ --name "$JOB_NAME" \ --resource-group "$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" \ --mi-user-assigned "$IDENTITY_ID" \ --registry-identity "$IDENTITY_ID"
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í. --mi-user-assigned
ID prostředku spravované identity přiřazené uživatelem pro přiřazení k úloze. --registry-identity
ID prostředku spravované identity pro ověření pomocí serveru registru místo použití uživatelského jména a hesla. Pokud je to možné, vytvoří se pro identitu automaticky přiřazení role acrpull. Konfigurace pravidla škálování definuje zdroj událostí, který se má monitorovat. Pravidla se vyhodnocují v každém intervalu dotazování a určují, 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.
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.Vyberte Možnost Upravit na místě.
Aktualizujte vlastnost na
runs-on
self-hosted
:runs-on: self-hosted
Vyberte Potvrdit změny....
Vyberte Potvrdit změny.
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.
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.
Přejděte do Azure DevOps a přihlaste se ke svému účtu.
Vyberte existující organizaci nebo vytvořte novou.
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ý. Vyberte Vytvořit.
Na boční navigaci vyberte Úložiště.
V části Inicializace hlavní větve pomocí souboru README nebo .gitignore vyberte Přidat soubor README.
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í.
V projektu Azure DevOps rozbalte levý navigační panel a vyberte Nastavení projektu.
V části Kanály v navigační nabídce nastavení projektu vyberte Fondy agentů.
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. 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.
[!POZNÁMKA]
Osobní přístupové tokeny (PAT) mají datum vypršení platnosti. Pravidelně obměňujte tokeny, abyste zajistili, že zůstanou platné (nevypršela platnost), aby se zachovala nepřerušovaná služba.
V Azure DevOps vyberte v pravém horním rohu uživatelská nastavení vedle svého profilového obrázku.
Vyberte osobní přístupové tokeny.
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.
Vyberte Vytvořit.
Zkopírujte hodnotu tokenu do zabezpečeného umístění.
Po opuštění stránky nemůžete token načíst.
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" REGISTRATION_TOKEN_API_URL="<YOUR_REGISTRATION_TOKEN_API_URL>"
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
nebohttps://myorg.visualstudio.com
.<YOUR_REGISTRATION_TOKEN_API_URL>
Adresa URL rozhraní API registračního tokenu v souboru entrypoint.sh . Například 'https://myapi.example.com/get-token'
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í.
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.
Vytvořte registr kontejneru.
az acr create \ --name "$CONTAINER_REGISTRY_NAME" \ --resource-group "$RESOURCE_GROUP" \ --location "$LOCATION" \ --sku Basic \ --admin-enabled true
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.
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.Spuštěním ruční úlohy vytvořte zástupného agenta.
az containerapp job start -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
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}'
Ověřte, že se zástupný agent vytvořil v Azure DevOps.
- V Azure DevOps přejděte do svého projektu.
- Vyberte Nastavení projectu>Agent fondy>agentů kontejner-apps>Agent.
- Ověřte, že je uvedený zástupný agent
placeholder-agent
a jeho stav je offline.
Ú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. Pravidla se vyhodnocují v každém intervalu dotazování a určují, 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
Jakmile je nakonfigurovaná úloha agenta v místním prostředí, můžete spustit kanál a ověřit, že funguje správně.
V levém navigačním panelu projektu Azure DevOps přejděte na Kanály.
Vyberte Vytvořit kanál.
Jako umístění kódu vyberte Git Azure Repos.
Vyberte úložiště, které jste vytvořili dříve.
Vyberte počáteční kanál.
V kanálu YAML změňte
pool
zvmImage: ubuntu-latest
naname: container-apps
.pool: name: container-apps
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.
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}'
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ě.