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
Á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)
:
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
.
Vegye figyelembe, hogy az összetevő forrás aliasának ASPNET4.CI
eredeti neve helyébe a következő lép ASPNET4_CI
: .
Az összes változó aktuális értékeinek megtekintése
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.
Ekkor megnyílik a lépés naplója. Görgessen le a feladat ügynöke által használt értékek megtekintéséhez.
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
elnevezettSystem.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
elnevezettSystem.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
elnevezettSystem.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 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- vagy PowerShell-szkriptfeladatot használó Windows-ügynök.
- macOS- vagy Linux-ügynök Shell-szkriptfeladattal.
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)
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: