Dela via


Självstudie: Distribuera lokalt installerad CI/CD-löpare och agenter med Azure Container Apps-jobb

Med GitHub Actions och Azure Pipelines kan du köra CI/CD-arbetsflöden med lokalt installerade löpare och agenter. Du kan köra lokala löpare och agenter med hjälp av händelsedrivna Azure Container Apps-jobb.

Lokalt installerade löpare är användbara när du behöver köra arbetsflöden som kräver åtkomst till lokala resurser eller verktyg som inte är tillgängliga för en molnbaserad löpare. Till exempel tillåter en lokalt installerad löpare i ett Container Apps-jobb ditt arbetsflöde att komma åt resurser i jobbets virtuella nätverk som inte är tillgängligt för en molnhanterad löpare.

Genom att köra lokala löpare som händelsedrivna jobb kan du dra nytta av den serverlösa karaktären hos Azure Container Apps. Jobb körs automatiskt när ett arbetsflöde utlöses och avslutas när jobbet är klart.

Du betalar bara för den tid som jobbet körs.

I den här självstudien får du lära dig hur du kör GitHub Actions-löpare som ett händelsedrivet Container Apps-jobb.

  • Skapa en Container Apps-miljö för att distribuera din egen värdbaserade löpare
  • Skapa en GitHub-lagringsplats för att köra ett arbetsflöde som använder en lokalt installerad löpare
  • Skapa en containeravbildning som kör en GitHub Actions-löpare
  • Distribuera löparen som ett jobb till Container Apps-miljön
  • Skapa ett arbetsflöde som använder den lokalt installerade löparen och kontrollera att det körs

Viktigt!

Lokalt installerade löpare rekommenderas endast för privata lagringsplatser. Om du använder dem med offentliga lagringsplatser kan farlig kod köras på din egen värdbaserade löpare. Mer information finns i Säkerhet för lokalt installerad löpare.

I den här självstudien får du lära dig hur du kör Azure Pipelines-agenter som ett händelsedrivet Container Apps-jobb.

  • Skapa en Container Apps-miljö för att distribuera din lokalt installerad agent
  • Skapa en Azure DevOps-organisation och ett projekt
  • Skapa en containeravbildning som kör en Azure Pipelines-agent
  • Använd ett manuellt jobb för att skapa en platshållaragent i Container Apps-miljön
  • Distribuera agenten som ett jobb till Container Apps-miljön
  • Skapa en pipeline som använder den lokalt installerade agenten och kontrollera att den körs

Viktigt!

Lokalt installerade agenter rekommenderas endast för privata projekt. Om du använder dem med offentliga projekt kan farlig kod köras på din lokala agent. Mer information finns i Säkerhet för lokalt installerad agent.

Kommentar

Containerappar och -jobb stöder inte körning av Docker i containrar. Alla steg i dina arbetsflöden som använder Docker-kommandon misslyckas när de körs på en lokalt installerad löpare eller agent i ett Container Apps-jobb.

Förutsättningar

  • Azure DevOps-organisation: Om du inte har en DevOps-organisation med en aktiv prenumeration kan du skapa en kostnadsfritt.

Se jobbbegränsningar för en lista över begränsningar.

Ställ in

Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.

az login

Kör uppgraderingskommandot för att säkerställa att du kör den senaste versionen av CLI.

az upgrade

Installera eller uppdatera sedan Azure Container Apps-tillägget för CLI.

Om du får fel om saknade parametrar när du kör az containerapp kommandon i Azure CLI eller cmdletar från modulen Az.App i Azure PowerShell kontrollerar du att den senaste versionen av Azure Container Apps-tillägget är installerad.

az extension add --name containerapp --upgrade

Kommentar

Från och med maj 2024 aktiverar Azure CLI-tillägg inte längre förhandsversionsfunktioner som standard. Om du vill komma åt förhandsversionsfunktioner för Container Apps installerar du containerapptillägget med --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Nu när det aktuella tillägget eller modulen har installerats registrerar du Microsoft.App namnrymderna och Microsoft.OperationalInsights .

Kommentar

Azure Container Apps-resurser har migrerats från Microsoft.Web namnområdet till Microsoft.App namnområdet. Mer information finns i Namnområdesmigrering från Microsoft.Web till Microsoft.App i mars 2022.

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

Skapa miljövariabler

Nu när azure CLI-installationen är klar kan du definiera de miljövariabler som används i hela den här artikeln.

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"

Skapa en Container Apps-miljö

Azure Container Apps-miljön fungerar som en säker gräns för containerappar och jobb så att de kan dela samma nätverk och kommunicera med varandra.

Kommentar

Information om hur du skapar en Container Apps-miljö som är integrerad med ett befintligt virtuellt nätverk finns i Tillhandahålla ett virtuellt nätverk till en intern Azure Container Apps-miljö.

  1. Använd följande kommando för att skapa en resursgrupp.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Skapa Container Apps-miljön med hjälp av följande kommando.

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

Skapa en GitHub-lagringsplats för att köra ett arbetsflöde

Om du vill köra ett arbetsflöde måste du skapa en GitHub-lagringsplats som innehåller arbetsflödesdefinitionen.

  1. Gå till GitHub och logga in.

  2. Skapa en ny lagringsplats genom att ange följande värden.

    Inställning Värde
    Ägare Välj ditt GitHub-användarnamn.
    Namn på lagringsplats Ange ett namn på lagringsplatsen.
    Synlighet Välj Privat.
    Initiera den här lagringsplatsen med Välj Lägg till en README-fil.

    Lämna resten av värdena som standardval.

  3. Välj Create repository (Skapa lagringsplats).

  4. Välj Åtgärder på den nya lagringsplatsen.

  5. Sök efter mallen Enkelt arbetsflöde och välj Konfigurera.

  6. Välj Genomför ändringar för att lägga till arbetsflödet på lagringsplatsen.

Arbetsflödet körs på den ubuntu-latest GitHub-värdbaserade löparen och skriver ut ett meddelande till konsolen. Senare ersätter du Den GitHub-värdbaserade löparen med en lokalt installerad löpare.

Hämta en personlig Åtkomsttoken för GitHub

Om du vill köra en lokalt installerad löpare måste du skapa en personlig åtkomsttoken (PAT) i GitHub. Varje gång en löpare startar används PAT för att generera en token för att registrera löparen med GitHub. PAT används också av github actions-skalningsregeln för att övervaka lagringsplatsens arbetsflödeskö och starta löpare efter behov.

  1. I GitHub väljer du din profilbild i det övre högra hörnet och väljer Inställningar.

  2. Välj Inställningar för utvecklare.

  3. Under Personliga åtkomsttoken väljer du Detaljerade token.

  4. Välj Generera ny token.

  5. På skärmen Ny detaljerad personlig åtkomsttoken anger du följande värden.

    Inställning Värde
    Tokennamn Ange ett namn för din token.
    Förfallodatum Välj 30 dagar.
    Åtkomst till lagringsplats Välj Välj Endast lagringsplatser och välj den lagringsplats som du skapade.

    Ange följande värden för lagringsplatsbehörigheter.

    Inställning Värde
    Åtgärder Välj Skrivskyddad.
    Administration Välj Läs och skriv.
    Metadata Välj Skrivskyddad.
  6. Välj Generera token.

  7. Kopiera tokenvärdet.

  8. Definiera variabler som används för att konfigurera löparen och skalningsregeln senare.

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

    Ersätt platshållarna med följande värden:

    Platshållare Värde
    <GITHUB_PAT> GitHub PAT som du genererade.
    <REPO_OWNER> Ägaren till lagringsplatsen som du skapade tidigare. Det här värdet är vanligtvis ditt GitHub-användarnamn.
    <REPO_NAME> Namnet på lagringsplatsen som du skapade tidigare. Det här värdet är samma namn som du angav i fältet Lagringsplatsnamn .

Skapa containeravbildningen GitHub Actions runner

Om du vill skapa en lokalt installerad löpare måste du skapa en containeravbildning som kör löparen. I det här avsnittet skapar du containeravbildningen och push-överför den till ett containerregister.

Kommentar

Avbildningen som du skapar i den här självstudien innehåller en grundläggande lokalt installerad löpare som är lämplig för att köras som ett Container Apps-jobb. Du kan anpassa den så att den innehåller ytterligare verktyg eller beroenden som dina arbetsflöden kräver.

  1. Definiera ett namn för containeravbildningen och registret.

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

    Ersätt <CONTAINER_REGISTRY_NAME> med ett unikt namn för att skapa ett containerregister. Containerregisternamn måste vara unika i Azure och vara mellan 5 och 50 tecken långa och innehåller endast siffror och gemener.

  2. Skapa ett containerregister.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. Dockerfile för att skapa runner-avbildningen är tillgänglig på GitHub. Kör följande kommando för att klona lagringsplatsen och skapa containeravbildningen i molnet med kommandot az acr build .

    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"
    

    Avbildningen är nu tillgänglig i containerregistret.

