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. If it is in a different pipelines folder, it needs to be the full path, e.g. MyTeam/MyPipeline
version: string # the pipeline run number (Build.BuildNumber) to pick the artifact, defaults to latest pipeline successful run 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 for 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 version
hatá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 releases
main
ágon fut, mindkettővel Verified
és Signed
, valamint a Production
PreProduction
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.
A változószintaxisról további információt a Változók definiálása című témakörben talál.
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 builds
buildelé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ó.
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ó.
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.
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.
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.
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.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.
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.
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.
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.
Az erőforrás és a felhasznált összetevők verziója.
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. 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.
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.
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.
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.
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.
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. Válassza ki a névteret, az adattárat, a verziót és a forrás aliasát.
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.
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 ésrepo-name
tag
írja behub-user
az értékeket.
Hogyan érvényesíthetem és háríthatom el a webhookokat?
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 folyamat futtatásakor a webhook az Azure-ban lesz létrehozva 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ávalCannot find webhook for the given webHookId ...
, előfordulhat, hogy a kód olyan ágban van, amely nem az alapértelmezett ág.- Nyissa meg a folyamatot.
- Válassza a Szerkesztés lehetőséget.
- Válassza a További műveletek menüt .
- Válassza az Eseményindítók>YAML-források> lekérése lehetőséget.
- Nyissa meg az Alapértelmezett ágat a manuális és ütemezett buildekhez a funkcióág frissítéséhez.
- 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.
Kapcsolódó cikkek
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: