Referens för ACR-uppgifter: YAML
Aktivitetsdefinitioner i flera steg i ACR Tasks ger en containercentrerad beräkningspri primitiv som fokuserar på att skapa, testa och korrigera containrar. Den här artikeln beskriver kommandon, parametrar, egenskaper och syntax för YAML-filer som definierar dina uppgifter i flera steg.
Den här artikeln innehåller referens för att skapa YAML-filer för flera steg för ACR-uppgifter. Om du vill ha en introduktion till ACR-uppgifter kan du läsa översikten över ACR-uppgifter.
filformatet acr-task.yaml
ACR Tasks stöder aktivitetsdeklaration i flera steg i yaml-standardsyntaxen. Du definierar en uppgifts steg i en YAML-fil. Du kan sedan köra uppgiften manuellt genom att skicka filen till kommandot az acr run . Du kan också använda filen för att skapa en uppgift med az acr task create som utlöses automatiskt vid en Git-incheckning, en basavbildningsuppdatering eller ett schema. Även om den här artikeln refererar till acr-task.yaml
som den fil som innehåller stegen, stöder ACR Tasks alla giltiga filnamn med ett tillägg som stöds.
De översta acr-task.yaml
primitiverna är uppgiftsegenskaper, stegtyper och stegegenskaper:
- Uppgiftsegenskaper gäller för alla steg under aktivitetskörningen. Det finns flera globala uppgiftsegenskaper, bland annat:
version
stepTimeout
workingDirectory
- Aktivitetsstegstyper representerar de typer av åtgärder som kan utföras i en aktivitet. Det finns tre stegtyper:
build
push
cmd
- Egenskaper för aktivitetssteg är parametrar som gäller för ett enskilt steg. Det finns flera stegegenskaper, bland annat:
startDelay
timeout
when
- ... och många fler.
Basformatet för en acr-task.yaml
fil, inklusive några vanliga stegegenskaper, följer. Även om det inte är en fullständig representation av alla tillgängliga stegegenskaper eller användning av stegtyper, ger den en snabb översikt över det grundläggande filformatet.
version: # acr-task.yaml format version.
stepTimeout: # Seconds each step may take.
steps: # A collection of image or container actions.
- build: # Equivalent to "docker build," but in a multi-tenant environment
- push: # Push a newly built or retagged image to a registry.
when: # Step property that defines either parallel or dependent step execution.
- cmd: # Executes a container, supports specifying an [ENTRYPOINT] and parameters.
startDelay: # Step property that specifies the number of seconds to wait before starting execution.
Filnamnstillägg för aktivitet som stöds
ACR Tasks har reserverat flera filnamnstillägg, inklusive .yaml
, som bearbetas som en aktivitetsfil. Alla tillägg som inte finns i följande lista anses av ACR Tasks vara en Dockerfile: .yaml, .yml, .toml, .json, .sh, .bash, .zsh, .ps1, .ps, .cmd, .bat, .ts, .js, .php, .py, .rb, .lua
YAML är det enda filformat som för närvarande stöds av ACR Tasks. De andra filnamnstilläggen är reserverade för eventuell framtida support.
Kör exempeluppgifterna
Det finns flera exempeluppgiftsfiler som refereras i följande avsnitt i den här artikeln. Exempeluppgifterna finns på en offentlig GitHub-lagringsplats, Azure-Samples/acr-tasks. Du kan köra dem med Azure CLI-kommandot az acr run. Exempelkommandona liknar:
az acr run -f build-push-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
Formateringen av exempelkommandona förutsätter att du har konfigurerat ett standardregister i Azure CLI, så de utelämnar parametern --registry
. Om du vill konfigurera ett standardregister använder du kommandot az config med set
kommandot som accepterar ett defaults.acr=REGISTRY_NAME
nyckelvärdepar.
Om du till exempel vill konfigurera Azure CLI med ett standardregister med namnet "myregistry":
az config set defaults.acr=myregistry
Uppgiftsegenskaper
Uppgiftsegenskaper visas vanligtvis överst i en acr-task.yaml
fil och är globala egenskaper som gäller under hela körningen av aktivitetsstegen. Vissa av dessa globala egenskaper kan åsidosättas i ett enskilt steg.
Property | Type | Valfritt | beskrivning | Åsidosättning stöds | Standardvärde |
---|---|---|---|---|---|
version |
sträng | Ja | Den version av acr-task.yaml filen som tolkas av ACR Tasks-tjänsten. ACR Tasks strävar efter att upprätthålla bakåtkompatibilitet, men det här värdet gör att ACR Tasks kan upprätthålla kompatibiliteten i en definierad version. Om det är ospecificerat är standardvärdet v1.0.0 . |
Ej tillämpligt | v1.0.0 |
stepTimeout |
int (sekunder) | Ja | Det maximala antalet sekunder som ett steg kan köras. Om egenskapen stepTimeout anges för en aktivitet anger den standardegenskapen timeout för alla steg. Om egenskapen timeout anges i ett steg åsidosätter den stepTimeout egenskap som tillhandahålls av uppgiften.Summan av tidsgränsvärdena för ett steg för en aktivitet ska vara lika med värdet för aktivitetens körningsegenskap timeout (till exempel genom att skicka --timeout till az acr task create kommandot). Om aktiviteternas körningsvärde timeout är mindre prioriteras det. |
Ja | 600 (10 minuter) |
workingDirectory |
sträng | Ja | Arbetskatalogen för containern under körning. Om egenskapen anges för en aktivitet anger den standardegenskapen workingDirectory för alla steg. Om det anges i ett steg åsidosätter den egenskapen som tillhandahålls av aktiviteten. |
Ja | c:\workspace i Windows eller /workspace i Linux |
env |
[sträng, sträng, ...] | Ja | Matris med strängar i key=value format som definierar miljövariablerna för uppgiften. Om egenskapen anges för en aktivitet anger den standardegenskapen env för alla steg. Om det anges i ett steg åsidosätter det alla miljövariabler som ärvts från aktiviteten. |
Ja | None |
secrets |
[hemlighet, hemlighet, ...] | Ja | Matris med hemliga objekt. | Nej | Ingen |
networks |
[nätverk, nätverk, ...] | Ja | Matris med nätverksobjekt . | Nej | Ingen |
volumes |
[volym, volym, ...] | Ja | Matris med volymobjekt . Anger volymer med källinnehåll som ska monteras i ett steg. | Nej | Ingen |
hemlighet
Det hemliga objektet har följande egenskaper.
Property | Type | Valfritt | beskrivning | Standardvärde |
---|---|---|---|---|
id |
sträng | Nej | Hemlighetens identifierare. | Ingen |
keyvault |
sträng | Ja | Url:en för Azure Key Vault-hemligheten. | Ingen |
clientID |
sträng | Ja | Klient-ID för den användartilldelade hanterade identiteten för Azure-resurser. | Ingen |
network
Nätverksobjektet har följande egenskaper.
Property | Type | Valfritt | beskrivning | Standardvärde |
---|---|---|---|---|
name |
sträng | Nej | Namnet på nätverket. | Ingen |
driver |
sträng | Ja | Drivrutinen för att hantera nätverket. | Ingen |
ipv6 |
bool | Ja | Om IPv6-nätverk är aktiverat. | false |
skipCreation |
bool | Ja | Om du vill hoppa över skapande av nätverk. | false |
isDefault |
bool | Ja | Om nätverket är ett standardnätverk som tillhandahålls med Azure Container Registry. | false |
volym
Volymobjektet har följande egenskaper.
Property | Type | Valfritt | beskrivning | Standardvärde |
---|---|---|---|---|
name |
sträng | Nej | Namnet på volymen som ska monteras. Kan bara innehålla alfanumeriska tecken, "-" och "_". | Ingen |
secret |
map[string]string | Nej | Varje nyckel på kartan är namnet på en fil som skapats och fyllts i i volymen. Varje värde är strängversionen av hemligheten. Hemliga värden måste vara Base64-kodade. | Ingen |
Typer av aktivitetssteg
ACR Tasks stöder tre stegtyper. Varje stegtyp stöder flera egenskaper som beskrivs i avsnittet för varje stegtyp.
Stegtyp | beskrivning |
---|---|
build |
Skapar en containeravbildning med välbekant docker build syntax. |
push |
Kör en docker push av nyligen byggda eller återtagna avbildningar till ett containerregister. Azure Container Registry, andra privata register och den offentliga Docker Hub stöds. |
cmd |
Kör en container som ett kommando med parametrar som skickas till containerns [ENTRYPOINT] . Stegtypen cmd stöder parametrar som env , detach och andra välbekanta docker run kommandoalternativ som aktiverar enhets- och funktionstestning med samtidig containerkörning. |
build
Skapa en containeravbildning. Stegtypen build
representerar ett säkert sätt att köra docker build
i molnet som en förstklassig primitiv.
Syntax: build
version: v1.1.0
steps:
- [build]: -t [imageName]:[tag] -f [Dockerfile] [context]
[property]: [value]
Kör kommandot az acr runför att hämta docker-versionen.
az acr run -r $ACR_NAME --cmd "docker version" /dev/null
Lägg till miljövariabeln DOCKER_BUILDKIT=1
i yaml-filen för att aktivera buildkit
och använda secret
med buildkit
.
Stegtypen build
stöder parametrarna i följande tabell. Stegtypen build
stöder även alla byggalternativ för docker build-kommandot , till exempel --build-arg
för att ange byggtidsvariabler.
Parameter | Description | Valfritt |
---|---|---|
-t | --image |
Definierar den fullständigt kvalificerade image:tag avbildningen.Eftersom avbildningar kan användas för inre uppgiftsvalidering, till exempel funktionella tester, kräver push inte alla avbildningar till ett register. Men för att kunna instansa en bild i en aktivitetskörning behöver avbildningen ett namn att referera till.Till skillnad från az acr build ger körning av ACR-uppgifter inte standardbeteende för push-överföring. Med ACR Tasks förutsätter standardscenariot möjligheten att skapa, verifiera och sedan push-överföra en avbildning. Se push-överföring för hur du kan push-överföra byggda avbildningar. |
Ja |
-f | --file |
Anger dockerfile som skickas till docker build . Om det inte anges antas dockerfile-standardfilen i kontextens rot. Om du vill ange en Dockerfile skickar du filnamnet i förhållande till kontextens rot. |
Ja |
context |
Rotkatalogen skickades till docker build . Rotkatalogen för varje uppgift är inställd på en delad workingDirectory och innehåller roten för den associerade Git-klonade katalogen. |
Nej |
Egenskaper: build
Stegtypen build
stöder följande egenskaper. Hitta information om dessa egenskaper i avsnittet Egenskaper för aktivitetssteg i den här artikeln.
Egenskaper | Typ | Obligatoriskt |
---|---|---|
detach |
bool | Valfritt |
disableWorkingDirectoryOverride |
bool | Valfritt |
entryPoint |
sträng | Valfritt |
env |
[sträng, sträng, ...] | Valfritt |
expose |
[sträng, sträng, ...] | Valfritt |
id |
sträng | Valfritt |
ignoreErrors |
bool | Valfritt |
isolation |
sträng | Valfritt |
keep |
bool | Valfritt |
network |
objekt | Valfritt |
ports |
[sträng, sträng, ...] | Valfritt |
pull |
bool | Valfritt |
repeat |
heltal | Valfritt |
retries |
heltal | Valfritt |
retryDelay |
int (sekunder) | Valfritt |
secret |
objekt | Valfritt |
startDelay |
int (sekunder) | Valfritt |
timeout |
int (sekunder) | Valfritt |
volumeMount |
objekt | Valfritt |
when |
[sträng, sträng, ...] | Valfritt |
workingDirectory |
sträng | Valfritt |
Exempel: build
Skapa avbildning – kontext i roten
az acr run -f build-hello-world.yaml https://github.com/AzureCR/acr-tasks-sample.git
version: v1.1.0
steps:
- build: -t $Registry/hello-world -f hello-world.dockerfile .
Skapa avbildning – kontext i underkatalog
version: v1.1.0
steps:
- build: -t $Registry/hello-world -f hello-world.dockerfile ./subDirectory
Dynamisk variabel som skickar in ACR-uppgifter
När du arbetar med ACR-uppgifter (Azure Container Registry) kan du behöva skicka olika värden till byggprocessen utan att ändra uppgiftsdefinitionen --set
med hjälp av flaggan med az acr task run
kommandot .
Exempel: Ange avbildningstagg vid körning
Anta att du har en ACR-uppgift definierad i en acr-task.yml
fil med en platshållare för bildtaggen:
steps:
- build: -t $Registry/hello-world:{{.Values.tag}}
Du kan utlösa uppgiften och ange variabeln tag
till v2
vid körning med hjälp av följande Azure CLI-kommando:
az acr task run --registry myregistry --name mytask --set tag=v2
Det här kommandot startar ACR-uppgiften med namnet mytask
och skapar avbildningen med hjälp av taggen v2
och åsidosättar platshållaren i acr-task.yml
filen.
Med den här metoden kan du anpassa dina CI/CD-pipelines så att du dynamiskt kan justera parametrar baserat på dina aktuella behov utan att ändra uppgiftsdefinitionerna.
push
Push-överför en eller flera skapade eller återtagna avbildningar till ett containerregister. Stöder push-överföring till privata register som Azure Container Registry eller till den offentliga Docker Hub.
Syntax: push
Stegtypen push
stöder en samling avbildningar. YAML-samlingssyntaxen stöder infogade och kapslade format. Push-överföring av en enskild bild representeras vanligtvis med infogad syntax:
version: v1.1.0
steps:
# Inline YAML collection syntax
- push: ["$Registry/hello-world:$ID"]
För ökad läsbarhet använder du kapslad syntax vid push-överföring av flera bilder:
version: v1.1.0
steps:
# Nested YAML collection syntax
- push:
- $Registry/hello-world:$ID
- $Registry/hello-world:latest
Egenskaper: push
Stegtypen push
stöder följande egenskaper. Hitta information om dessa egenskaper i avsnittet Egenskaper för aktivitetssteg i den här artikeln.
Property | Type | Obligatoriskt |
---|---|---|
env |
[sträng, sträng, ...] | Valfritt |
id |
sträng | Valfritt |
ignoreErrors |
bool | Valfritt |
startDelay |
int (sekunder) | Valfritt |
timeout |
int (sekunder) | Valfritt |
when |
[sträng, sträng, ...] | Valfritt |
Exempel: push
Skicka flera bilder
az acr run -f build-push-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
- push:
- $Registry/hello-world:$ID
Skapa, push-överföra och köra
az acr run -f build-run-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
- push:
- $Registry/hello-world:$ID
- cmd: $Registry/hello-world:$ID
Cmd
Stegtypen cmd
kör en container.
Syntax: cmd
version: v1.1.0
steps:
- [cmd]: [containerImage]:[tag (optional)] [cmdParameters to the image]
Egenskaper: cmd
Stegtypen cmd
stöder följande egenskaper:
Property | Type | Obligatoriskt |
---|---|---|
detach |
bool | Valfritt |
disableWorkingDirectoryOverride |
bool | Valfritt |
entryPoint |
sträng | Valfritt |
env |
[sträng, sträng, ...] | Valfritt |
expose |
[sträng, sträng, ...] | Valfritt |
id |
sträng | Valfritt |
ignoreErrors |
bool | Valfritt |
isolation |
sträng | Valfritt |
keep |
bool | Valfritt |
network |
objekt | Valfritt |
ports |
[sträng, sträng, ...] | Valfritt |
pull |
bool | Valfritt |
repeat |
heltal | Valfritt |
retries |
heltal | Valfritt |
retryDelay |
int (sekunder) | Valfritt |
secret |
objekt | Valfritt |
startDelay |
int (sekunder) | Valfritt |
timeout |
int (sekunder) | Valfritt |
volumeMount |
objekt | Valfritt |
when |
[sträng, sträng, ...] | Valfritt |
workingDirectory |
sträng | Valfritt |
Du hittar information om dessa egenskaper i avsnittet Egenskaper för aktivitetssteg i den här artikeln.
Exempel: cmd
Kör hello-world-avbildning
Det här kommandot kör aktivitetsfilen hello-world.yaml
som refererar till hello-world-avbildningen på Docker Hub.
az acr run -f hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
- cmd: mcr.microsoft.com/hello-world
Kör bash-bild och eko "hello world"
Det här kommandot kör aktivitetsfilen bash-echo.yaml
som refererar till bash-avbildningen på Docker Hub.
az acr run -f bash-echo.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
- cmd: bash echo hello world
Kör en specifik bash-avbildningstagg
Om du vill köra en viss avbildningsversion anger du taggen cmd
i .
Det här kommandot kör aktivitetsfilen bash-echo-3.yaml
som refererar till bash:3.0-avbildningen på Docker Hub.
az acr run -f bash-echo-3.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
- cmd: bash:3.0 echo hello world
Köra anpassade avbildningar
Stegtypen cmd
refererar till bilder med standardformatet docker run
. Avbildningar som inte föregås av ett register antas komma från docker.io. Det föregående exemplet kan lika gärna representeras som:
version: v1.1.0
steps:
- cmd: docker.io/bash:3.0 echo hello world
Genom att använda standardreferenskonventionen docker run
cmd
för avbildningar kan du köra avbildningar från alla privata register eller den offentliga Docker Hub. Om du refererar till avbildningar i samma register där ACR-uppgiften körs behöver du inte ange några registerautentiseringsuppgifter.
Kör en avbildning som kommer från ett Azure-containerregister. I följande exempel förutsätter vi att du har ett register med namnet
myregistry
, och en anpassad avbildningmyimage:mytag
.version: v1.1.0 steps: - cmd: myregistry.azurecr.io/myimage:mytag
Generalisera registerreferensen med en Körningsvariabel eller ett alias
I stället för att hårdkoda registernamnet i en
acr-task.yaml
fil kan du göra det mer portabelt med hjälp av en Körningsvariabel eller ett alias. VariabelnRun.Registry
eller$Registry
aliaset expanderas vid körning till namnet på registret där uppgiften körs.Om du till exempel vill generalisera föregående uppgift så att den fungerar i alla Azure-containerregister refererar du till variabeln $Registry i avbildningsnamnet:
version: v1.1.0 steps: - cmd: $Registry/myimage:mytag
Få åtkomst till hemliga volymer
Egenskapen volumes
tillåter att volymer och deras hemliga innehåll anges för build
och cmd
steg i en uppgift. I varje steg visar en valfri volumeMounts
egenskap de volymer och motsvarande containersökvägar som ska monteras i containern i det steget. Hemligheter tillhandahålls som filer på varje volyms monteringssökväg.
Kör en uppgift och montera två hemligheter i ett steg: en som lagras i ett nyckelvalv och en som anges på kommandoraden:
az acr run -f mounts-secrets.yaml --set-secret mysecret=abcdefg123456 https://github.com/Azure-Samples/acr-tasks.git
# This template demonstrates mounting a custom volume into a container at a CMD step
secrets:
- id: sampleSecret
keyvault: https://myacbvault2.vault.azure.net/secrets/SampleSecret # Replace with valid keyvault with access
volumes:
- name: mysecrets
secret:
mysecret1: {{.Secrets.sampleSecret | b64enc}}
mysecret2: {{.Values.mysecret | b64enc}}
steps:
- cmd: bash cat /run/test/mysecret1 /run/test/mysecret2
volumeMounts:
- name: mysecrets
mountPath: /run/test
Egenskaper för aktivitetssteg
Varje stegtyp stöder flera egenskaper som är lämpliga för dess typ. I följande tabell definieras alla tillgängliga stegegenskaper. Alla stegtyper stöder inte alla egenskaper. Information om vilka av dessa egenskaper som är tillgängliga för varje stegtyp finns i referensavsnitten cmd, build och push-stegtyp .
Property | Type | Valfritt | beskrivning | Standardvärde |
---|---|---|---|---|
detach |
bool | Ja | Om containern ska kopplas från när den körs. | false |
disableWorkingDirectoryOverride |
bool | Ja | Om du vill inaktivera åsidosättningsfunktioner workingDirectory . Använd detta i kombination med workingDirectory för att ha fullständig kontroll över containerns arbetskatalog. |
false |
entryPoint |
sträng | Ja | Åsidosätter containern för [ENTRYPOINT] ett steg. |
Ingen |
env |
[sträng, sträng, ...] | Ja | Matris med strängar i key=value format som definierar miljövariablerna för steget. |
Ingen |
expose |
[sträng, sträng, ...] | Ja | Matris med portar som exponeras från containern. | Ingen |
id |
sträng | Ja | Identifierar steget i aktiviteten unikt. Andra steg i uppgiften kan referera till ett stegs id , till exempel för beroendekontroll med when .id är också containerns namn som körs. Processer som körs i andra containrar i aktiviteten kan referera till som dess DNS-värdnamn, eller för att komma åt den med docker-loggar [id], till id exempel. |
acb_step_%d , där %d är det 0-baserade indexet för steget uppifrån och ned i YAML-filen |
ignoreErrors |
bool | Ja | Om steget ska markeras som lyckat oavsett om ett fel uppstod under containerkörningen. | false |
isolation |
sträng | Ja | Containerns isoleringsnivå. | default |
keep |
bool | Ja | Om stegets container ska behållas efter körningen. | false |
network |
objekt | Ja | Identifierar ett nätverk där containern körs. | Ingen |
ports |
[sträng, sträng, ...] | Ja | Matris med portar som publiceras från containern till värden. | Ingen |
pull |
bool | Ja | Om du vill tvinga fram en hämtning av containern innan du kör den för att förhindra cachelagring. | false |
privileged |
bool | Ja | Om containern ska köras i privilegierat läge. | false |
repeat |
heltal | Ja | Antalet återförsök för att upprepa körningen av en container. | 0 |
retries |
heltal | Ja | Antalet försök att försöka igen om en container inte kan köras. Ett nytt försök görs bara om en containers slutkod inte är noll. | 0 |
retryDelay |
int (sekunder) | Ja | Fördröjningen i sekunder mellan återförsök av en containers körning. | 0 |
secret |
objekt | Ja | Identifierar en Azure Key Vault-hemlighet eller hanterad identitet för Azure-resurser. | Ingen |
startDelay |
int (sekunder) | Ja | Antal sekunder för att fördröja körningen av en container. | 0 |
timeout |
int (sekunder) | Ja | Maximalt antal sekunder som ett steg kan köras innan det avslutas. | 600 |
when |
[sträng, sträng, ...] | Ja | Konfigurerar ett stegs beroende av ett eller flera andra steg i uppgiften. | Ingen |
user |
sträng | Ja | Användarnamnet eller UID för en container | Ingen |
workingDirectory |
sträng | Ja | Anger arbetskatalogen för ett steg. Som standard skapar ACR Tasks en rotkatalog som arbetskatalog. Men om bygget innehåller flera steg kan tidigare steg dela artefakter med senare steg genom att ange samma arbetskatalog. | c:\workspace i Windows eller /workspace i Linux |
volumeMount
VolumeMount-objektet har följande egenskaper.
Property | Type | Valfritt | beskrivning | Standardvärde |
---|---|---|---|---|
name |
sträng | Nej | Namnet på volymen som ska monteras. Måste exakt matcha namnet från en volumes egenskap. |
Ingen |
mountPath |
sträng | nej | Den absoluta sökvägen för att montera filer i containern. | Ingen |
Exempel: Egenskaper för aktivitetssteg
Exempel: ID
Skapa två avbildningar som instancing en funktionell testbild. Varje steg identifieras av ett unikt id
som andra steg i uppgiftsreferensen i deras when
egenskap.
az acr run -f when-parallel-dependent.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
# build website and func-test images, concurrently
- id: build-hello-world
build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
when: ["-"]
- id: build-hello-world-test
build: -t hello-world-test -f hello-world.dockerfile .
when: ["-"]
# run built images to be tested
- id: hello-world
cmd: $Registry/hello-world:$ID
when: ["build-hello-world"]
- id: func-tests
cmd: hello-world-test
env:
- TEST_TARGET_URL=hello-world
when: ["hello-world"]
# push hello-world if func-tests are successful
- push: ["$Registry/hello-world:$ID"]
when: ["func-tests"]
Exempel: när
Egenskapen when
anger ett stegs beroende av andra steg i aktiviteten. Den stöder två parametervärden:
when: ["-"]
– Anger inget beroende av andra steg. Ett steg som anger påbörjarwhen: ["-"]
körningen omedelbart och aktiverar samtidiga stegkörningar.when: ["id1", "id2"]
– Anger att steget är beroende av steg medid
"id1" ochid
"id2". Det här steget körs inte förrän både "id1" och "id2" har slutförts.
Om when
inte anges i ett steg beror det steget på slutförandet av föregående steg i acr-task.yaml
filen.
Sekventiell stegkörning utan when
:
az acr run -f when-sequential-default.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
- cmd: bash echo one
- cmd: bash echo two
- cmd: bash echo three
Sekventiell stegkörning med when
:
az acr run -f when-sequential-id.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
- id: step1
cmd: bash echo one
- id: step2
cmd: bash echo two
when: ["step1"]
- id: step3
cmd: bash echo three
when: ["step2"]
Parallella avbildningar:
az acr run -f when-parallel.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
# build website and func-test images, concurrently
- id: build-hello-world
build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
when: ["-"]
- id: build-hello-world-test
build: -t hello-world-test -f hello-world.dockerfile .
when: ["-"]
Parallell avbildningsversion och beroende testning:
az acr run -f when-parallel-dependent.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
# build website and func-test images, concurrently
- id: build-hello-world
build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
when: ["-"]
- id: build-hello-world-test
build: -t hello-world-test -f hello-world.dockerfile .
when: ["-"]
# run built images to be tested
- id: hello-world
cmd: $Registry/hello-world:$ID
when: ["build-hello-world"]
- id: func-tests
cmd: hello-world-test
env:
- TEST_TARGET_URL=hello-world
when: ["hello-world"]
# push hello-world if func-tests are successful
- push: ["$Registry/hello-world:$ID"]
when: ["func-tests"]
Kör variabler
ACR Tasks innehåller en standarduppsättning variabler som är tillgängliga för aktivitetssteg när de körs. Dessa variabler kan nås med formatet {{.Run.VariableName}}
, där VariableName
är något av följande:
Run.ID
Run.SharedVolume
Run.Registry
Run.RegistryName
Run.Date
Run.OS
Run.Architecture
Run.Commit
Run.Branch
Run.TaskName
Variabelnamnen är vanligtvis självförklarande. Information följer för vanliga variabler. Från och med YAML-versionen v1.1.0
kan du använda ett förkortat, fördefinierat uppgiftsalias i stället för de flesta körningsvariabler. Använd till exempel aliaset $Registry
i stället {{.Run.Registry}}
för .
Run.ID
Varje Körning, via az acr run
eller utlösarbaserad körning av uppgifter som skapats via az acr task create
har ett unikt ID. ID:t representerar den körning som körs för närvarande.
Används vanligtvis för en unik taggning av en bild:
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID .
Run.SharedVolume
Den unika identifieraren för en delad volym som är tillgänglig för alla aktivitetssteg. Volymen monteras c:\workspace
på i Windows eller /workspace
i Linux.
Run.Registry
Registrets fullständigt kvalificerade servernamn. Används vanligtvis för att allmänt referera till registret där uppgiften körs.
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID .
Run.RegistryName
Namnet på containerregistret. Används vanligtvis i uppgiftssteg som inte kräver ett fullständigt kvalificerat servernamn, cmd
till exempel steg som kör Azure CLI-kommandon i register.
version 1.1.0
steps:
# List repositories in registry
- cmd: az login --identity
- cmd: az acr repository list --name $RegistryName
Run.Date
Den aktuella UTC-tiden som körningen började.
Run.Commit
För en uppgift som utlöses av en incheckning till en GitHub-lagringsplats, incheckningsidentifieraren.
Run.Branch
För en uppgift som utlöses av en incheckning till en GitHub-lagringsplats, grennamnet.
Alias
v1.1.0
Från och med stöder ACR Tasks alias som är tillgängliga för aktivitetssteg när de körs. Alias liknar alias (kommandogenvägar) som stöds i bash och andra kommandogränssnitt.
Med ett alias kan du starta valfritt kommando eller en grupp med kommandon (inklusive alternativ och filnamn) genom att ange ett enda ord.
ACR Tasks stöder flera fördefinierade alias och även anpassade alias som du skapar.
Fördefinierade alias
Följande aktivitetsalias är tillgängliga för användning i stället för körningsvariabler:
Alias | Kör variabel |
---|---|
ID |
Run.ID |
SharedVolume |
Run.SharedVolume |
Registry |
Run.Registry |
RegistryName |
Run.RegistryName |
Date |
Run.Date |
OS |
Run.OS |
Architecture |
Run.Architecture |
Commit |
Run.Commit |
Branch |
Run.Branch |
I uppgiftssteg föregår du ett alias med $
direktivet, som i det här exemplet:
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
Bildalias
Vart och ett av följande alias pekar på en stabil avbildning i Microsoft Container Registry (MCR). Du kan referera till var och en av dem i cmd
avsnittet i en uppgiftsfil utan att använda ett direktiv.
Alias | Bild |
---|---|
acr |
mcr.microsoft.com/acr/acr-cli:0.5 |
az |
mcr.microsoft.com/acr/azure-cli:7ee1d7f |
bash |
mcr.microsoft.com/acr/bash:7ee1d7f |
curl |
mcr.microsoft.com/acr/curl:7ee1d7f |
I följande exempelaktivitet används flera alias för att rensa avbildningstaggar som är äldre än 7 dagar i lagringsplatsen samples/hello-world
i körningsregistret:
version: v1.1.0
steps:
- cmd: acr tag list --registry $RegistryName --repository samples/hello-world
- cmd: acr purge --registry $RegistryName --filter samples/hello-world:.* --ago 7d
Anpassat alias
Definiera ett anpassat alias i YAML-filen och använd det enligt följande exempel. Ett alias kan bara innehålla alfanumeriska tecken. Standarddirektivet för att expandera ett alias är $
tecknet.
version: v1.1.0
alias:
values:
repo: myrepo
steps:
- build: -t $Registry/$repo/hello-world:$ID -f Dockerfile .
Du kan länka till en fjärr- eller lokal YAML-fil för anpassade aliasdefinitioner. Följande exempel länkar till en YAML-fil i Azure Blob Storage:
version: v1.1.0
alias:
src: # link to local or remote custom alias files
- 'https://link/to/blob/remoteAliases.yml?readSasToken'
[...]
Nästa steg
En översikt över uppgifter i flera steg finns i Köra uppgifter för att skapa, testa och korrigera flera steg i ACR-uppgifter.
Enstegsversioner finns i översikten över ACR-uppgifter.