Erőforrások definiálása a YAML-ben

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

A YAML-erőforrások a folyamatok, buildek, adattárak, tárolók, csomagok és webhookok forrásai. Az erőforrások emellett a folyamatban használt szolgáltatások teljes nyomon követhetőségét is biztosítják, beleértve a verziót, az összetevőket, a kapcsolódó véglegesítéseket és a munkaelemeket. A definiált adatforrás a folyamatban bárhol felhasználható. A DevOps-munkafolyamatot pedig teljes mértékben automatizálhatja, ha feliratkozik az erőforrások eseményeinek aktiválására.

További információ: Az erőforrások és az erőforrások YAML-sémadefiníciója.

Séma

resources:
  pipelines: [ pipeline ]  
  builds: [ build ]
  repositories: [ repository ]
  containers: [ container ]
  packages: [ package ]
  webhooks: [ webhook ]

Változók

Amikor egy erőforrás elindít egy folyamatot, a következő változók lesznek beállítva:

resources.triggeringAlias
resources.triggeringCategory

Ezek az értékek üresek, ha egy erőforrás nem indít el folyamatfuttatást. A változónak Build.Reason ezeknek az értékeknek a beállításához kell lennie ResourceTrigger .

Erőforrás definiálása pipelines

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. pipelines csak az Azure Pipelines dedikált erőforrása. A CD-munkafolyamatok folyamaterőforrásán is beállíthat eseményindítókat.

Az erőforrásdefinícióban egy egyedi érték, pipeline amellyel később hivatkozhat a folyamaterőforrásra. source az összetevőt előállító folyamat neve. A megadott címkével pipeline hivatkozhat a folyamat erőforrására a folyamat más részeiből, például folyamaterőforrás-változók használatakor vagy összetevők letöltésekor.

A folyamatok letöltésének alternatív módjáért tekintse meg a folyamatösszetevők tevékenységeit.

resources:        # types: pipelines | builds | repositories | containers | packages
  pipelines:
  - pipeline: string  # identifier for the resource used in pipeline resource variables
    project: string # project for the source; optional for current project
    source: string  # name of the pipeline that produces an artifact
    version: string  # the pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; Used only for manual or scheduled triggers
    branch: string  # branch to pick the artifact, optional; defaults to all branches; Used only for manual or scheduled triggers
    tags: [ string ] # list of tags required on the pipeline to pickup default artifacts, optional; Used only for manual or scheduled triggers
    trigger:     # triggers aren't enabled by default unless you add trigger section to the resource
      branches:  # branch conditions to filter the events, optional; Defaults to all branches.
        include: [ string ]  # branches to consider the trigger events, optional; Defaults to all branches.
        exclude: [ string ]  # branches to discard the trigger events, optional; Defaults to none.
      tags: [ string ]  # list of tags to evaluate for trigger event, optional
      stages: [ string ] # list of stages to evaluate for trigger event, optional

Fontos

Erőforrás-eseményindító definiálásakor, ha a folyamat erőforrása ugyanabból az adattárból (például saját) származik, mint az aktuális folyamat, az eseményindító ugyanazt az ágat követi, és véglegesíti az eseményt. Ha azonban a folyamaterőforrás egy másik adattárból származik, az aktuális folyamat az öntárház alapértelmezett ágán aktiválódik.

Az összetevő verziójának kiértékelése

Az erőforrás-folyamat összetevőinek verziója a folyamat aktiválásától függ.

Ha a folyamat azért fut, mert manuálisan aktiválta, vagy ütemezett futtatás miatt, az összetevő verzióját a , branchés tags a tulajdonságok értékei versionhatározzák meg.

Megadott tulajdonságok Összetevő verziója
version A buildből származó összetevők a megadott futtatási számmal
branch A megadott ágon végrehajtott 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égrehajtott legújabb build összetevői, amelyek az összes megadott címkét tartalmaznak
Egyik sem A legújabb build összetevői az összes ágban

Lássunk egy példát. Tegyük fel, hogy a folyamat a következő erőforrásdefiníciót tartalmazza.

resources:
  pipelines:
  - pipeline: MyCIAlias
    project: Fabrikam
    source: Farbrikam-CI
    branch: main      ### This branch input cannot have wild cards. It is used for evaluating default version when pipeline is triggered manually or scheduled.
    tags:               ### These tags are used for resolving default version when the pipeline is triggered manually or scheduled
    - Production        ### Tags are AND'ed
    - PreProduction

Amikor manuálisan aktiválja a folyamatot a futtatáshoz, a folyamat összetevőinek MyCIAlias verziója az ágon main végzett legújabb buildek egyike, amelynek címkéi Production és PrepProduction címkéi vannak.

Amikor a folyamat aktiválódik, mert az egyik erőforrás-folyamat befejeződött, az összetevők verziója az eseményindító folyamat egyik 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 Az aktuális folyamat új futtatása akkor aktiválódik, ha az erőforrás-folyamat sikeresen befejezi a futtatásokat az include ágakon
tags Az aktuális folyamat új futtatása akkor aktiválódik, ha az erőforrás-folyamat sikeresen befejez egy olyan futtatási folyamatot, amely az összes megadott címkével van megjelölve
stages Az aktuális folyamat új futtatása akkor aktiválódik, ha az erőforrás-folyamat sikeresen végrehajtotta a megadott stages
branches, tagsés stages Az aktuális folyamat új futtatása akkor aktiválódik, ha az erőforrás-folyamat futtatása megfelel az összes ág, címke és fázisfeltételnek
trigger: true Az aktuális folyamat új futtatása akkor aktiválódik, ha az erőforrás-folyamat sikeresen befejezi a futtatásokat
Semmit Az aktuális folyamat új futtatása nem aktiválódik, ha az erőforrás-folyamat sikeresen befejezi a futtatásokat

Lássunk egy példát. Tegyük fel, hogy a folyamat a következő erőforrásdefiníciót tartalmazza.

