Klasszikus kiadású és összetevő-változók

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

A klasszikus kiadási és összetevő-változók kényelmes módot biztosítanak az adatok cseréjére és átvitelére a folyamat során. Minden változó sztringként van tárolva, és az értéke változhat a folyamat futtatásai között.

A változók eltérnek a futtatókörnyezeti paraméterektől, amelyek csak a sablon elemzésekor érhetők el.

A DevOps CI/CD-folyamatok minden szakaszában az alkalmazás üzembe helyezésének feladatainak megírása során a változók segítenek a következőkben:

  • Definiáljon egyszer egy általánosabb üzembehelyezési folyamatot, majd szabja testre egyszerűen az egyes fázisokhoz. Egy változó például a webes üzembe helyezés kapcsolati sztring ábrázolására használható, és ennek a változónak az értéke egyik fázisról a másikra módosítható. Ezek egyéni változók.

  • Az üzembe helyezési folyamat futtatásához használt adott kiadás, fázis, összetevők vagy ügynök környezetére vonatkozó információk használata. Előfordulhat például, hogy a szkriptnek hozzá kell férnie a build helyéhez a letöltéshez, vagy az ügynök munkakönyvtárához az ideiglenes fájlok létrehozásához. Ezek alapértelmezett változók.

Feljegyzés

YAML-folyamatok esetén további részletekért tekintse meg a felhasználó által definiált változókat és az előre definiált változókat .

Alapértelmezett változók

A végrehajtási környezettel kapcsolatos információk elérhetővé válnak a tevékenységek alapértelmezett változókon keresztüli futtatásához. A feladatok és szkriptek ezeket a változókat használhatják arra, hogy információkat találjanak a rendszerről, kiadásról, fázisról vagy ügynökről, amelyben futnak. A System.Debug kivételével ezek a változók írásvédettek, és értékeiket a rendszer automatikusan beállítja. A legfontosabb változók némelyikét az alábbi táblázatok ismertetik. A teljes lista megtekintéséhez tekintse meg az összes változó aktuális értékeit.

Tipp.

Megtekintheti egy kiadás összes változójának aktuális értékeit, és egy alapértelmezett változóval futtathat kiadást hibakeresési módban.

Rendszer

Változó neve Leírás
System.TeamFoundationServerUri A szolgáltatáskapcsolat URL-címe az Azure Pipelinesban. Használja ezt a szkriptekből vagy feladatokból az Azure Pipelines REST API-k meghívásához.

Példa: https://fabrikam.vsrm.visualstudio.com/
System.TeamFoundationCollectionUri A Team Foundation-gyűjtemény vagy az Azure Pipelines URL-címe. Használja ezt a szkriptekből vagy feladatokból a REST API-k meghívásához más szolgáltatásokon, például a Build és a Verzió vezérlőn.

Példa: https://dev.azure.com/fabrikam/
System.CollectionId Annak a gyűjteménynek az azonosítója, amelyhez ez a build vagy kiadás tartozik.

Példa: 6c6f3423-1c84-4625-995a-f7f143a1e43d
System.DefinitionId Annak a kiadási folyamatnak az azonosítója, amelyhez az aktuális kiadás tartozik.

Példa: 1
System.TeamProject Annak a projektnek a neve, amelyhez ez a build vagy kiadás tartozik.

Példa: Fabrikam
System.TeamProjectId Annak a projektnek az azonosítója, amelyhez ez a build vagy kiadás tartozik.

Példa: 79f5c12e-3337-4151-be41-a268d2c73344
System.ArtifactsDirectory Az a könyvtár, amelybe az összetevők letöltődnek a kiadás üzembe helyezése során. A címtár minden üzembe helyezés előtt törlődik, ha az összetevőket le kell tölteni az ügynökbe. Ugyanaz, mint az Agent.ReleaseDirectory és a System.DefaultWorkingDirectory.

Példa: C:\agent\_work\r1\a
System.DefaultWorkingDirectory Az a könyvtár, amelybe az összetevők letöltődnek a kiadás üzembe helyezése során. A címtár minden üzembe helyezés előtt törlődik, ha az összetevőket le kell tölteni az ügynökbe. Ugyanaz, mint az Agent.ReleaseDirectory és a System.ArtifactsDirectory.

Példa: C:\agent\_work\r1\a
System.WorkFolder Az ügynök munkakönyvtára, ahol az almappák minden buildhez vagy kiadáshoz létrejönnek. Ugyanaz, mint az Agent.RootDirectory és az Agent.WorkFolder.

Példa: C:\agent\_work
System.Debug Ez az egyetlen rendszerváltozó, amelyet a felhasználók állíthatnak be . Állítsa ezt igaz értékre, hogy hibakeresési módban futtassa a kiadást.

Példa: true

Felszabadítás

Változó neve Leírás
Release.AttemptNumber A kiadás üzembe helyezésének száma ebben a szakaszban.

Példa: 1
Release.DefinitionEnvironmentId A fázis azonosítója a megfelelő kiadási folyamatban.

Példa: 1
Release.DefinitionId Annak a kiadási folyamatnak az azonosítója, amelyhez az aktuális kiadás tartozik.

Példa: 1
Release.DefinitionName Annak a kiadási folyamatnak a neve, amelyhez az aktuális kiadás tartozik.

Példa: fabrikam-cd
Release.Deployment.RequestedFor A jelenleg folyamatban lévő üzembe helyezést aktiváló (elindított) identitás megjelenítendő neve.

Példa: Mateo Escobedo
Release.Deployment.RequestedForemail A jelenleg folyamatban lévő üzembe helyezést aktiváló (elindított) identitás e-mail-címe.

Példa: mateo@fabrikam.com
Release.Deployment.RequestedForId Annak az identitásnak az azonosítója, amely aktiválta (elindította) a jelenleg folyamatban lévő üzembe helyezést.

Példa: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.DeploymentID Az üzembe helyezés azonosítója. Feladatonként egyedi.

Példa: 254
Release.DeployPhaseID Annak a fázisnak az azonosítója, amelyben az üzembe helyezés fut.

Példa: 127
Release.EnvironmentId A fázispéldány azonosítója egy olyan kiadásban, amelyre az üzembe helyezés jelenleg folyamatban van.

Példa: 276
Release.EnvironmentName Annak a fázisnak a neve, amelyre az üzembe helyezés jelenleg folyamatban van.

Példa: Dev
Release.EnvironmentUri A fázispéldány URI-ja egy olyan kiadásban, amelyre az üzembe helyezés jelenleg folyamatban van.

Példa: vstfs://ReleaseManagement/Environment/276
Release.Environments. {stage-name}.status A fázis üzembe helyezési állapota.

Példa: InProgress
Release.PrimaryArtifactSourceAlias Az elsődleges összetevőforrás aliasa

Példa: fabrikam\_web
Release.Reason Az üzembe helyezés oka. A támogatott értékek a következők:
ContinuousIntegration - a kiadás a build befejezése után a folyamatos üzembe helyezésben kezdődött.
Manual - a kiadás manuálisan indult el.
None - az üzembehelyezési ok nincs megadva.
Schedule - a kiadás ütemezésből indult.
Release.ReleaseDescription A kiadás időpontjában megadott szöveges leírás.

Példa: Critical security patch
Release.ReleaseId Az aktuális kiadási rekord azonosítója.

Példa: 118
Release.ReleaseName Az aktuális kiadás neve.

Példa: Release-47
Release.ReleaseUri Az aktuális kiadás URI-ja.

Példa: vstfs://ReleaseManagement/Release/118
Release.ReleaseWebURL A kiadás URL-címe.

Példa: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary
Release.RequestedFor A kiadást aktiváló identitás megjelenítendő neve.

Példa: Mateo Escobedo
Release.RequestedForemail A kiadást kiváltó identitás e-mail-címe.

Példa: mateo@fabrikam.com
Release.RequestedForId A kiadást kiváltó identitás azonosítója.

Példa: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.SkipArtifactsDownload Logikai érték, amely meghatározza, hogy kihagyja-e az összetevők letöltését az ügynökbe.

Példa: FALSE
Release.TriggeringArtifact.Alias A kiadást kiváltó összetevő aliasa. Ez üres, amikor a kiadást manuálisan ütemezték vagy aktiválták.

Példa: fabrikam\_app

Kiadási fázis

Változó neve Leírás
Release.Environments. {stage name}. Állapot A kiadás üzembe helyezésének állapota egy adott szakaszban.

Példa: NotStarted

Ügynök

Változó neve Leírás
Agent.Name Az ügynök neve az ügynökkészletben regisztráltként. Ez valószínűleg eltér a számítógép nevétől.

Példa: fabrikam-agent
Agent.MachineName Annak a számítógépnek a neve, amelyen az ügynök konfigurálva van.

Példa: fabrikam-agent
Agent.Version Az ügynökszoftver verziója.

Példa: 2.109.1
Agent.JobName A futó feladat neve, például kiadás vagy build.

Példa: Release
Agent.HomeDirectory Az a mappa, amelyben az ügynök telepítve van. Ez a mappa tartalmazza az ügynök kódját és erőforrásait.

Példa: C:\agent
Agent.ReleaseDirectory Az a könyvtár, amelybe az összetevők letöltődnek a kiadás üzembe helyezése során. A címtár minden üzembe helyezés előtt törlődik, ha az összetevőket le kell tölteni az ügynökbe. Ugyanaz, mint a System.ArtifactsDirectory és a System.DefaultWorkingDirectory.

Példa: C:\agent\_work\r1\a
Agent.RootDirectory Az ügynök munkakönyvtára, ahol az almappák minden buildhez vagy kiadáshoz létrejönnek. Ugyanaz, mint az Agent.WorkFolder és a System.WorkFolder.

Példa: C:\agent\_work
Agent.WorkFolder Az ügynök munkakönyvtára, ahol az almappák minden buildhez vagy kiadáshoz létrejönnek. Ugyanaz, mint az Agent.RootDirectory és a System.WorkFolder.

Példa: C:\agent\_work
Agent.DeploymentGroupId Annak a telepítési csoportnak az azonosítója, amellyel az ügynök regisztrálva van. Ez csak az üzembehelyezési csoport feladataiban érhető el.

Példa: 1

Általános összetevő

A kiadásban hivatkozott összes összetevőhöz a következő összetevőváltozókat használhatja. Nem minden változó értelmezhető minden összetevőtípushoz. Az alábbi táblázat felsorolja az alapértelmezett összetevőváltozókat, és példákat tartalmaz az összetevők típusától függően megadott értékekre. Ha egy példa üres, az azt jelenti, hogy a változó nincs feltöltve az adott összetevőtípushoz.

Cserélje le a {alias} helyőrzőt az összetevő aliasához megadott értékre vagy a kiadási folyamathoz létrehozott alapértelmezett értékre.

Változó neve Leírás
Release.Artifacts. {alias}. Definícióazonosító A buildelési folyamat vagy adattár azonosítója.

Azure Pipelines-példa: 1
GitHub-példa: fabrikam/asp
Release.Artifacts. {alias}. DefinitionName A buildelési folyamat vagy adattár neve.

Azure Pipelines-példa: fabrikam-ci
TFVC-példa: $/fabrikam
Git-példa: fabrikam
GitHub-példa: fabrikam/asp (main)
Release.Artifacts. {alias}. BuildNumber A buildszám vagy a véglegesítés azonosítója.

Azure Pipelines-példa: 20170112.1
Jenkins/TeamCity-példa: 20170112.1
TFVC-példa: Changeset 3
Git-példa: 38629c964
GitHub-példa: 38629c964
Release.Artifacts. {alias}. BuildId A build azonosítója.

Azure Pipelines-példa: 130
Jenkins/TeamCity-példa: 130
GitHub-példa: 38629c964d21fe405ef830b7d0220966b82c9e11
Release.Artifacts. {alias}. BuildURI A build URL-címe.

Azure Pipelines-példa: vstfs://build-release/Build/130
GitHub-példa: https://github.com/fabrikam/asp
Release.Artifacts. {alias}. SourceBranch Annak az ágnak a teljes elérési útja és neve, amelyből a forrás készült.

Azure Pipelines-példa: refs/heads/main
Release.Artifacts. {alias}. SourceBranchName Csak annak az ágnak a neve, amelyből a forrás készült.

Azure Pipelines-példa: main
Release.Artifacts. {alias}. SourceVersion A létrehozott véglegesítés.

Azure Pipelines-példa: bc0044458ba1d9298cdc649cb5dcf013180706f7
Release.Artifacts. {alias}. Adattár.Provider Az adattár típusa, amelyből a forrás készült.

Azure Pipelines-példa: Git
Release.Artifacts. {alias}. RequestedForID A buildet aktiváló fiók azonosítója.

Azure Pipelines-példa: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.Artifacts. {alias}. RequestedFor A buildet kérő fiók neve.

Azure Pipelines-példa: Mateo Escobedo
Release.Artifacts. {alias}. Típus Az összetevőforrás típusa, például a Build.

Azure Pipelines-példa: Build
Jenkins-példa: Jenkins
Példa TeamCity-ra: TeamCity
TFVC-példa: TFVC
Git-példa: Git
GitHub-példa: GitHub
Release.Artifacts. {alias}. PullRequest.TargetBranch A lekéréses kérelem célhelyeként megadott ág teljes elérési útja és neve. Ez a változó csak akkor inicializálódik, ha a kiadást egy lekéréses kérelem folyamata aktiválja.

Azure Pipelines-példa: refs/heads/main
Release.Artifacts. {alias}. PullRequest.TargetBranchName Csak annak az ágnak a neve, amely egy lekéréses kérelem célja. Ez a változó csak akkor inicializálódik, ha a kiadást egy lekéréses kérelem folyamata aktiválja.

Azure Pipelines-példa: main

Lásd még : Artifact source alias

Elsődleges összetevő

Az egyik összetevőt elsődleges összetevőként kell kijelölni egy kiadási folyamatban. A kijelölt elsődleges összetevő esetében az Azure Pipelines a következő változókat tölti ki.

Változó neve Ugyanaz, mint
Build.DefinitionId Release.Artifacts. {Elsődleges összetevő aliasa}. Definícióazonosító
Build.DefinitionName Release.Artifacts. {Elsődleges összetevő aliasa}. DefinitionName
Build.BuildNumber Release.Artifacts. {Elsődleges összetevő aliasa}. BuildNumber
Build.BuildId Release.Artifacts. {Elsődleges összetevő aliasa}. BuildId
Build.BuildURI Release.Artifacts. {Elsődleges összetevő aliasa}. BuildURI
Build.SourceBranch Release.Artifacts. {Elsődleges összetevő aliasa}. SourceBranch
Build.SourceBranchName Release.Artifacts. {Elsődleges összetevő aliasa}. SourceBranchName
Build.SourceVersion Release.Artifacts. {Elsődleges összetevő aliasa}. SourceVersion
Build.Repository.Provider Release.Artifacts. {Elsődleges összetevő aliasa}. Adattár.Provider
Build.RequestedForID Release.Artifacts. {Elsődleges összetevő aliasa}. RequestedForID
Build.RequestedFor Release.Artifacts. {Elsődleges összetevő aliasa}. RequestedFor
Build.Type Release.Artifacts. {Elsődleges összetevő aliasa}. Típus
Build.PullRequest.TargetBranch Release.Artifacts. {Elsődleges összetevő aliasa}. PullRequest.TargetBranch
Build.PullRequest.TargetBranchName Release.Artifacts. {Elsődleges összetevő aliasa}. PullRequest.TargetBranchName

Alapértelmezett változók használata

Az alapértelmezett változókat kétféleképpen használhatja – a kiadási folyamat tevékenységeinek paramétereként vagy a szkriptekben.

Egy feladat bemeneteként közvetlenül használhat alapértelmezett változót. Ha például át szeretné adni Release.Artifacts.{Artifact alias}.DefinitionName annak az összetevőforrásnak az aliasát, amelynek az aliasa ASPNET4.CI egy tevékenységnek, akkor a következőt kell használnia $(Release.Artifacts.ASPNET4.CI.DefinitionName):

Összetevőváltozók használata argumentumokban PowerShell-szkriptfeladathoz

Ha alapértelmezett változót szeretne használni a szkriptben, először cserélje le az . alapértelmezett változóneveket a következőre _: . Ha például egy PowerShell-szkriptben ASPNET4.CI összetevő-változó Release.Artifacts.{Artifact alias}.DefinitionName értékét szeretné kinyomtatni annak az összetevő-forrásnak a számára, amelynek az aliasa ASPNET4.CI , akkor azt kell használnia $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME.

Összetevőváltozók használata beágyazott PowerShell-szkriptben

Vegye figyelembe, hogy az összetevő forrás aliasának ASPNET4.CIeredeti neve helyébe a következő lép ASPNET4_CI: .

Az összes változó aktuális értékeinek megtekintése

  1. Nyissa meg a kiadás összegzésének folyamatnézetét, és válassza ki a kívánt szakaszt. A lépések listájában válassza a Feladat inicializálása lehetőséget.

    A napló megnyitása egy kiadáshoz

  2. Ekkor megnyílik a lépés naplója. Görgessen le a feladat ügynöke által használt értékek megtekintéséhez.

    A változók értékeinek megtekintése egy kiadásban

Kiadás futtatása hibakeresési módban

További információk megjelenítése a kiadás végrehajtásakor és a naplófájlokban a teljes kiadás futtatásával, vagy csak az egyes kiadási fázisokban lévő feladatok hibakeresési módban történő futtatásával. Ez segíthet a problémák és hibák megoldásában.

  • Ha egy teljes kiadás hibakeresési módját szeretné elindítani, adjon hozzá egy, az értékkel true elnevezett System.Debug változót egy kiadási folyamat Változók lapjára.

  • Ha egyetlen szakasz hibakeresési módját szeretné elindítani, nyissa meg a Szakasz konfigurálása párbeszédpanelt a szakasz helyi menüjében, és adjon hozzá egy, az értékkel true elnevezett System.Debug változót a Változók lapra.

  • Másik lehetőségként hozzon létre egy változócsoportot, amely egy értékkel true elnevezett System.Debug változót tartalmaz, és csatolja ezt a változócsoportot egy kiadási folyamathoz.

Tipp.

Ha egy Azure RM-szolgáltatáskapcsolattal kapcsolatos hibaüzenetet kap, olvassa el az Azure Resource Manager szolgáltatáskapcsolatainak hibaelhárítását ismertető témakört.

Egyéni változók

Az egyéni változók különböző hatókörökben határozhatók meg.

  • Értékek megosztása a projekt összes definíciójában változócsoportok használatával. Válasszon egy változócsoportot, ha ugyanazokat az értékeket kell használnia a projekt összes definíciójában, fázisában és tevékenységében, és egyetlen helyen szeretné módosítani az értékeket. Változócsoportokat definiálhat és kezelhet a Tár lapon.

  • Az összes fázis értékeinek megosztása a kiadási folyamat változóinak használatával. Válasszon ki egy kiadási folyamat változót, ha ugyanazt az értéket kell használnia a kiadási folyamat összes szakaszában és tevékenységében, és szeretné, hogy az érték egyetlen helyen módosítható legyen. Ezeket a változókat egy kiadási folyamat Változók lapján definiálhatja és kezelheti. A Folyamatváltozók lapon nyissa meg a Hatókör legördülő listát, és válassza a "Kiadás" lehetőséget. Alapértelmezés szerint, amikor hozzáad egy változót, az kiadási hatókörre van állítva.

  • A fázisváltozók használatával megoszthatja az értékeket az összes tevékenység között egy adott fázison belül. Szakaszszintű változót használjon olyan értékekhez, amelyek szakaszonként változnak (és megegyeznek a fázis összes tevékenységéhez). Ezeket a változókat a kiadási folyamat Változók lapján definiálhatja és kezelheti. A Folyamatváltozók lapon nyissa meg a Hatókör legördülő listát, és válassza ki a szükséges szakaszt. Változó hozzáadásakor állítsa be a hatókört a megfelelő környezetbe.

