Megosztás a következőn keresztül:


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, vagy selfaz 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 branchtags 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 releasesmain ágon fut
  • Mindkét címkével van Verified megjelölve, és Signed
  • Befejezi mind a szakaszokat, mind a ProductionPreProduction 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 downloadnone, 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 buildsré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 commonvan, í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 commonvan, í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 azureSubscriptionAzure-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

A számítási feladatok identitás-összevonását használó szolgáltatáskapcsolatok nem támogatottak a azureSubscription.

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 typeNuGet vagy npma . 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

Képernyőkép a bejövő webhook szolgáltatáskapcsolatról.

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.

Képernyőkép az adattár erőforrásverzió-választóját ábrázoló képernyőképrő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.

Képernyőkép a környezetbeli véglegesítésekről.

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.

Képernyőkép a CD-folyamatok információiról a CI-folyamatokban.

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.

Képernyőkép az eseményindítóval kapcsolatos problémákról a főfolyamat oldalán.

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ó.

Képernyőkép az eseményindítók támogatottságával kapcsolatos problémákról.

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.

  1. Hozzon létre egy új Docker Hub szolgáltatáskapcsolatot.
  2. 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.
  3. 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.
  4. 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>].

Hogyan érvényesíthetem és háríthatom el a webhookomat?

  1. Hozzon létre egy szolgáltatáskapcsolatot.

  2. Hivatkozzon a szolgáltatáskapcsolatra, és nevezze el a webhookot a webhooks szakaszban.

    resources:
      webhooks:
        - webhook: MyWebhookTriggerAlias
          connection: MyServiceConnection
    
  3. Futtassa a folyamatot. A webhook az Azure-ban jön létre a szervezet elosztott feladataként.

  4. 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:

  1. Válassza a Szerkesztés lehetőséget a folyamatlapon.
  2. A További műveletek menüben válassza az Eseményindítók lehetőséget.
  3. Válassza a YAML lapot, majd a Források lekérése lehetőséget.
  4. A manuális és ütemezett buildek alapértelmezett ága alatt frissítse a funkcióágat.
  5. Válassza a Mentés > üzenetsor lehetőséget.
  6. A folyamat sikeres futtatása után hajtson végre egy POST API-hívást érvényes JSON-val a törzsben https://dev.azure.com/<organization>/_apis/public/distributedtask/webhooks/<webhook-name>?api-version=<apiversion>. Most 200 állapotkód választ kell kapnia.