resources:
  pipelines:
  - pipeline: SmartHotel
    project: DevOpsProject
    source: SmartHotel-CI
    trigger:
      branches:
        include:
        - releases/*
        - main
        exclude:
        - topic/*
      tags: 
      - Verified
      - Signed
      stages:
      - Production
      - PreProduction
      

A folyamat akkor fog futni, amikor a SmartHotel-CI folyamat az egyik ágon vagy az releasesmain ágon fut, mindkettővel Verified és Signed, valamint a ProductionPreProduction szakaszokkal is meg van címkézve.

download folyamatokhoz

Az aktuális folyamatból és az összes erőforrásból származó összes pipeline összetevő automatikusan letöltődik, és minden deployment feladat elején elérhetővé válik. Ezt a viselkedést felülbírálhatja. További információ: Folyamatösszetevők. A rendszer nem tölti le automatikusan a normál "feladat" összetevőket. Szükség esetén kifejezetten használható download .

steps:
- download: [ current | pipeline resource identifier | none ] # disable automatic download if "none"
  artifact: string ## artifact name, optional; downloads all the available artifacts if not specified
  patterns: string # patterns representing files to include; optional

Az erőforrásból származó pipeline összetevők a mappába lesznek $(PIPELINE.WORKSPACE)/<pipeline-identifier>/<artifact-identifier> letöltve.

Folyamaterőforrás-változók

Minden futtatás során a folyamaterőforrás metaadatai előre definiált változók formájában minden feladat számára elérhetők. Ez <Alias> a folyamaterőforráshoz megadott azonosító. A folyamaterőforrások változói csak futásidőben érhetők el.

resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID

További információ: Folyamaterőforrás metaadatai előre definiált változókként.

Erőforrás definiálása builds

Ha egy külső CI-buildrendszerrel rendelkezik, amely összetevőket állít elő, az összetevőket erőforrással builds is felhasználhatja. Az builds erőforrás lehet bármilyen külső CI-rendszer, például a Jenkins, a TeamCity, a CircleCI stb.

resources:        # types: pipelines | builds | repositories | containers | packages
  builds:
  - build: string   # identifier for the build resource
    type: string   # the type of your build service like Jenkins, circleCI etc.
    connection: string   # service connection for your build service.
    source: string   # source definition of the build
    version: string   # the build number to pick the artifact, defaults to Latest successful build
    trigger: boolean    # Triggers aren't enabled by default and should be explicitly set

builds bővíthető kategória. Megírhat egy bővítményt, amely összetevőket használ fel a buildelési szolgáltatásból, és bevezet egy új típusú szolgáltatást a buildsbuildelési szolgáltatás részeként. A Jenkins egy erőforrástípus a következőben builds: .

Fontos

Az eseményindítók csak az üzemeltetett Jenkins esetében támogatottak, ahol az Azure DevOps szemszögéből látható a Jenkins-kiszolgálóval.

downloadBuild feladat buildekhez

Az erőforrásból származó összetevőket a build feladat részeként használhatja fel a downloadBuild tevékenység használatával. A megadott erőforrás típusa build alapján ez a feladat automatikusan feloldja a szolgáltatás megfelelő letöltési feladatát a futási idő alatt.

Az erőforrásból származó build összetevők a mappába lesznek $(PIPELINE.WORKSPACE)/<build-identifier>/ letöltve.

Fontos

build az erőforrás-összetevők nem töltődnek le automatikusan a feladatokban/üzembe helyezési feladatokban. Explicit módon hozzá kell adnia a feladatot az downloadBuild összetevők használatához.

- downloadBuild: string # identifier for the resource from which to download artifacts
  artifact: string # artifact to download; if left blank, downloads all artifacts associated with the resource provided
  patterns: string | [ string ] # a minimatch path or list of [minimatch paths](tasks/file-matching-patterns.md) to download; if blank, the entire artifact is downloaded

Erőforrás definiálása repositories

Ha a folyamat sablonjai egy másik adattárban vannak, vagy ha több adattárbeli kivételt szeretne használni egy szolgáltatáskapcsolatot igénylő adattárral, akkor erről az adattárról a rendszernek kell tudnia. A repository kulcsszó lehetővé teszi egy külső adattár megadását.

resources:
    repositories:
    - repository: string # Required as first property. Alias for the repository.
      endpoint: string # ID of the service endpoint connecting to this repository.
      trigger: none | trigger | [ string ] # CI trigger for this repository, no CI trigger if skipped (only works for Azure Repos).
      name: string # repository name (format depends on 'type'; does not accept variables).
      ref: string # ref name to checkout; defaults to 'refs/heads/main'. The branch checked out by default whenever the resource trigger fires.
      type: string # Type of repository: git, github, githubenterprise, and bitbucket.

Típus

A folyamatok a következő értékeket támogatják az adattártípushoz: git, github, githubenterpriseés bitbucket. A git típus az Azure Repos Git-adattárakra vonatkozik.

Típus megadva Eredmény Példa
type: git Az name érték ugyanabban a projektben egy másik adattárra hivatkozik. name: otherRepo Ha egy másik, ugyanazon szervezeten belüli projekt adattárára szeretne hivatkozni, az előtag az adott projekt nevével együtt szerepeljen. Például: name: OtherProject/otherRepo.
type: github Az name érték a GitHub-adattár teljes neve, amely magában foglalja a felhasználót vagy a szervezetet. name: Microsoft/vscode
type: githubenterprise az name érték a GitHub Enterprise-adattár teljes neve, és tartalmazza a felhasználót vagy a szervezetet. name: Microsoft/vscode
type: bitbucket Az name érték a Bitbucket Cloud-adattár teljes neve, amely magában foglalja a felhasználót vagy a szervezetet. name: MyBitbucket/vscode

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.

Változók

Minden futtatásban az adattárerőforrás metaadatai minden feladat számára elérhetők futásidejű változók formájában. Az <Alias> adattár-erőforráshoz megadott azonosító.

resources.repositories.<Alias>.name
resources.repositories.<Alias>.ref
resources.repositories.<Alias>.type
resources.repositories.<Alias>.id
resources.repositories.<Alias>.url

Változók

Minden futtatásban az adattárerőforrás metaadatai minden feladat számára elérhetők futásidejű változók formájában. Az <Alias> adattár-erőforráshoz megadott azonosító.

resources.repositories.<Alias>.name
resources.repositories.<Alias>.ref
resources.repositories.<Alias>.type
resources.repositories.<Alias>.id
resources.repositories.<Alias>.url
resources.repositories.<Alias>.version

Adattár felhasználására használható checkout

Használja checkout a kulcsszót az erőforrás részeként definiált adattárak felhasználásához repository .

Séma

steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
  clean: string # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
  fetchDepth: string # Depth of Git graph to fetch.
  fetchTags: string # Set to 'true' to sync tags when fetching the repo, or 'false' to not sync tags. See remarks for the default behavior.
  lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
  persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
  submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
  path: string # Where to put the repository. The default is $(Build.SourcesDirectory).
  condition: string # Evaluate this condition expression to determine whether to run this task.
  continueOnError: boolean # Continue running even on failure?
  displayName: string # Human-readable name for the task.
  target: string | target # Environment in which to run this task.
  enabled: boolean # Run this task when the job runs?
  env: # Variables to map into the process's environment.
    string: string # Name/value pairs
  name: string # ID of the step.
  timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
  retryCountOnTaskFailure: string # Number of retries if the task fails.

Az erőforrás adattárai repository nem szinkronizálódnak automatikusan a feladatokban. Az checkout adattárak beolvasása a feladatok részeként.

További információ: Több adattár megtekintése a folyamatban.

Erőforrás definiálása containers

Ha a folyamatos integrációs/folyamatos kézbesítési (CI/CD) folyamat részeként tárolórendszerképet kell használnia, ezt a használatával érheti el containers. A tárolóerőforrás lehet nyilvános vagy privát Docker Registry vagy Azure Container Registry.

Ha a folyamat részeként lemezképeket kell használnia a Docker-beállításjegyzékből, meghatározhat egy általános tárolóerőforrást (nem type kulcsszóra van szükség).

resources:
  containers:
  - container: string  # identifier (A-Z, a-z, 0-9, and underscore)
    image: string  # container image name
    options: string  # arguments to pass to container at startup
    endpoint: string  # reference to a service connection for the private registry
    env: { string: string }  # list of environment variables to add
    ports: [ string ] # ports to expose on the container
    volumes: [ string ] # volumes to mount on the container
    mapDockerSocket: bool # whether to map in the Docker daemon socket; defaults to true
    mountReadOnly:  # volumes to mount read-only - all default to false
      externals: boolean  # components required to talk to the agent
      tasks: boolean  # tasks required by the job
      tools: boolean  # installable tools like Python and Ruby
      work: boolean # the work directory

Általános tárolóerőforrást használhat a feladat részeként felhasznált rendszerképként, vagy tárolófeladatokhoz is használható. 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.

Az Azure Container Registry (ACR) első osztályú tárolóerőforrás-típusát használhatja az ACR-rendszerképek felhasználásához. Ez az erőforrástípus a feladatok részeként és az automatikus folyamatindítók engedélyezésére is használható. Az automatikus folyamatindítók használatához közreműködői vagy tulajdonosi engedélyekkel kell rendelkeznie az ACR-hez. További információ: Azure Container Registry-szerepkörök és engedélyek.

resources:          # types: pipelines | repositories | containers | builds | packages
  containers:
  - container: string # identifier for the container resource      
    type: string # type of the registry like ACR, GCR etc. 
    azureSubscription: string # Azure subscription (ARM service connection) for container registry;
    resourceGroup: string # resource group for your ACR
    registry: string # registry for container images
    repository: string # name of the container image repository in ACR
    trigger: # Triggers aren't enabled by default and need to be set explicitly
      enabled: boolean # set to 'true' to trigger on all image tags if 'tags' is unset.
      tags:
        include: [ string ]  # image tags to consider the trigger events, optional; defaults to any new tag
        exclude: [ string ]  # image tags on discard the trigger events, optional; defaults to none

Feljegyzés

A tároló eseményindítóinak engedélyezéséhez használt szintaxis az összes képcímkéhez (enabled: 'true') eltér a többi erőforrás-eseményindítóhoz használt szintaxistól. Ügyeljen arra, hogy egy adott erőforrás megfelelő szintaxisát használja.

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 rendszer a tárolórendszerkép metaadatait változók formájában továbbítja a folyamatnak. Az olyan információk, mint a lemezkép, a beállításjegyzék és a kapcsolat részletei, elérhetők a tároló üzembe helyezési feladataiban használandó összes feladathoz.

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.

resources.container.<Alias>.type
resources.container.<Alias>.registry
resources.container.<Alias>.repository
resources.container.<Alias>.tag 
resources.container.<Alias>.digest
resources.container.<Alias>.URI
resources.container.<Alias>.location

A helyváltozó csak a tárolóerőforrások típusára alkalmazható ACR .

Erőforrás definiálása packages

A YaML-folyamatokban a NuGet- és npm GitHub-csomagokat erőforrásként használhatja fel.

Erőforrások megadásakor package állítsa be a csomagot NuGet vagy npm értékre. Automatikus folyamatindítókat is engedélyezhet, ha új csomagverziót ad ki.

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 PAT-eket használ.

Alapértelmezés szerint a csomagok nem töltődnek le automatikusan a feladatokba. A letöltéshez használja a következőt getPackage: .

resources:
  packages:
    - package: myPackageAlias # alias for the package resource
      type: Npm # type of the package NuGet/npm
      connection: GitHubConnectionName # GitHub service connection with the PAT type
      name: nugetTest/nodeapp # <Repository>/<Name of the package>
      version: 1.0.1 # Version of the package to consume; Optional; Defaults to latest
      trigger: true # To enable automated triggers (true/false); Optional; Defaults to no triggers

Erőforrás definiálása webhooks

Feljegyzés

A webhookok az Azure DevOps Server 2020.1-ben jelentek meg.

Más erőforrásokkal (például csővezetékekkel, konténerekkel, építéssel és csomagokkal) leletek fogyaszthatók, és automatizált kiváltásokat engedélyezhet. A telepítési folyamatot azonban nem automatizálhatja más külső események vagy szolgáltatások alapján. Az webhooks erőforrással integrálhatja a folyamatot bármely külső szolgáltatással, és automatizálhatja a munkafolyamatot. A webhookokon keresztül feliratkozhat bármilyen külső eseményre (GitHub, GitHub Enterprise, Nexus, Artifactory stb.), és elindíthatja a pipelineseit.

A webhook-eseményindítók konfigurálásához hajtsa végre az alábbi lépéseket.

  1. Webhook beállítása a külső szolgáltatásban. A webhook létrehozásakor a következő adatokat kell megadnia:

    • Kérelem URL-címe

      https://dev.azure.com/<ADO Organization>/_apis/public/distributedtask/webhooks/<WebHook Name>?api-version=6.0-preview
      
    • Titkos kód – Nem kötelező. Ha biztonságossá szeretné tenni a JSON hasznos adatait, adja meg a Titkos értéket.

  2. Hozzon létre egy új "Bejövő webhook" szolgáltatáskapcsolatot. Ez a kapcsolat egy újonnan bevezetett szolgáltatáskapcsolat-típus, amely lehetővé teszi a következő fontos információk meghatározását:

    • Webhook neve: A webhook nevének meg kell egyeznie a külső szolgáltatásban létrehozott webhook nevével.
    • HTTP-fejléc – A kérelemben szereplő HTTP-fejléc neve, amely tartalmazza a hasznos adat HMAC-SHA1 kivonatának értékét a kérés ellenőrzéséhez. A GitHub esetében például a kérés fejléce "X-Hub-Signature".
    • Titkos kód – A titkos kód a bejövő kérelem ellenőrzéséhez használt HMAC-SHA1 kivonat ellenőrzésére szolgál (nem kötelező). Ha a webhook létrehozásakor titkot használt, akkor ugyanezt a titkos kulcsot kell megadnia.

    Incoming Webhook Service connection

  3. A YAML-folyamatokban egy új, úgynevezett webhooks erőforrástípus jelenik meg. Ha webhookeseményre szeretne feliratkozni, definiáljon egy webhook-erőforrást a folyamatban, és mutasson a Bejövő webhook szolgáltatáskapcsolatra. 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. A hasznos adatok felhasználása változók formájában a feladatokban.

  4. Amikor a Bejövő webhook szolgáltatáskapcsolat webhookeseményt kap, egy új futtatás aktiválódik a webhookeseményre előfizetett összes folyamat esetében. A feladatok JSON hasznos adatadatait a formátum használatával használhatja fel ${{ parameters.<WebhookAlias>.<JSONPath>}}

resources:
  webhooks:
    - webhook: MyWebhookTriggerAlias           ### Webhook alias
      connection: IncomingWebhookConnection    ### Incoming webhook service connection
      filters:                                 ### List of JSON parameters to filter; Parameters are AND'ed
        - path: JSONParameterPath              ### JSON path in the payload
          value: JSONParameterExpectedValue    ### Expected value in the path provided

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 és 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.

Manuális verzióválasztó az erőforrásokhoz a futtatási párbeszéd létrehozásakor

Amikor manuálisan aktivál egy CD YAML-folyamatot, a megadott bemenetek alapján automatikusan kiértékeljük a folyamatban definiált erőforrások alapértelmezett verzióját. Futtatás létrehozásakor azonban választhat egy másik verziót az erőforrásverzió-választótól.

  1. A Futtatás létrehozása panelen válassza az Erőforrások lehetőséget. Megjelenik a folyamatban felhasznált erőforrások listája.

  2. Válasszon ki egy erőforrást, és válasszon egy adott verziót az elérhető verziók listájából. Az erőforrás verzióválasztója támogatja a folyamat-, build-, adattár-, tároló- és csomagerőforrásokat.

    Pipeline Version Picker

A folyamaterőforrások esetében az összes elérhető futtatás megjelenik az összes ágban. Keresés a folyamat száma vagy ága alapján. Válasszon egy sikeres, sikertelen vagy folyamatban lévő futtatási lehetőséget. Ez a rugalmasság biztosítja a CD-folyamat futtatását, ha biztos benne, hogy az összes szükséges összetevőt előállította. Nem kell megvárnia, amíg a CI-futtatás befejeződik vagy újrafut, mert a CI-futtatás nem kapcsolódó fázishiba miatt nem működik. Azonban csak akkor tekintjük sikeresnek a CI-futtatásokat, ha kiértékeljük az ütemezett eseményindítók alapértelmezett verzióját, vagy ha nem használ manuális verzióválasztót.

Az olyan erőforrások esetében, ahol nem tudja lekérni az elérhető verziókat, például a GitHub-csomagokat, a verzióválasztó részeként megjelenítünk egy szövegmezőt, hogy meg tudja adni a futtatáshoz kiválasztandó verziót.

YAML-folyamat engedélyezése

Az erőforrásokat a használatuk előtt engedélyezni kell. Az erőforrás tulajdonosa szabályozza azokat a felhasználókat és folyamatokat, amelyek hozzáférhetnek az adott erőforráshoz. A folyamatnak jogosultnak kell lennie az erőforrás használatára. Tekintse meg az alábbi módszereket, amelyekkel engedélyezheti a YAML-folyamatokat.

  • Nyissa meg az erőforrás adminisztrációs felületét. A változócsoportokat és a biztonságos fájlokat például a Folyamatok erőforrástárlapján kezeli a rendszer. Az ügynökkészletek és a szolgáltatáskapcsolatok kezelése a Project beállításai között lehetséges. Itt engedélyezheti az összes folyamat számára az erőforrás elérését. 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 tesztelheti az erőforrásokat.

  • Amikor első alkalommal hoz létre folyamatot, a YAML-fájlban hivatkozott összes erőforrás automatikusan jogosult lesz a folyamat általi használatra, ha Ön tagja az adott erőforrás felhasználói szerepkörének. Így a folyamat létrehozásakor a YAML-fájlban hivatkozott erőforrások automatikusan engedélyezve lesznek.

  • Amikor módosítja a YAML-fájlt, és erőforrásokat ad hozzá, a build az alábbi hibához hasonló hibával meghiúsul: Could not find a <resource> with name <resource-name>. The <resource> does not exist or has not been authorized for use.

    Ebben az esetben megjelenik egy lehetőség az erőforrások engedélyezésére a sikertelen builden. Ha Ön az erőforrás Felhasználói szerepkörének tagja, ezt a lehetőséget választhatja. Miután engedélyezte az erőforrásokat, elindíthat egy új buildet.

  • Ellenőrizze, hogy a projekt ügynökkészletének biztonsági szerepkörei helyesek-e.

Erőforrások jóváhagyási ellenőrzésének beállítása

Manuálisan szabályozhatja, hogy egy erőforrás mikor fut jóváhagyási ellenőrzésekkel és sablonokkal. A szükséges sablon-jóváhagyási ellenőrzéssel megkövetelheti, hogy egy erőforrást vagy környezetet használó folyamat egy adott YAML-sablontól is kiterjedjön. A szükséges sablon-jóváhagyás beállítása növeli a biztonságot. Győződjön meg arról, hogy az erőforrás csak adott feltételek mellett lesz használatban egy sablonnal. További információ a folyamatok biztonságának növeléséről sablonokkal és erőforrásokkal.

Nyomonkövethetőségi

Teljes nyomon követhetőséget biztosítunk a folyamat- vagy üzembe helyezési feladat szintjén felhasznált erőforrásokhoz.

Folyamat nyomon követhetősége

Minden folyamatfuttatás esetében az alábbi információkat jelenítjük meg.

  • A folyamatot aktiváló erőforrás, ha azt egy erőforrás aktiválja.

    Resource trigger in a pipeline

  • Az erőforrás és a felhasznált összetevők verziója.

    Consumed artifacts in pipeline run

  • Az egyes erőforrásokhoz társított véglegesítések.

    Commits in pipeline run

  • 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. Az alábbi nézet az üzembehelyezési feladatok részeként felhasznált erőforrásokat, valamint a hozzájuk tartozó véglegesítéseket és munkaelemeket tartalmazza.

Commits in environment

Társított CD-folyamatok adatainak megjelenítése CI-folyamatokban

A végpontok közötti nyomon követhetőség érdekében nyomon követheti, hogy mely CD-folyamatok használnak egy adott CI-folyamatot. Megtekintheti azon CD YAML-folyamatok listáját, ahol egy CI-folyamat futtatása az erőforráson keresztül pipeline történik. Ha más folyamatok is felhasználják a CI-folyamatot, a futtatási nézetben megjelenik a "Társított folyamatok" lap. Itt megtalálhatja az összes olyan folyamatfuttatást, amely felhasználja a folyamatot és az abból származó összetevőket.

CD pipelines information in CI pipeline

YAML-erőforrás-eseményindító– támogatással és nyomon követhetőséggel kapcsolatos problémák

Zavaró lehet, ha a folyamatindítók végrehajtása sikertelen. Hozzáadtunk egy új menüelemet a folyamatdefiníció triggerproblémák nevű oldalához, ahol megtudhatja, miért nem hajtanak végre triggereket. A lap eléréséhez nyissa meg a folyamatelőzményeket. Az eseményindítóval kapcsolatos problémák csak nem adattárbeli erőforrásokhoz érhetők el.

Select Trigger Issues from the navigation.

Az erőforrás-eseményindítók végrehajtása a következő okokból meghiúsulhat.

  • Ha a megadott szolgáltatáskapcsolat forrása érvénytelen, vagy ha szintaxishibák vannak az eseményindítóban, az eseményindító nincs konfigurálva, ami hibát eredményez.

  • Ha az eseményindító feltételei nem egyeznek meg, az eseményindító nem lesz végrehajtva. A rendszer figyelmeztetést jelenít meg, amelyből megtudhatja, hogy miért nem egyeztek meg a feltételek.

    Trigger issues supportability

Következő lépések

GYIK

Miért érdemes folyamatokat resources használni a download parancsikon helyett?

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 társított összetevők automatikusan letöltődnek az üzembehelyezési feladatokban.

Dönthet úgy, hogy letölti az összetevőket a buildelési feladatokban, vagy felülbírálja az üzembehelyezési feladatok letöltési viselkedését download. További információ: steps.download.

Miért érdemes a Folyamatösszetevők letöltése feladat helyett használni resources ?

Ha közvetlenül használja a Folyamatösszetevők letöltése feladatot , akkor a nyomon követhetőség és az eseményindítók hiányoznak. Néha érdemes közvetlenül használni a Folyamatösszetevők letöltése feladatot. Előfordulhat például, hogy egy szkriptfeladat egy másik sablonban van tárolva, és a szkriptfeladathoz le kell tölteni egy build összetevőit. Vagy előfordulhat, hogy nem tudja, hogy egy sablont használó személy fel szeretne-e adni egy folyamaterőforrást. 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?

Egy klasszikus kiadási folyamatot kell beállítania, mert a tárolók erőforrás-eseményindítója nem érhető el a Docker Hubhoz YAML-folyamatokhoz.

  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. Válassza ki a névteret, az adattárat, a verziót és a forrás aliasát.

    Add a Docker Hub artifact.

  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 alkalommal létrehoz egy kiadást, amikor Docker-leküldés történik a kijelölt adattárba.

  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űveletet, és naplózza Önt a Docker Hubba.

  • A Bash-feladat fut docker pull <hub-user>/<repo-name>[:<tag>]. Cserélje le és repo-nametag írja be hub-useraz értékeket.

    Add Docker login and Bash tasks.

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

  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 folyamat futtatásakor a webhook az Azure-ban lesz létrehozva 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.

    1. Nyissa meg a folyamatot.
    2. Válassza a Szerkesztés lehetőséget.
    3. Válassza a További műveletek menüt Select more actions menu .
    4. Válassza az Eseményindítók>YAML-források> lekérése lehetőséget.
    5. Nyissa meg az Alapértelmezett ágat a manuális és ütemezett buildekhez a funkcióág frissítéséhez.
    6. Válassza a Mentés > üzenetsor lehetőséget.
    7. 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.