Egyéni változók használata a projektben, a kiadási folyamatban és a fázis hatókörében a következőkhöz nyújt segítséget:

  • Kerülje az értékek duplikálását, így egyszerűbben frissítheti az összes előfordulást egyetlen műveletként.

  • A bizalmas értékeket úgy tárolja, hogy a kiadási folyamatok felhasználói nem láthatják és nem módosíthatják őket. Jelöljön ki egy konfigurációs tulajdonságot biztonságos (titkos) változóként a Lakat változó melletti (lakat) ikon kiválasztásával.

    Fontos

    A rejtett (titkos) változók értékei biztonságosan vannak tárolva a kiszolgálón, és a mentés után a felhasználók nem tekinthetik meg őket. Az üzembe helyezés során az Azure Pipelines kiadási szolgáltatás visszafejti ezeket az értékeket, amikor a feladatok hivatkoznak rájuk, és biztonságos HTTPS-csatornán keresztül továbbítja azokat az ügynöknek.

Feljegyzés

Az egyéni változók létrehozása felülírhatja a standard változókat. Például a PowerShell Path környezeti változója. Ha egyéni Path változót hoz létre egy Windows-ügynökön, az felülírja a $env:Path változót, és a PowerShell nem fog tudni futni.

Egyéni változók használata

Ha egyéni változókat szeretne használni a buildelési és kiadási feladatokban, egyszerűen zárójelbe kell tenni a változó nevét, és meg kell előznie egy $ karakterrel. Ha például egy adminUserName nevű változóval rendelkezik, a változó aktuális értékét beszúrhatja egy tevékenység paraméterébe.$(adminUserName)

Feljegyzés

Az ugyanabban a hatókörben lévő folyamathoz (például feladathoz vagy fázishoz) csatolt különböző csoportok változói ütköznek, és az eredmény kiszámíthatatlan lehet. Győződjön meg arról, hogy különböző neveket használ a változókhoz az összes változócsoportban.

Változók definiálása és módosítása szkriptben

Egy szkript változójának definiálásához vagy módosításához használja a naplózási task.setvariable parancsot. Vegye figyelembe, hogy a frissített változó értéke a végrehajtás alatt álló feladatra terjed ki, és nem halad át a feladatokon vagy szakaszokon. A változónevek nagybetűssé alakulnak, a "." és a " karakter helyébe pedig a "_" szöveg lép.

Például a Agent.WorkFolder következő lesz AGENT_WORKFOLDER: . Windows rendszeren ezt %AGENT_WORKFOLDER% a lehetőséget a következőképpen érheti el: vagy $env:AGENT_WORKFOLDER. Linuxon és macOS rendszeren a .$AGENT_WORKFOLDER

Tipp.

Szkriptet futtathat a következőn:

Batch-szkript

A változók és secret.Sauce a sauce változók beállítása

@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic

A változók olvasása

Argumentumok

"$(sauce)" "$(secret.Sauce)"

Szkript

@echo off
set sauceArgument=%~1
set secretSauceArgument=%~2
@echo No problem reading %sauceArgument% or %SAUCE%
@echo But I cannot read %SECRET_SAUCE%
@echo But I can read %secretSauceArgument% (but the log is redacted so I do not spoil
     the secret)

A változók olvasásának konzolkimenete:

No problem reading crushed tomatoes or crushed tomatoes
But I cannot read 
But I can read ******** (but the log is redacted so I do not spoil the secret)