Distribuera en lokalt installerad löpare som ett jobb

Nu kan du skapa ett jobb som använder för att använda containeravbildningen. I det här avsnittet skapar du ett jobb som kör den lokalt installerade löparen och autentiserar med GitHub med hjälp av den PAT som du genererade tidigare. Jobbet använder skalningsregeln github-runner för att skapa jobbkörningar baserat på antalet väntande arbetsflödeskörningar.

  1. Skapa ett jobb i Container Apps-miljön.

    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"
    

    I följande tabell beskrivs de nyckelparametrar som används i kommandot.

    Parameter Description
    --replica-timeout Den maximala varaktighet som en replik kan köra.
    --replica-retry-limit Antal gånger som en misslyckad replik ska försöka igen.
    --replica-completion-count Antalet repliker som ska slutföras innan en jobbkörning anses vara lyckad.
    --parallelism Antalet repliker som ska startas per jobbkörning.
    --min-executions Det minsta antalet jobbkörningar som ska köras per avsökningsintervall.
    --max-executions Det maximala antalet jobbkörningar som ska köras per avsökningsintervall.
    --polling-interval Avsökningsintervallet för att utvärdera skalningsregeln.
    --scale-rule-name Namnet på skalningsregeln.
    --scale-rule-type Vilken typ av skalningsregel som ska användas. Mer information om GitHub runner scaler finns i KEDA-dokumentationen.
    --scale-rule-metadata Metadata för skalningsregeln. Om du använder GitHub Enterprise uppdaterar githubAPIURL du med dess API-URL.
    --scale-rule-auth Autentiseringen för skalningsregeln.
    --secrets Hemligheterna som ska användas för jobbet.
    --env-vars Miljövariablerna som ska användas för jobbet.
    --registry-server Den containerregisterserver som ska användas för jobbet. För ett Azure Container Registry konfigurerar kommandot automatiskt autentisering.

    Skalningsregelkonfigurationen definierar den händelsekälla som ska övervakas. Den utvärderas på varje avsökningsintervall och avgör hur många jobbkörningar som ska utlösas. Mer information finns i Ange skalningsregler.

Det händelsedrivna jobbet skapas nu i Container Apps-miljön.

Kör ett arbetsflöde och verifiera jobbet

Jobbet är konfigurerat för att utvärdera skalningsregeln var 30:e sekund. Under varje utvärdering kontrollerar den antalet väntande arbetsflödeskörningar som kräver en lokalt installerad löpare och startar en ny jobbkörning för väntande arbetsflöde, upp till högst 10 körningar.

För att verifiera att jobbet har konfigurerats korrekt ändrar du arbetsflödet så att det använder en lokalt installerad löpare och utlöser en arbetsflödeskörning. Du kan sedan visa jobbkörningsloggarna för att se arbetsflödet köras.

  1. I GitHub-lagringsplatsen navigerar du till det arbetsflöde som du genererade tidigare. Det är en YAML-fil i .github/workflows katalogen.

  2. Välj Redigera på plats.

  3. Uppdatera egenskapen runs-on till self-hosted:

    runs-on: self-hosted
    
  4. Välj Genomför ändringar....

  5. Välj Genomför ändringar.

  6. Gå till fliken Åtgärder .

    Ett nytt arbetsflöde har nu placerats i kö. Inom 30 sekunder startar jobbkörningen och arbetsflödet slutförs strax efter.

    Vänta tills åtgärden har slutförts innan du går vidare med nästa steg.

  7. Visa en lista över körningarna för jobbet för att bekräfta att en jobbkörning har skapats och slutförts.

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

Skapa ett Azure DevOps-projekt och en lagringsplats

För att köra en pipeline behöver du ett Azure DevOps-projekt och en lagringsplats.

  1. Gå till Azure DevOps och logga in på ditt konto.

  2. Välj en befintlig organisation eller skapa en ny.

  3. På sidan organisationsöversikt väljer du Nytt projekt och anger följande värden.

    Inställning Värde
    Projektnamn Ange ett namn för projektet.
    Synlighet Välj Privat.
  4. Välj Skapa.

  5. I sidonavigering väljer du Lagringsplatser.

  6. Under Initiera huvudgrenen med en README eller .gitignore väljer du Lägg till en README.

  7. Lämna resten av värdena som standardvärden och välj Initiera.

Skapa en ny agentpool

Skapa en ny agentpool för att köra den lokalt installerade löparen.

  1. I ditt Azure DevOps-projekt expanderar du det vänstra navigeringsfältet och väljer Projektinställningar.

    Skärmbild av knappen Azure DevOps-projektinställningar.

  2. Under avsnittet Pipelines i navigeringsmenyn Projektinställningar väljer du Agentpooler.

    Skärmbild av knappen Azure DevOps-agentpooler.

  3. Välj Lägg till pool och ange följande värden.

    Inställning Värde
    Pool att länka Välj Ny.
    Pooltyp Välj Lokalt installerad.
    Namn Ange containerappar.
    Bevilja åtkomstbehörighet till alla pipelines Markera den här kryssrutan.
  4. Välj Skapa.

Hämta en personlig åtkomsttoken för Azure DevOps

Om du vill köra en lokalt installerad löpare måste du skapa en personlig åtkomsttoken (PAT) i Azure DevOps. PAT används för att autentisera löparen med Azure DevOps. Den används också av skalningsregeln för att fastställa antalet väntande pipelinekörningar och utlösa nya jobbkörningar.

  1. I Azure DevOps väljer du Användarinställningar bredvid din profilbild i det övre högra hörnet.

  2. Välj Personliga åtkomsttoken.

  3. På sidan Personliga åtkomsttoken väljer du Ny token och anger följande värden.

    Inställning Värde
    Namn Ange ett namn för din token.
    Organisation Välj den organisation som du valde eller skapade tidigare.
    Scope Välj Anpassad definierad.
    Visa alla omfång Välj Visa alla omfång.
    Agentpooler (läsa och hantera) Välj Agentpooler (Läs och hantera).

    Lämna alla andra omfång avmarkerade.

  4. Välj Skapa.

  5. Kopiera tokenvärdet till en säker plats.

    Du kan inte hämta token när du har lämnat sidan.

  6. Definiera variabler som används för att konfigurera Container Apps-jobb senare.

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

    Ersätt platshållarna med följande värden:

    Platshållare Värde Kommentarer
    <AZP_TOKEN> Azure DevOps PAT som du genererade.
    <ORGANIZATION_URL> URL:en för din Azure DevOps-organisation. Kontrollera att ingen avslutande / finns i slutet av URL:en. Exempel: https://dev.azure.com/myorg eller https://myorg.visualstudio.com.

Skapa containeravbildningen för Azure Pipelines-agenten

Om du vill skapa en lokalt installerad agent måste du skapa en containeravbildning som kör agenten. I det här avsnittet skapar du containeravbildningen och push-överför den till ett containerregister.

Kommentar

Avbildningen som du skapar i den här självstudien innehåller en grundläggande lokalt installerad agent som är lämplig för att köras som ett Container Apps-jobb. Du kan anpassa den så att den innehåller ytterligare verktyg eller beroenden som dina pipelines kräver.

  1. I terminalen definierar du ett namn för containeravbildningen och registret.

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

    Ersätt <CONTAINER_REGISTRY_NAME> med ett unikt namn för att skapa ett containerregister.

    Containerregisternamn måste vara unika i Azure och vara mellan 5 och 50 tecken långa och innehåller endast siffror och gemener.

  2. Skapa ett containerregister.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. Dockerfile för att skapa runner-avbildningen är tillgänglig på GitHub. Kör följande kommando för att klona lagringsplatsen och skapa containeravbildningen i molnet med kommandot az acr build .

    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"
    

    Avbildningen är nu tillgänglig i containerregistret.

Skapa en platshållaragent med egen värd

Innan du kan köra en lokalt installerad agent i den nya agentpoolen måste du skapa en platshållaragent. Platshållaragenten ser till att agentpoolen är tillgänglig. Pipelines som använder agentpoolen misslyckas när det inte finns någon platshållaragent.

