ERŐFORRÁSOK YAML-folyamatokban
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Ez a cikk a YAML-folyamatok erőforrásait ismerteti. Az erőforrás olyan folyamat által használt dolog, amely a folyamaton kívül található. Miután definiált egy erőforrást, azt a folyamat bármely pontján felhasználhatja.
Az erőforrások teljes nyomon követhetőséget biztosítanak a folyamat által használt szolgáltatásokhoz, beleértve a verziót, az összetevőket, a kapcsolódó véglegesítéseket és a munkaelemeket. A DevOps-munkafolyamatokat teljes mértékben automatizálhatja, ha feliratkozik az erőforrások eseményeinek aktiválására.
Erőforrásséma
A YAML-erőforrások a folyamatok, buildek, adattárak, tárolók, csomagok és webhookok forrásai. A séma teljes információiért tekintse meg az Azure Pipelines YAML-sémareferenciájában szereplő erőforrások definícióját.
Amikor egy erőforrás elindít egy folyamatot, a következő változók lesznek beállítva:
resources.triggeringAlias
resources.triggeringCategory
A változónak Build.Reason
ezeknek az értékeknek a beállításához kell lennie ResourceTrigger
. Az értékek üresek, ha egy erőforrás nem aktiválta a folyamatfuttatást.
Folyamatok erőforrásdefiníciója
Ha olyan folyamattal rendelkezik, amely összetevőket állít elő, az összetevőket egy pipelines
erőforrás definiálásával használhatja fel. Az erőforrást csak az pipelines
Azure Pipelines használhatja. A folyamatos üzembehelyezési (CD-) munkafolyamatok eseményindítóit egy folyamaterőforráson állíthatja be.
Az erőforrásdefinícióban egy egyedi érték, pipeline
amellyel a folyamat erőforrására hivatkozhat a folyamat későbbi részében. A source
folyamat összetevőt előállító folyamat neve. A séma teljes információiért tekintse meg a resources.pipelines.pipeline definícióját.
A megadott címkével pipeline
hivatkozhat a folyamat más részeiből származó erőforrásra, például folyamaterőforrás-változók használata vagy összetevők letöltésekor. A folyamatösszetevők letöltésének alternatív módja: Összetevők letöltése.
Fontos
Folyamaterőforrás-eseményindító definiálásakor:
- Ha az
pipeline
erőforrás ugyanabból az adattárból származik, mint az aktuális folyamat, vagyself
az aktiválás ugyanazt az ágat követi, és véglegesíti az eseményt. - Ha a folyamaterőforrás egy másik adattárból származik, az aktuális folyamat az erőforrás-adattár alapértelmezett ágán
pipeline
aktiválódik.
Példa folyamaterőforrás-definíciókra
Az alábbi példa egy folyamat összetevőit használja fel ugyanabban a projektben.
resources:
pipelines:
- pipeline: SmartHotel-resource # identifier to use in pipeline resource variables
source: SmartHotel-CI # name of the pipeline that produces the artifacts
Ha egy másik projektből származó folyamatot szeretne használni, a projekt nevét és a forrás nevét is tartalmaznia kell. Az alábbi példa az alapértelmezett verzió feloldását használja branch
, amikor a folyamat manuálisan vagy ütemezetten aktiválódik. Az ágbemenet nem tartalmazhat helyettesítő karaktereket.
resources:
pipelines:
- pipeline: SmartHotel
project: DevOpsProject
source: SmartHotel-CI
branch: releases/M142
Az alábbi példa egy egyszerű eseményindítóval rendelkező folyamaterőforrást mutat be.
resources:
pipelines:
- pipeline: SmartHotel
project: DevOpsProject
source: SmartHotel-CI
trigger: true
Az alábbi példa egy elágaztatási feltételekkel rendelkező folyamaterőforrást trigger
mutat be.
resources:
pipelines:
- pipeline: SmartHotel
project: DevOpsProject
source: SmartHotel-CI
trigger:
branches:
- releases/*
- resources.triggeringAlias
Az alábbi példa szűrőket használ stages
a CD-folyamatok eseményindító feltételeinek kiértékeléséhez. A szakaszok az operátort AND
használják. Az összes megadott fázis sikeres befejezése után a CD-folyamat aktiválódik.
resources:
pipelines:
- pipeline: MyCIAlias
project: Fabrikam
source: Farbrikam-CI
trigger:
stages:
- PreProduction
- Production
Az alábbi példa szűrőket használ tags
az alapértelmezett verzióértékeléshez és az eseményindítókhoz. A címkék az operátort AND
használják.
Ezek tags
a folyamatos integrációs (CI) vagy a CD-folyamaton vannak beállítva. Ezek a címkék eltérnek a Git-adattár ágain beállított címkéktől.
resources:
pipelines:
- pipeline: MyCIAlias
project: Fabrikam
source: Farbrikam-CI
tags:
- Production
trigger:
tags:
- Production
- Signed
Folyamatok összetevőverzió-kiértékelése
Az erőforrás-folyamat összetevő-verziója attól függ, hogy a folyamat hogyan aktiválódik.
Manuális vagy ütemezett eseményindító
Ha a folyamat futtatása manuálisan aktiválódik vagy ütemezve van, a version
, branch
és tags
a tulajdonságok értékei határozzák meg az összetevő verzióját. A branch
bemenet nem tartalmazhat helyettesítő karaktereket. A tags
tulajdonságok az operátort AND
használják.
Megadott tulajdonságok | Összetevő verziója |
---|---|
version |
A build azon összetevői, amelyek a megadott futtatási számmal rendelkeznek |
branch |
A megadott ágon végzett legújabb build összetevői |
tags lista |
A legújabb build összetevői, amelyek az összes megadott címkét tartalmaznak |
branch és tags lista |
A megadott ágon végzett legújabb build összetevői, amelyek az összes megadott címkét tartalmaznak |
Egyik sem | A legújabb build összetevői az összes ágban |
Az alábbi pipeline
erőforrásdefiníció az alapértelmezett verzió kiértékelésére használja a branch
tags
tulajdonságokat, amikor a folyamat manuálisan vagy ütemezetten aktiválódik. Amikor manuálisan aktiválja a folyamatot a futtatáshoz, a MyCIAlias
folyamatösszetevők verziója a legújabb buildelés a main
címkékkel Production
rendelkező PrepProduction
ágon.
resources:
pipelines:
- pipeline: MyCIAlias
project: Fabrikam
source: Farbrikam-CI
branch: main
tags:
- Production
- PreProduction
Erőforrás-folyamat befejezési eseményindítója
Amikor egy folyamat aktiválódik, mert az egyik erőforrásfolyamata befejeződik, az összetevők verziója az eseményindító folyamat verziója. A rendszer figyelmen kívül hagyja a version
, branch
és tags
a tulajdonságok értékeit.
Megadott eseményindítók | Eredmény |
---|---|
branches |
Egy új folyamatfuttatási eseményindító akkor aktiválódik, amikor az erőforrás-folyamat sikeresen befejezi a futtatásokat az include egyik ágon. |
tags |
Egy új folyamatfuttatási eseményindító minden alkalommal, amikor az erőforrás-folyamat sikeresen befejez egy futtatási címkét az összes megadott címkével. |
stages |
Egy új folyamatfuttatási eseményindító minden alkalommal, amikor az erőforrás-folyamat sikeresen végrehajtja a megadott parancsot stages . |
branches , tags és stages |
Egy új folyamatfuttatási eseményindító minden olyan esetben, amikor az erőforrás-folyamat futtatása megfelel az összes ág, címke és szakaszfeltételnek. |
trigger: true |
Egy új folyamatfuttatási eseményindító minden alkalommal, amikor az erőforrás-folyamat sikeresen befejezi a futtatásokat. |
Semmit | Nincs új folyamatfuttatási eseményindító, ha az erőforrás-folyamat sikeresen befejezi a futtatásokat. |
A következő folyamat fut, amikor az SmartHotel-CI
erőforrás-folyamat:
- Az egyik ágon vagy az
releases
main
ágon fut - Mindkét címkével van
Verified
megjelölve, ésSigned
- Befejezi mind a szakaszokat, mind a
Production
PreProduction
szakaszokat
resources:
pipelines:
- pipeline: SmartHotel
project: DevOpsProject
source: SmartHotel-CI
trigger:
branches:
include:
- releases/*
- main
exclude:
- topic/*
tags:
- Verified
- Signed
stages:
- Production
- PreProduction
Folyamatösszetevő letöltése
A download
lépés letölti az aktuális futtatáshoz vagy egy másik folyamaterőforráshoz társított összetevőket.
Az aktuális folyamat és az összes erőforrás összes pipeline
összetevője automatikusan letöltődik és elérhetővé válik az egyes üzembehelyezési feladatok elején. Ezt a viselkedést felülbírálhatja a következő beállítással download
none
, vagy egy másik folyamaterőforrás-azonosító megadásával.
A rendszer nem tölti le automatikusan a normál feladatösszetevőket. Szükség esetén kifejezetten használható download
.
Az erőforrásból származó pipeline
összetevők a $(PIPELINE) fájlba lesznek letöltve. WORKSPACE)/<pipeline-identifier>/<artifact-identifier> mappa. További információ: Folyamatösszetevők közzététele és letöltése.
Az opcionális artifact
tulajdonság az összetevők nevét adja meg. Ha nincs megadva, az összes elérhető összetevő le lesz töltve. Az opcionális patterns
tulajdonság olyan mintákat határoz meg, amelyek a belefoglalandó fájlokat jelölik. A séma teljes információiért tekintse meg a steps.download definíciót.
- job: deploy_windows_x86_agent
steps:
- download: SmartHotel
artifact: WebTier1
patterns: '**/*.zip'
Folyamaterőforrás-változók
Minden futtatás során a folyamaterőforrás metaadatai előre definiált változókként minden feladat számára elérhetők. Ezek a változók csak futásidőben érhetők el a folyamat számára, ezért nem használhatók sablonkifejezésekben, amelyek kiértékelése a folyamat fordítási ideje alatt történik.
További információ: Folyamaterőforrás metaadatai előre definiált változókként. A változószintaxisról további információt a Változók definiálása című témakörben talál.
Az alábbi példa a folyamaterőforrás előre definiált változóértékeit myresourcevars
adja vissza.
resources:
pipelines:
- pipeline: myresourcevars
source: mypipeline
trigger: true
steps:
- script: |
echo $(resources.pipeline.myresourcevars.pipelineID)
echo $(resources.pipeline.myresourcevars.runName)
echo $(resources.pipeline.myresourcevars.runID)
echo $(resources.pipeline.myresourcevars.runURI)
echo $(resources.pipeline.myresourcevars.sourceBranch)
echo $(resources.pipeline.myresourcevars.sourceCommit)
echo $(resources.pipeline.myresourcevars.sourceProvider)
echo $(resources.pipeline.myresourcevars.requestedFor)
echo $(resources.pipeline.myresourcevars.requestedForID)
Erőforrásdefiníció létrehozása
Ha olyan külső CI-buildrendszerrel rendelkezik, amely összetevőket állít elő, erőforrásokat tartalmazó builds
összetevőket használhat fel. Az build
erőforrások bármilyen külső CI-rendszerből származhatnak, például a Jenkinsből, a TeamCity-ből vagy a CircleCI-ből.
A builds
kategória bővíthető. Megírhat egy bővítményt a buildelési szolgáltatásból származó összetevők felhasználásához, és bevezethet egy új szolgáltatástípust a builds
részeként.
A definícióban version
a build
legújabb sikeres build alapértelmezett értéke. Alapértelmezés trigger
szerint nincs engedélyezve, és explicit módon be kell állítani. A séma teljes információiért tekintse meg a resources.builds.build definícióját.
Az alábbi példában a Jenkins az erőforrás type
.
resources:
builds:
- build: Spaceworkz
type: Jenkins
connection: MyJenkinsServer
source: SpaceworkzProj # name of the Jenkins source project
trigger: true
Fontos
Az eseményindítók csak akkor támogatottak az üzemeltetett Jenkins esetében, ha az Azure DevOps a Jenkins-kiszolgálóval szem előtt van.
A downloadBuild feladat
Az build
erőforrás-összetevők nem töltődnek le automatikusan a feladatokba/üzembe helyezési feladatokba. Ha az build
erőforrásból származó összetevőket a feladatok részeként szeretné felhasználni, explicit módon hozzá kell adnia a downloadBuild
feladatot. Az egyes üzemelő példányok vagy feladatok letöltési viselkedését testre szabhatja.
Ez a feladat automatikusan feloldja a futtatókörnyezet által definiált erőforrástípus megfelelő letöltési build
feladatát. Az erőforrásból származó build
összetevők a $(PIPELINE) fájlba lesznek letöltve. MUNKATERÜLET)/<buildazonosító>/ mappa.
A definícióban downloadBuild
meg kell adnia azt az erőforrást, amelyből le szeretné tölteni az összetevőket. Az opcionális artifact
tulajdonság a letöltendő összetevőket határozza meg. Ha nincs megadva, a rendszer letölti az erőforráshoz társított összes összetevőt.
Az opcionális patterns
tulajdonság egy minimatch elérési utat vagy a letöltendő minimatch elérési utak listáját határozza meg. Ha üres, a rendszer letölti a teljes összetevőt. Az alábbi kódrészlet például csak a *.zip fájlokat tölti le.
- job: deploy_windows_x86_agent
steps:
- downloadBuild: Spaceworkz
patterns: '**/*.zip'
A séma teljes információiért tekintse meg a steps.downloadBuild definíciót.
Adattár erőforrásdefiníciója
A repository
kulcsszó lehetővé teszi egy külső adattár megadását. Ezt az erőforrást akkor használhatja, ha a folyamat sablonjai egy másik adattárban vannak, vagy több adattárból álló kivételt szeretne használni egy szolgáltatáskapcsolatot igénylő adattárral. Tájékoztassa a rendszert ezekről az adattárakról.
Példa:
resources:
repositories:
- repository: common
type: github
name: Contoso/CommonTools
endpoint: MyContosoServiceConnection
A séma teljes információiért tekintse meg a resources.repositories.repository definícióját.
Adattárerőforrás-típusok
Az Azure Pipelines a következő értékeket támogatja az adattártípushoz: git
, github
, githubenterprise
és bitbucket
.
- A
git
típus az Azure Repos Git-adattárakra vonatkozik. - A GitHub Enterprise-adattárakhoz GitHub Enterprise szolgáltatáskapcsolat szükséges az engedélyezéshez.
- A Bitbucket Cloud-adattárakhoz bitbucket felhőszolgáltatás-kapcsolat szükséges az engedélyezéshez.
Típus | Névérték | Példa |
---|---|---|
type: git |
Egy másik adattár ugyanabban a projektben vagy ugyanabban a szervezetben. | Ugyanaz a projekt: name: otherRepo Egy másik projekt ugyanabban a szervezetben: name: otherProject/otherRepo . |
type: github |
A GitHub-adattár teljes neve, beleértve a felhasználót vagy a szervezetet is. | name: Microsoft/vscode |
type: githubenterprise |
A GitHub Enterprise-adattár teljes neve, beleértve a felhasználót vagy a szervezetet is. | name: Microsoft/vscode |
type: bitbucket |
A Bitbucket Cloud-adattár teljes neve, beleértve a felhasználót vagy a szervezetet is. | name: MyBitbucket/vscode |
Adattárbeli erőforrásváltozók
Minden futtatásban az adattárerőforrás alábbi metaadatai minden feladat számára elérhetők futtatókörnyezeti változók formájában. Ez <Alias>
az az azonosító, amelyet az adattár-erőforrásnak ad.
resources.repositories.<Alias>.name
resources.repositories.<Alias>.ref
resources.repositories.<Alias>.type
resources.repositories.<Alias>.id
resources.repositories.<Alias>.url
Az alábbi példában egy adattárerőforrás van, amelynek aliasa common
van, így az adattár erőforrásváltozói a használatával resources.repositories.common.*
érhetők el.
resources:
repositories:
- repository: common
type: git
ref: main
name: Repo
variables:
ref: $[ resources.repositories.common.ref ]
name: $[ resources.repositories.common.name ]
id: $[ resources.repositories.common.id ]
type: $[ resources.repositories.common.type ]
url: $[ resources.repositories.common.url ]
steps:
- bash: |
echo "name = $(name)"
echo "ref = $(ref)"
echo "id = $(id)"
echo "type = $(type)"
echo "url = $(url)"
Minden futtatásban az adattárerőforrás alábbi metaadatai minden feladat számára elérhetők futtatókörnyezeti változók formájában. Ez <Alias>
az az azonosító, amelyet az adattár-erőforrásnak ad.
resources.repositories.<Alias>.name
resources.repositories.<Alias>.ref
resources.repositories.<Alias>.type
resources.repositories.<Alias>.id
resources.repositories.<Alias>.url
resources.repositories.<Alias>.version
Az alábbi példában egy adattárerőforrás van, amelynek aliasa common
van, így az adattár erőforrásváltozói a használatával resources.repositories.common.*
érhetők el.
resources:
repositories:
- repository: common
type: git
ref: main
name: Repo
variables:
ref: $[ resources.repositories.common.ref ]
name: $[ resources.repositories.common.name ]
id: $[ resources.repositories.common.id ]
type: $[ resources.repositories.common.type ]
url: $[ resources.repositories.common.url ]
version: $[ resources.repositories.common.version ]
steps:
- bash: |
echo "name = $(name)"
echo "ref = $(ref)"
echo "id = $(id)"
echo "type = $(type)"
echo "url = $(url)"
echo "version = $(version)"
Pénztár kulcsszó az adattárakhoz
Az erőforrás adattárai repository
nem szinkronizálódnak automatikusan a feladatokban. checkout
A kulcsszóval lekérhet egy, az erőforrás részeként definiált adattáratrepository
. A séma teljes információiért tekintse meg a steps.checkout definícióját.
További információ: Több adattár megtekintése a folyamatban.
Tárolók erőforrásdefiníciója
Ha a CI/CD-folyamatok részeként tárolólemezképeket kell használnia, containers
használhat erőforrásokat. Az container
erőforrások lehetnek nyilvános vagy privát Docker-beállításjegyzékek vagy Azure Container Registry-példányok.
A feladat részeként használhat általános tárolóerőforrás-lemezképet, vagy használhatja az erőforrást tárolófeladatokhoz. Ha a folyamat egy vagy több szolgáltatás támogatását igényli, létre kell hoznia és csatlakoznia kell a szolgáltatástárolókhoz. Kötetekkel adatokat oszthat meg a szolgáltatások között.
Ha a folyamat részeként egy Docker-beállításjegyzékből származó lemezképeket kell használnia, meghatározhat egy általános tárolóerőforrást. Nincs type
szükség kulcsszóra. Példa:
resources:
containers:
- container: smartHotel
endpoint: myDockerRegistry
image: smartHotelApp
A séma teljes információiért tekintse meg a resources.containers.container definícióját.
Feljegyzés
Az enabled: 'true'
összes képcímkéhez tartozó tároló-eseményindítók engedélyezésének szintaxisa eltér a többi erőforrás-eseményindító szintaxisától. Ügyeljen arra, hogy adott erőforrásokhoz a megfelelő szintaxist használja.
Azure Container Registry-erőforrástípus
Az Azure Container Registry-rendszerképek használatához használhatja az első osztályú tárolóerőforrás-típust acr
. Ezt az erőforrástípust a feladatok részeként használhatja, és engedélyezheti az automatikus folyamatindítókat.
Az automatikus folyamatindítók használatához közreműködői vagy tulajdonosi engedélyekre van szüksége az Azure Container Registryhez. További információ: Azure Container Registry-szerepkörök és engedélyek.
Az acr
erőforrástípus használatához meg kell adnia az azureSubscription
Azure-tárolóregisztrációs adatbázishoz tartozó , resourceGroup
és repository
értékeket. Például:
resources:
containers:
- container: petStore
type: acr
azureSubscription: ContosoConnection
resourceGroup: ContosoGroup
registry: petStoreRegistry
repository: myPets
trigger:
tags:
include:
- production*
Feljegyzés
Az eseményindító kiértékelése csak az alapértelmezett ágon történik. Győződjön meg arról, hogy a megfelelő alapértelmezett ágat állítja be, vagy egyesítse a YAML-fájlt az aktuális alapértelmezett ágba. A folyamat alapértelmezett ágának módosításáról a Folyamat alapértelmezett ága című témakörben talál további információt.
Tárolóerőforrás-változók
Miután erőforrásként definiált egy tárolót, a tárolórendszerkép metaadatai változókként kerülnek át a folyamatba. Az olyan információk, mint a lemezkép, a beállításjegyzék és a kapcsolat részletei a tároló üzembe helyezési feladataiban használt összes feladathoz elérhetők.
A tárolóerőforrás-változók a Docker és az Azure Container Registry használatával működnek. A helyi rendszerképtárolókhoz nem használhat tárolóerőforrás-változókat. A location
változó csak a acr
tárolóerőforrások típusára vonatkozik.
Az alábbi példa egy Azure Resource Manager-szolgáltatáskapcsolattal rendelkezik arm-connection
. További információ: Azure-tárolóregisztrációs adatbázisok, adattárak és rendszerképek.
resources:
containers:
- container: mycontainer
type: ACR
azureSubscription: arm-connection
resourceGroup: rg-storage-eastus
registry: mycontainerregistry
repository: hello-world
trigger:
tags:
- latest
steps:
- script: echo |
echo $(resources.container.mycontainer.type)
echo $(resources.container.mycontainer.registry)
echo $(resources.container.mycontainer.repository)
echo $(resources.container.mycontainer.tag)
echo $(resources.container.mycontainer.digest)
echo $(resources.container.mycontainer.URI)
echo $(resources.container.mycontainer.location)
Csomagok erőforrásdefiníciója
A NuGet- és npm GitHub-csomagokat a YAML-folyamatokban erőforrásokként használhatja fel. Ha engedélyezni szeretné az automatizált folyamat eseményindítóit egy új csomagverzió kiadásakor, állítsa a tulajdonságot a trigger
következőre true
: .
Az erőforrások definiálásakor package
adja meg a csomag <adattárát>/<nevét> a name
tulajdonságban, és állítsa be a csomagot type
NuGet
vagy npm
a . GitHub-csomagok használatához használjon személyes hozzáférési jogkivonaton (PAT) alapuló hitelesítést, és hozzon létre egy GitHub-szolgáltatáskapcsolatot, amely a PAT-t használja.
A séma teljes információiért tekintse meg a resources.packages.package definíciót.
Alapértelmezés szerint a csomagok nem töltődnek le automatikusan a feladatokba. A letöltéshez használja a getPackage parancsot.
Az alábbi példában egy GitHub-szolgáltatáskapcsolat neve pat-contoso
egy GitHub npm-csomag neve contoso
. További információ: GitHub-csomagok.
resources:
packages:
- package: contoso
type: npm
connection: pat-contoso
name: myname/contoso
version: 7.130.88
trigger: true
pool:
vmImage: 'ubuntu-latest'
steps:
- getPackage: contoso
Webhooks erőforrásdefiníció
Feljegyzés
A webhookok az Azure DevOps Server 2020.1-ben jelentek meg.
Az összetevőket felhasználhatja, és automatizált eseményindítókat engedélyezhet folyamat-, tároló-, build- és csomagerőforrásokkal. Ezeket az erőforrásokat azonban nem használhatja az üzemelő példányok automatizálására külső események vagy szolgáltatások alapján.
A webhooks
YAML-folyamatokban található erőforrás lehetővé teszi a folyamatok integrálását olyan külső szolgáltatásokkal, mint a GitHub, a GitHub Enterprise, a Nexus és az Artifactory a munkafolyamatok automatizálásához. Bármely külső eseményre feliratkozhat webhookokon keresztül, és az események használatával aktiválhatja a folyamatokat.
A webhookok minden olyan külső webhookesemény alapján automatizálják a munkafolyamatot, amelyet nem támogatnak az első osztályú erőforrások, például folyamatok, buildek, tárolók vagy csomagok. Azon helyszíni szolgáltatások esetében is, ahol az Azure DevOps nem rendelkezik betekintést a folyamatba, konfigurálhat webhookokat a szolgáltatásban, és automatikusan aktiválhatja a folyamatokat.
Ha webhookeseményre szeretne feliratkozni, meg kell adnia egy webhook-erőforrást a folyamatban, és egy bejövő webhook-szolgáltatáskapcsolatra kell mutatnia. A webhook-erőforráson további szűrőket is meghatározhat a JSON hasznos adatadatai alapján, hogy testre szabhassa az egyes folyamatok eseményindítóit.
Amikor a bejövő webhook-szolgáltatáskapcsolat webhookeseményt kap, egy új futtatási eseményindító jelenik meg a webhookeseményre előfizetett összes folyamathoz. A feladatok JSON hasznos adatadatait változóként használhatja a formátum ${{ parameters.<WebhookAlias>.<JSONPath>}}
használatával.
A séma teljes információiért tekintse meg a resources.webhooks.webhook definícióját.
Az alábbi példa egy webhook-erőforrást határoz meg:
resources:
webhooks:
- webhook: WebHook
connection: IncomingWH
steps:
- script: echo ${{ parameters.WebHook.resource.message.title }}
Webhook-eseményindítók
A webhook-eseményindítók konfigurálásához először egy webhookot kell beállítania a külső szolgáltatásban, és a következő információkat kell megadnia:
- Kérelem URL-címe:
https://dev.azure.com/<Azure DevOps organization>/_apis/public/distributedtask/webhooks/<webhook name>?api-version=6.0-preview
- Titkos kód (nem kötelező): Ha biztonságossá kell tenni a JSON hasznos adatait, adjon meg egy titkos értéket.
Ezután létrehoz egy új bejövő webhook-szolgáltatáskapcsolatot. Ehhez a szolgáltatáskapcsolattípushoz a következő információkat kell megadnia:
- WebHook neve: Ugyanaz, mint a külső szolgáltatásban létrehozott webhook.
- Titkos kód (nem kötelező): A hasznos adatok HMAC-SHA1 kivonatának ellenőrzésére szolgál a bejövő kérés ellenőrzéséhez. Ha titkos kulcsot használt a webhook létrehozásakor, ugyanazt a titkos kulcsot kell megadnia.
- Http-fejléc: A kérelem HTTP-fejléce, amely tartalmazza a hasznos adat HMAC-SHA1 kivonatának értékét a kérés ellenőrzéséhez. A GitHub-kérelem fejléce például .
X-Hub-Signature
Ha webhook használatával szeretné aktiválni a folyamatot, küldjön egy kérést POST
a következőre https://dev.azure.com/<org_name>/_apis/public/distributedtask/webhooks/<webhook_connection_name>?api-version=6.0-preview
: . Ez a végpont nyilvánosan elérhető, és nincs szükség engedélyezésre. A kérelemnek az alábbi példához hasonló törzset kell tartalmaznia:
{
"resource": {
"message": {
"title": "Hello, world!",
"subtitle": "I'm using WebHooks!"
}
}
}
Feljegyzés
A webhook kérelemtörzséből való adatok elérése helytelen YAML-hez vezethet. A folyamatlépés - script: echo ${{ parameters.WebHook.resource.message }}
például a teljes JSON-üzenetben lekéri a folyamatot, amely érvénytelen YAML-t hoz létre. A webhook által aktivált folyamatok nem futnak, mert a létrehozott YAML érvénytelen lett.
Az alábbi kódrészlet egy másik példát mutat be, amely webhookszűrőket használ.
resources:
webhooks:
- webhook: MyWebhookTrigger
connection: MyWebhookConnection
filters:
- path: repositoryName
value: maven-releases
- path: action
value: CREATED
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host ${{ parameters.MyWebhookTrigger.repositoryName}}
Write-Host ${{ parameters.MyWebhookTrigger.component.group}}
Manuális verzióválasztó erőforrásokhoz
Amikor manuálisan aktivál egy CD YAML-folyamatot, az Azure Pipelines automatikusan kiértékeli a folyamatban definiált erőforrások alapértelmezett verzióit a megadott bemenetek alapján. Az Azure Pipelines azonban csak az ütemezett eseményindítók alapértelmezett verziójának kiértékelésekor, vagy ha nem manuálisan választ ki verziót, az Azure Pipelines csak sikeresen befejezett CI-futtatást tekint.
Futtatás létrehozásakor az erőforrás verzióválasztója segítségével manuálisan választhat másik verziót. Az erőforrás verzióválasztója támogatja a folyamat-, build-, adattár-, tároló- és csomagerőforrásokat.
A folyamaterőforrások esetében az összes elérhető futtatás megjelenik az összes ágon, a folyamat száma vagy ága alapján kereshet rajtuk, és kiválaszthatja a sikeres, sikertelen vagy folyamatban lévő futtatásokat. Ez a rugalmasság biztosítja a CD-folyamat futtatását, ha biztos benne, hogy egy futtatás az összes szükséges összetevőt előállította. Nem kell megvárnia, amíg egy CI-futtatás befejeződik, vagy nem kapcsolódó szakaszhiba miatt újrafuttatja.
Az erőforrás verzióválasztójának használatához a Futtatás folyamat panelen válassza az Erőforrások lehetőséget, majd válasszon ki egy erőforrást, és válasszon ki egy adott verziót az elérhető verziók listájából.
Az olyan erőforrások esetében, amelyekben nem lehet lekérni az elérhető verziókat(például GitHub-csomagokat), a verzióválasztó egy szövegmezőt biztosít, ahová beírhatja a futtatáshoz kiválasztandó verziót.
Erőforrás-engedélyezés YAML-folyamatokban
Az erőforrásokat engedélyezni kell a folyamatokban való használatuk előtt. Az erőforrás-tulajdonosok szabályozzák azokat a felhasználókat és folyamatokat, amelyek hozzáférhetnek az erőforrásaikhoz. A YAML-folyamatokat többféleképpen is engedélyezheti az erőforrások használatára.
Az erőforrás-felügyeleti felület használatával engedélyezheti az összes folyamat számára az erőforrás elérését. A változócsoportokat és a biztonságos fájlokat például a Folyamatok erőforrástár lapján, az ügynökkészleteket és a szolgáltatáskapcsolatokat pedig a Project beállításai kezelik. Ez az engedélyezés akkor kényelmes, ha nem kell korlátoznia az erőforrásokhoz való hozzáférést, például teszterőforrásokhoz.
Folyamat létrehozásakor a YAML-fájlban hivatkozott összes erőforrás automatikusan engedélyezve lesz a folyamat számára, ha rendelkezik felhasználói szerepkörrel ezekhez az erőforrásokhoz.
Ha hozzáad egy erőforrást egy YAML-fájlhoz, és a build egy hasonló
Could not find a <resource> with name <resource-name>. The <resource> does not exist or has not been authorized for use.
hibával hiúsul meg, megjelenik egy lehetőség az erőforrások engedélyezésére a sikertelen builden.Ha Tagja az erőforrás Felhasználói szerepkörének, akkor ezt a lehetőséget választva engedélyezheti az erőforrást a sikertelen builden. Miután engedélyezte az erőforrást, elindíthat egy új buildet.
Ellenőrizze, hogy a projekt ügynökkészletének biztonsági szerepkörei helyesek-e.
Az erőforrások jóváhagyási ellenőrzése
Jóváhagyási ellenőrzések és sablonok használatával manuálisan szabályozhatja, hogy mikor fut egy erőforrás. A szükséges sablon-jóváhagyási ellenőrzéssel megkövetelheti, hogy az erőforrást vagy környezetet használó folyamatok egy adott YAML-sablonból terjednek ki.
A szükséges sablon-jóváhagyás beállítása biztosítja, hogy az erőforrás csak meghatározott feltételek mellett legyen használatban, és fokozza a biztonságot. Ha többet szeretne megtudni a folyamatok biztonságának sablonokkal való növeléséről, olvassa el a Sablonok használata a biztonsághoz című témakört.
Nyomonkövethetőség
Az Azure Pipelines teljes nyomon követhetőséget biztosít a folyamat vagy az üzembe helyezési feladat szintjén felhasznált erőforrásokhoz.
Folyamat nyomon követhetősége
Az Azure Pipelines az alábbi információkat jeleníti meg minden folyamatfuttatáshoz:
- Ha egy erőforrás aktiválta a folyamatot, a folyamatot aktiváló erőforrás.
- Az erőforrás verziója és a felhasznált összetevők.
- Az egyes erőforrásokhoz társított véglegesítések.
- Az egyes erőforrásokhoz társított munkaelemek.
A környezetek visszakövethetősége
Amikor egy folyamat üzembe helyez egy környezetet, megjelenik a felhasznált erőforrások listája. A nézet tartalmazza az üzembehelyezési feladatok részeként felhasznált erőforrásokat, valamint a hozzájuk tartozó véglegesítéseket és munkaelemeket.
Társított CD-folyamatok információi CI-folyamatokban
A végpontok közötti nyomon követhetőség biztosítása érdekében nyomon követheti, hogy mely CD-folyamatok használnak fel egy adott CI-folyamatot az pipelines
erőforráson keresztül. Ha más folyamatok is felhasználják a CI-folyamatot, a Futtatás nézetben megjelenik egy Társított folyamatok lap. A nézet az összes OLYAN CD YAML-folyamatot megjeleníti, amely felhasználta a CI-folyamatot és az abból származó összetevőket.
Erőforrás-eseményindítóval kapcsolatos problémák
Az erőforrás-eseményindítók végrehajtása sikertelen lehet, mert:
- A megadott szolgáltatáskapcsolat forrása érvénytelen, szintaxishibák vannak az eseményindítóban, vagy az eseményindító nincs konfigurálva.
- Az eseményindítók feltételei nem egyeznek.
Ha meg szeretné tudni, hogy miért nem sikerült végrehajtani a folyamatindítókat, válassza az Eseményindító problémák menüelemet a folyamatdefiníció oldalán. Az eseményindítóval kapcsolatos problémák csak a nem adattárbeli erőforrások esetében érhetők el.
Az Eseményindító problémái lapon a hibaüzenetek és a figyelmeztető üzenetek azt írják le, hogy miért hiúsult meg az eseményindító.
GYIK
Mikor érdemes folyamaterőforrásokat, a letöltési parancsikont vagy a Folyamatösszetevők letöltése feladatot használni?
pipelines
Az erőforrások használatával a CI-folyamatokból származó összetevőket használhatja fel, és automatizált triggereket is konfigurálhat. Az erőforrás teljes körű betekintést nyújt a folyamatba a felhasznált verzió, az összetevők, a véglegesítések és a munkaelemek megjelenítésével. Folyamaterőforrás definiálásakor a rendszer automatikusan letölti a társított összetevőket az üzembe helyezési feladatokban.
A download
parancsikon használatával letöltheti az összetevőket a buildelési feladatokban, vagy felülbírálhatja a letöltési viselkedést az üzembe helyezési feladatokban. További információt a steps.download definícióban talál.
A Folyamatösszetevők letöltése feladat nem biztosít nyomon követhetőséget vagy eseményindítókat, de néha érdemes közvetlenül használni ezt a feladatot. Előfordulhat például, hogy egy szkriptfeladat egy másik sablonban van tárolva, amelyhez le kell tölteni egy build összetevőit. Vagy előfordulhat, hogy nem szeretne folyamaterőforrást hozzáadni egy sablonhoz. A függőségek elkerülése érdekében a Folyamatösszetevők letöltése tevékenységgel az összes buildinformációt átadhatja egy tevékenységnek.
Hogyan aktiválhatok folyamatfuttatást a Docker Hub rendszerképének frissítésekor?
A tárolóerőforrás-eseményindító nem érhető el a Docker Hubhoz YAML-folyamatokhoz, ezért be kell állítania egy klasszikus kiadási folyamatot.
- Hozzon létre egy új Docker Hub szolgáltatáskapcsolatot.
- Hozzon létre egy klasszikus kiadási folyamatot, és adjon hozzá egy Docker Hub-összetevőt. Állítsa be a szolgáltatáskapcsolatot, és válassza ki a névteret, az adattárat, a verziót és a forrás aliast.
- Válassza ki az eseményindítót, és állítsa be a folyamatos üzembehelyezési eseményindítót engedélyezésre. Minden Docker-leküldés, amely a kijelölt adattárba történik, létrehoz egy kiadást.
- Hozzon létre egy új szakaszt és feladatot. Adjon hozzá két feladatot, a Docker-bejelentkezést és a Basht.
- A Docker-feladat rendelkezik a
login
műveletekkel, és bejelentkezik a Docker Hubba. - A Bash-feladat fut
docker pull <hub-user>/<repo-name>[:<tag>]
.
- A Docker-feladat rendelkezik a
Hogyan érvényesíthetem és háríthatom el a webhookomat?
Hozzon létre egy szolgáltatáskapcsolatot.
Hivatkozzon a szolgáltatáskapcsolatra, és nevezze el a webhookot a
webhooks
szakaszban.resources: webhooks: - webhook: MyWebhookTriggerAlias connection: MyServiceConnection
Futtassa a folyamatot. A webhook az Azure-ban jön létre a szervezet elosztott feladataként.
POST
Api-hívás végrehajtása érvényes JSON-val a törzsbenhttps://dev.azure.com/<organization>/_apis/public/distributedtask/webhooks/<webhook-name>?api-version=<apiversion>
. Ha 200 állapotkód választ kap, a webhook készen áll a folyamat általi használatra.
Ha 500 állapotkód-választ kap a hibával Cannot find webhook for the given webHookId ...
, előfordulhat, hogy a kód olyan ágban van, amely nem az alapértelmezett ág. A probléma megoldása:
- Válassza a Szerkesztés lehetőséget a folyamatlapon.
- A További műveletek menüben válassza az Eseményindítók lehetőséget.
- Válassza a YAML lapot, majd a Források lekérése lehetőséget.
- A manuális és ütemezett buildek alapértelmezett ága alatt frissítse a funkcióágat.
- Válassza a Mentés > üzenetsor lehetőséget.
- A folyamat sikeres futtatása után hajtson végre egy
POST
API-hívást érvényes JSON-val a törzsbenhttps://dev.azure.com/<organization>/_apis/public/distributedtask/webhooks/<webhook-name>?api-version=<apiversion>
. Most 200 állapotkód választ kell kapnia.