Du kan köra ett manuellt jobb för att registrera en platshållaragent offline. Jobbet körs en gång och kan tas bort. Platshållaragenten förbrukar inga resurser i Azure Container Apps eller Azure DevOps.

  1. Skapa ett manuellt jobb i containerappmiljön som skapar platshållaragenten.

    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"
    

    I följande tabell beskrivs de nyckelparametrar som används i kommandot.

    Parameter Description
    --replica-timeout Den maximala varaktighet som en replik kan köra.
    --replica-retry-limit Antal gånger som en misslyckad replik ska försöka igen.
    --replica-completion-count Antalet repliker som ska slutföras innan en jobbkörning anses vara lyckad.
    --parallelism Antalet repliker som ska startas per jobbkörning.
    --secrets Hemligheterna som ska användas för jobbet.
    --env-vars Miljövariablerna som ska användas för jobbet.
    --registry-server Den containerregisterserver som ska användas för jobbet. För ett Azure Container Registry konfigurerar kommandot automatiskt autentisering.

    AZP_PLACEHOLDER Om du ställer in miljövariabeln konfigureras agentcontainern att registrera sig som en offlineplatshållaragent utan att köra ett jobb.

  2. Kör det manuella jobbet för att skapa platshållaragenten.

    az containerapp job start -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    
  3. Visa en lista över körningarna för jobbet för att bekräfta att en jobbkörning har skapats och slutförts.

    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. Kontrollera att platshållaragenten skapades i Azure DevOps.

    1. Gå till projektet i Azure DevOps.
    2. Välj Projektinställningar>Agentpooler>container-apps>Agenter.
    3. Bekräfta att en platshållaragent med namnet placeholder-agent visas och att dess status är offline.
  5. Jobbet behövs inte igen. Du kan ta bort det.

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

Skapa en lokalt installerad agent som ett händelsedrivet jobb

Nu när du har en platshållaragent kan du skapa en lokalt installerad agent. I det här avsnittet skapar du ett händelsedrivet jobb som kör en lokalt installerad agent när en pipeline utlöses.

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"

I följande tabell beskrivs de skalningsregelparametrar som används i kommandot.

Parameter Description
--min-executions Det minsta antalet jobbkörningar som ska köras per avsökningsintervall.
--max-executions Det maximala antalet jobbkörningar som ska köras per avsökningsintervall.
--polling-interval Avsökningsintervallet för att utvärdera skalningsregeln.
--scale-rule-name Namnet på skalningsregeln.
--scale-rule-type Vilken typ av skalningsregel som ska användas. Mer information om Azure Pipelines-skalning finns i KEDA-dokumentationen.
--scale-rule-metadata Metadata för skalningsregeln.
--scale-rule-auth Autentiseringen för skalningsregeln.

Skalningsregelkonfigurationen definierar den händelsekälla som ska övervakas. Den utvärderas på varje avsökningsintervall och avgör hur många jobbkörningar som ska utlösas. Mer information finns i Ange skalningsregler.

Det händelsedrivna jobbet skapas nu i Container Apps-miljön.

Kör en pipeline och verifiera jobbet

Nu när du har konfigurerat ett lokalt agentjobb kan du köra en pipeline och kontrollera att den fungerar korrekt.

  1. I det vänstra navigeringsfältet i ditt Azure DevOps-projekt går du till Pipelines.

  2. Välj Skapa pipeline.

  3. Välj Azure Repos Git som plats för din kod.

  4. Välj den lagringsplats som du skapade tidigare.

  5. Välj Startpipeline.

  6. I YAML-pipelinen ändrar du pool från vmImage: ubuntu-latest till name: container-apps.

    pool:
      name: container-apps
    
  7. Välj Spara och kör.

    Pipelinen körs och använder det lokalt installerade agentjobbet som du skapade i Container Apps-miljön.

  8. Visa en lista över körningarna för jobbet för att bekräfta att en jobbkörning har skapats och slutförts.

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

Dricks

Har du problem? Meddela oss på GitHub genom att öppna ett problem i Azure Container Apps-lagringsplatsen.

Rensa resurser

När du är klar kör du följande kommando för att ta bort resursgruppen som innehåller dina Container Apps-resurser.

Varning

Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här självstudien i den angivna resursgruppen tas de också bort.

az group delete \
    --resource-group $RESOURCE_GROUP

Information om hur du tar bort din GitHub-lagringsplats finns i Ta bort en lagringsplats.

Nästa steg