Aracılığıyla paylaş


Yayın işlem hatlarında klasik değişkenleri kullanma

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Klasik yayın işlem hatlarında değişkenleri kullanmak, işlem hattınız genelinde veri alışverişi ve taşımanın kullanışlı bir yoludur. Her değişken bir dize olarak depolanır ve değeri işlem hattı çalıştırmaları arasında değişebilir.

Yalnızca şablon ayrıştırma zamanında kullanılabilen Çalışma Zamanı parametrelerinin aksine, Klasik yayın işlem hatlarındaki değişkenlere tüm dağıtım işlemi boyunca erişilebilir

Klasik yayın işlem hattınızın her aşamasında uygulamanızı dağıtmak için görevler ayarlarken değişkenler size yardımcı olabilir:

  • Özelleştirmeyi basitleştirme: Genel dağıtım işlem hattını bir kez tanımlayın ve farklı aşamalar için kolayca uyarlayın. Örneğin, bir web dağıtımının bağlantı dizesi temsil etmek için bir değişken kullanın ve her aşama için gereken değeri ayarlayın. Bunlar özel değişkenler olarak bilinir.

  • Bağlamsal bilgilerden yararlanın: Yayın bağlamı hakkında aşama, yapıt veya dağıtımı çalıştıran aracı gibi ayrıntılara erişin. Örneğin, betiklerinizin indirme yapmak için derleme konumuna veya geçici dosyalar oluşturmak için aracının çalışma dizinine ihtiyacı olabilir. Bunlar varsayılan değişkenler olarak adlandırılır.

Not

YAML işlem hatları için daha fazla ayrıntı için kullanıcı tanımlı değişkenlere ve önceden tanımlanmış değişkenlere bakın.

Varsayılan değişkenler

Varsayılan değişkenler, çalışan görevlerinize ve betiklerinize yönelik yürütme bağlamı hakkında temel bilgiler sağlar. Bu değişkenler, çalıştıkları sistem, sürüm, aşama veya aracı hakkındaki ayrıntılara erişmenizi sağlar.

System.Debug dışında, varsayılan değişkenler salt okunur olur ve değerleri sistem tarafından otomatik olarak ayarlanır.

En önemli değişkenlerden bazıları aşağıdaki tablolarda açıklanmıştır. Listenin tamamını görüntülemek için bkz . Tüm değişkenlerin geçerli değerlerini görüntüleme.

Sistem değişkenleri

Değişken adı Açıklama
System.TeamFoundationServerUri Azure Pipelines'da hizmet bağlantısının URL'si. Azure Pipelines REST API'lerini çağırmak için betiklerinizden veya görevlerinizden bunu kullanın.

Örnek: https://fabrikam.vsrm.visualstudio.com/
System.TeamFoundationCollectionUri Team Foundation koleksiyonunun veya Azure Pipelines'ın URL'si. Derleme ve Sürüm denetimi gibi diğer hizmetlerde REST API'lerini çağırmak için betiklerinizden veya görevlerinizden bunu kullanın.

Örnek: https://dev.azure.com/fabrikam/
System.CollectionId Bu derleme veya yayının ait olduğu koleksiyonun ID'si.

Örnek: 6c6f3423-1c84-4625-995a-f7f143a1e43d
System.DefinitionId Geçerli sürümün ait olduğu yayın işlem hattının kimliği.

Örnek: 1
System.TeamProject Bu derlemenin veya yayının ait olduğu projenin adı.

Örnek: Fabrikam
System.TeamProjectId Bu derlemenin veya sürümün ait olduğu projenin kimliği.

Örnek: 79f5c12e-3337-4151-be41-a268d2c73344
System.ArtifactsDirectory Yayın dağıtımı sırasında yapıtların indirildiği dizin. Aracıya artifaktların indirilmesi gerekiyorsa dizin, her dağıtım öncesinde temizlenir. Agent.ReleaseDirectory ve System.DefaultWorkingDirectory ile aynı.

Örnek: C:\agent\_work\r1\a
System.DefaultWorkingDirectory Yayın dağıtımı sırasında yapıtların indirildiği dizin. Aracıya artifaktların indirilmesi gerekiyorsa dizin, her dağıtım öncesinde temizlenir. Agent.ReleaseDirectory ve System.ArtifactsDirectory ile aynı.

Örnek: C:\agent\_work\r1\a
System.WorkFolder Her derleme veya yayın için alt klasörlerin oluşturulduğu bu aracı için çalışma dizini. Agent.RootDirectory ve Agent.WorkFolder ile aynı.

Örnek: C:\agent\_work
System.Debug Bu, kullanıcılar tarafından ayarlanabilen tek sistem değişkenidir. Hata bulma işlemine yardımcı olmak için sürümü hata ayıklama modunda çalıştırmak için bunu true olarak ayarlayın.

Örnek: true

Sürüm değişkenleri

Değişken adı Açıklama
Serbest Bırakma.DenemeNumarası Bu sürümün bu aşamada dağıtılma sayısı.

Örnek: 1
Release.DefinitionEnvironmentId (Yayın.TanımOrtamId) İlgili yayın işlem hattındaki aşamanın kimliği.

Örnek: 1
Release.DefinitionId Geçerli sürümün ait olduğu yayın işlem hattının kimliği.

Örnek: 1
Release.DefinitionName Geçerli sürümün ait olduğu yayın işlem hattının adı.

Örnek: fabrikam-cd
Sürüm.Dağıtım.TalepEdilen Sürmekte olan dağıtımı tetikleyen (başlatan) kimliğin görünen adı.

Örnek: Mateo Escobedo
Sürüm.Yayın.Dağıtımı.TalepEdilenEposta Sürmekte olan dağıtımı tetikleyen (başlatan) kimliğin e-posta adresi.

Örnek: mateo@fabrikam.com
Release.Deployment.RequestedForId Halen devam etmekte olan dağıtımı tetikleyen (başlatan) kimliğin kimlik numarası.

Örnek: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.DeploymentID Dağıtımın kimliği. Her iş için benzersiz.

Örnek: 254
Release.DeployPhaseID Dağıtımın çalıştığı aşamanın kimliği.

Örnek: 127
Yayın.OrtamId Dağıtımın şu anda devam etmekte olduğu bir sürümdeki aşama örneğinin kimliği.

Örnek: 276
Yayın.OrtamAdı Dağıtımın şu anda devam ettiği aşamanın ismi.

Örnek: Dev
Release.EnvironmentUri Dağıtımın devam ettiği bir sürümdeki aşama örneğinin URI'sini.

Örnek: vstfs://ReleaseManagement/Environment/276
Release.Environments.{stage-name}.status Aşamanın dağıtım durumu.

Örnek: InProgress
Release.PrimaryArtifactSourceAlias Birincil yapıt kaynağının diğer adı.

Örnek: fabrikam\_web
Serbest Bırakma Nedeni Dağıtımın nedeni. Desteklenen değerler şunlardır:
ContinuousIntegration - sürüm, bir derleme tamamlandıktan sonra Sürekli Dağıtım sürecinde başlatıldı.
Manual - sürüm el ile başlatıldı.
None - dağıtım nedeni belirtilmedi.
Schedule - yayın bir zamanlamadan başladı.
Sürüm.SürümAçıklaması Yayın sırasında sağlanan metin açıklaması.

Örnek: Critical security patch
Release.ReleaseId Geçerli yayın kaydının tanımlayıcısı.

Örnek: 118
Sürüm.SürümAdı Geçerli sürümün adı.

Örnek: Release-47
Release.ReleaseUri Geçerli sürümün URI'sini.

Örnek: vstfs://ReleaseManagement/Release/118
Release.ReleaseWebURL Bu sürümün URL'si.

Örnek: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary
Yayın.TalepEdilenKişi Yayını tetikleyen kimliğin görünen adı.

Örnek: Mateo Escobedo
Yayımlama.TalepEdilenEposta Yayını tetikleyen kullanıcı kimliğinin e-posta adresi.

Örnek: mateo@fabrikam.com
Yayın.TalepEdenId Tetiklemeyi gerçekleştiren kimliğin kimlik numarası.

Örnek: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.SkipArtifactsİndir Aracıya dosyaların indirilip indirilmeyeceğini belirten Boole değeri.

Örnek: FALSE
Release.TriggeringArtifact.Alias Yayını tetikleyen nesnenin takma adı. Yayın zamanlandığında veya elle tetiklendiğinde bu boş olur.

Örnek: fabrikam\_app

Yayın aşaması değişkenleri

Değişken adı Açıklama
Release.Environments.{stage name}.Durum Bu sürümün belirtilen aşama içinde dağıtım durumu.

Örnek: NotStarted

Aracı değişkenleri

Değişken adı Açıklama
Agent.Name Aracı havuzuna kayıtlı olarak acentenin adı. Bu, bilgisayar adından farklı olabilir.

Örnek: fabrikam-agent
Agent.MachineName Ajanın yapılandırıldığı bilgisayarın adı.

Örnek: fabrikam-agent
Agent.Version Ajana yazılımının sürümü.

Örnek: 2.109.1
Agent.JobName Yayın veya Derleme gibi çalışmakta olan işin adı.

Örnek: Release
Agent.HomeDirectory Ajanın yüklü olduğu klasör. Bu klasör, aracının kodunu ve kaynaklarını içerir.

Örnek: C:\agent
Agent.ReleaseDirectory Yayın dağıtımı sırasında yapıtların indirildiği dizin. Aracıya artifaktların indirilmesi gerekiyorsa dizin, her dağıtım öncesinde temizlenir. System.ArtifactsDirectory ve System.DefaultWorkingDirectory ile aynı.

Örnek: C:\agent\_work\r1\a
Agent.RootDirectory Her derleme veya yayın için alt klasörlerin oluşturulduğu bu aracı için çalışma dizini. Agent.WorkFolder ve System.WorkFolder ile aynı.

Örnek: C:\agent\_work
Agent.WorkFolder Her derleme veya yayın için alt klasörlerin oluşturulduğu bu aracı için çalışma dizini. Agent.RootDirectory ve System.WorkFolder ile aynı.

Örnek: C:\agent\_work
Agent.DeploymentGroupId Ajanın kayıtlı olduğu dağıtım grubunun kimliği. Bu yalnızca dağıtım grubu işlerinde kullanılabilir.

Örnek: 1

Release Artifacts değişkenleri

Bir yayında başvuruda bulunan her yapıt için aşağıdaki yapıt değişkenlerini kullanabilirsiniz. Tüm değişkenlerin her yapıt türü için geçerli olmadığını unutmayın. Aşağıdaki tabloda varsayılan yapıt değişkenleri listelenmiştir ve yapıt türüne göre değerlerine ilişkin örnekler verilmiştir. Bir örnek boşsa, değişkenin bu yapıt türü için geçerli olmadığını gösterir.

Yer tutucuyu {alias} yapıt kaynağı diğer adı için belirttiğiniz değerle veya yayın işlem hattı için oluşturulan varsayılan değerle değiştirin.

Değişken adı Açıklama
Release.Artifacts.{alias}.Tanım Kimliği Yapı işlem hattının veya deponun tanımlayıcısı. Örnekler:

Azure Pipelines: 1
Github: fabrikam/asp
Release.Artifacts.{alias}.TanımAdı Derleme işlem hattının veya deponun adı. Örnekler:

Azure Pipelines: fabrikam-ci
TFVC: $/fabrikam
Aptal: fabrikam
Github: fabrikam/asp (main)
Release.Artifacts. {alias}. BuildNumber Derleme numarası veya işleme tanımlayıcısı. Örnekler:

Azure Pipelines: 20170112.1
Jenkins: 20170112.1
TFVC: Changeset 3
Aptal: 38629c964
Github: 38629c964
Release.Artifacts.{alias}.BuildId Derleme tanımlayıcısı. Örnekler:

Azure Pipelines: 130
Jenkins: 130
Github: 38629c964d21fe405ef830b7d0220966b82c9e11
Release.Artifacts.{alias}.BuildURI Derlemenin URL'si. Örnekler:

Azure Pipelines: vstfs://build-release/Build/130
Github: https://github.com/fabrikam/asp
Release.Artifacts. {alias}. SourceBranch Kaynağın oluşturulduğu dalın tam yolu ve adı. Örnekler:

Azure Pipelines: refs/heads/main
Release.Artifacts. {alias}. SourceBranchName Yalnızca kaynağın oluşturulduğu dalın adı. Örnekler:

Azure Pipelines: main
Release.Artifacts.{alias}.SourceVersion Oluşturulan işleme. Örnekler:

Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7
Release.Artifacts.{alias}.Repository.Provider Kaynağın oluşturulduğu depo türü. Örnekler:

Azure Pipelines: Git
Release.Artifacts.{alias}.RequestedForID Derlemeyi tetikleyen hesabın tanımlayıcısı. Örnekler:

Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.Artifacts.{alias}.RequestedFor Derlemeyi isteyen hesabın adı. Örnekler:

Azure Pipelines: Mateo Escobedo
Release.Artifacts.{alias}.Tür Build.Examples gibi artefakt kaynağının türü

Azure Pipelines: Build
Jenkins: Jenkins
TFVC: TFVC
Aptal: Git
Github: GitHub
Release.Artifacts. {alias}. PullRequest.TargetBranch Pull isteğinin hedefi olan dalın adı ve tam yolu. Bu değişken, yalnızca bir çekme isteği akışı tarafından tetiklendiğinde başlatılır. Örnekler:

Azure Pipelines: refs/heads/main
Release.Artifacts. {alias}. PullRequest.TargetBranchName Yalnızca çekme isteğinin hedefi olan dalın adı. Bu değişken, yalnızca bir çekme isteği akışı tarafından tetiklendiğinde başlatılır. Örnekler:

Azure Pipelines: main

Birincil Artefakt değişkenleri

Klasik yayın işlem hatlarında, birden çok yapıt kullanıyorsanız, birini birincil yapıt olarak belirleyebilirsiniz. Azure Pipelines, belirlenen birincil yapıt için aşağıdaki değişkenleri doldurur.

Değişken adı Aynı
Build.DefinitionId Release.Artifacts. {Birincil yapıt diğer adı}. Tanım Kimliği
Build.DefinitionName Release.Artifacts. {Birincil yapıt diğer adı}. TanımAdı
Build.BuildNumber Release.Artifacts. {Birincil yapıt diğer adı}. BuildNumber
Build.BuildId Release.Artifacts.{Birincil yapıt takma adı}.BuildId
Build.BuildURI Release.Artifacts. {Birincil yapıt diğer adı}. BuildURI
Build.SourceBranch Release.Artifacts. {Birincil yapıt diğer adı}. SourceBranch
Build.SourceBranchName Release.Artifacts. {Birincil yapıt diğer adı}. SourceBranchName
Build.SourceVersion Release.Artifacts.{Birincil yapıt diğer adı}.KaynakSürümü
Build.Repository.Provider Release.Artifacts. {Birincil yapıt diğer adı}. Repository.Provider
Build.RequestedForID Release.Artifacts. {Birincil yapıt diğer adı}. RequestedForID
Build.RequestedFor Release.Artifacts. {Birincil yapıt diğer adı}. RequestedFor
Build.Type Release.Artifacts.{Birincil yapıt diğer adı}.Tür
Build.PullRequest.TargetBranch Release.Artifacts. {Birincil yapıt diğer adı}. PullRequest.TargetBranch
Build.PullRequest.TargetBranchName Release.Artifacts. {Birincil yapıt diğer adı}. PullRequest.TargetBranchName

Varsayılan değişkenleri kullanma

Varsayılan değişkenleri iki şekilde kullanabilirsiniz: yayın işlem hattındaki veya betiklerinizdeki görevlerin parametreleri olarak.

Varsayılan değişkeni doğrudan göreve giriş olarak kullanabilirsiniz. Örneğin, diğer adı Release.Artifacts.{Artifact alias}.DefinitionName olan bir yapıtın PowerShell görevine 'ı bağımsız değişken olarak geçirmek için $(Release.Artifacts.ASPNET4.CI.DefinitionName) kullanırsınız.

Varsayılan değişkenin bağımsız değişken olarak nasıl kullanılacağını gösteren ekran görüntüsü.

Betiğinizde varsayılan bir değişken kullanmak için, önce varsayılan değişken adlarındaki . öğesini _ ile değiştirmeniz gerekir. Örneğin, bir PowerShell betiğinde, diğer adı Release.Artifacts.{Artifact alias}.DefinitionName olan bir yapıtın değerini yazdırmak için $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME kullanın. ASPNET4.CI özgün diğer adının ASPNET4_CI ile değiştirildiğini unutmayın.

Satır içi PowerShell betiğinde varsayılan değişkenin nasıl kullanılacağını gösteren ekran görüntüsü.

Özel değişkenler

Özel değişkenler çeşitli kapsamlarda tanımlanabilir.

  • Değişken Grupları: Bir projedeki tüm tanımlarda değerleri paylaşmak için değişken grupları kullanın. Bu, bir proje içindeki tanımlar, aşamalar ve görevler boyunca aynı değerleri kullanmak ve bunları tek bir konumdan yönetmek istediğinizde kullanışlıdır. İşlem Hatları>Kitaplığı'nda değişken grupları tanımlayın ve yönetin.

  • Yayın İşlem Hattı Değişkenleri: Yayın işlem hattı içindeki tüm aşamalarda değerleri paylaşmak için yayın işlem hattı değişkenlerini kullanın. Bu, aşamalar ve görevler arasında tutarlı bir değere ihtiyaç duyduğunuz ve bunu tek bir konumdan güncelleştirebileceğiniz senaryolar için idealdir. Yayın işlem hattının Değişkenler sekmesinde bu değişkenleri tanımlayın ve yönetin. İşlem Hattı Değişkenleri sayfasında, bir değişken eklerken Kapsam açılan listesini Yayın olarak ayarlayın.

  • Aşama Değişkenleri: Yayın işlem hattının belirli bir aşamasındaki değerleri paylaşmak için aşama değişkenlerini kullanın. Bu, aşamadan aşamaya farklılık gösteren ancak bir aşama içindeki tüm görevler arasında tutarlı olan değerler için kullanışlıdır. Yayın işlem hattının Değişkenler sekmesinde bu değişkenleri tanımlayın ve yönetin. İşlem Hattı Değişkenleri sayfasında, bir değişken eklerken Kapsam açılan listesini uygun ortama ayarlayın.

Projede, yayın işlem hattında ve aşama düzeylerinde özel değişkenler kullanmak şunları oluşturmanıza yardımcı olur:

  • Değerleri tekrarlamaktan kaçının, böylece tüm oluşumları tek bir değişiklikle güncellemeyi kolaylaştırır.

  • Hassas değerlerin kullanıcılar tarafından görüntülenmesini veya değiştirilmesini engelleyerek bunların güvenliğini sağlayın. Bir değişkeni güvenli (gizli) olarak göstermek için değişkenin yanındaki asma kilit simgesini seçin.

    Önemli

    Gizli değişkenlerin (gizli dizi) değerleri sunucuda güvenli bir şekilde depolanır ve kaydedildikten sonra kullanıcılar tarafından görüntülenemez. Dağıtım sırasında Azure Pipelines, görevler tarafından başvurulduğunda bu değerlerin şifresini çözer ve bunları güvenli bir HTTPS kanalı üzerinden aracıya geçirir.

Not

Özel değişkenler oluşturmak standart değişkenlerin üzerine yazabilir. Örneğin, bir Windows aracısı üzerinde özel bir Path değişkeni tanımlarsanız, $env:Path değişkeninin üzerine yazılır ve bu da PowerShell'in düzgün çalışmasını engelleyebilir.

Özel değişkenler kullanma

Görevlerinizde özel değişkenler kullanmak için değişken adını parantez içine alın ve önüne bir $ karakter koyun. Örneğin, adminUserName adlı bir değişkeniniz varsa, mevcut değerini bir göreve $(adminUserName) olarak ekleyebilirsiniz.

Not

Aynı kapsamdaki bir işlem hattına (örneğin, iş veya aşama) bağlı farklı gruplardan gelen değişkenler çakışarak öngörülemeyen sonuçlara yol açabilir. Bunu önlemek için tüm değişken gruplarınızdaki değişkenlerin benzersiz adlara sahip olduğundan emin olun.

Bir betikte veya senaryoda değişkenlerinizi tanımlayın ve değiştirin

Bir betikten değişken tanımlamak veya değiştirmek için task.setvariable kayıt komutunu kullanın. Güncellenmiş değişken değerinin kapsamı, yürütülen işin kapsamına özeldir ve işler veya aşamalar arasında kalıcı değildir. Değişken adlarının büyük harfe dönüştürüldüğünü ve "." ile " " karakterlerinin "_" ile değiştirildiğini unutmayın.

Örneğin Agent.WorkFolder, AGENT_WORKFOLDER olur.

  • Windows'da bu değişkene %AGENT_WORKFOLDER% veya $env:AGENT_WORKFOLDER olarak erişin.
  • Linux ve macOS'ta kullanın $AGENT_WORKFOLDER.

İpucu

Bir betiği şurada çalıştırabilirsiniz:

Batch betiği

sauce ve secret.Sauce değişkenlerini ayarlama

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

Değişkenleri okuma

Argümanlar

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

Senaryo

@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)

Değişkenlerin okunmasından konsol çıkışı:

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)

Tüm değişkenlerin geçerli değerlerini görüntüleme

  1. "İşlem Hatları>Yayınlar'ı seçin ve ardından yayın işlem hattınızı seçin."

  2. Yayınınızın özet görünümünü açın ve ilgilendiğiniz aşamayı seçin. Adım listesinde İşi başlat'ı seçin.

    İşi başlatma adımını gösteren ekran görüntüsü.

  3. Bu işlem, bu adımın günlüklerini açar. Bu iş için ajanın kullandığı değerleri görmek için aşağı kaydırın.

    Aracı tarafından kullanılan değişkenleri gösteren ekran görüntüsü.

Bir sürümü hata ayıklama modunda çalıştırma

Bir sürümün hata ayıklama modunda çalıştırılması, yayın yürütme sırasında ek bilgiler görüntüleyerek sorunları veya hataları tanılamanıza ve çözmenize yardımcı olabilir. Hata ayıklama modunu tüm sürüm için veya yalnızca belirli bir yayın aşamasındaki görevler için etkinleştirebilirsiniz.

  • Yayının tamamında hata ayıklama modunu etkinleştirmek için yayın işlem hattının System.Debug sekmesine değeriyle true adlı bir değişken ekleyin.

  • Belirli bir aşama için hata ayıklama modunu etkinleştirmek için, aşamanın kısayol menüsünden Aşamayı yapılandır iletişim kutusunu açın ve DeğişkenlerSystem.Debugdeğeriyle true adlı bir değişken ekleyin.

  • Alternatif olarak, değerine sahip adlı System.Debug bir değişken içeren bir değişken grubutrueve bu değişken grubunu yayın işlem hattına bağlayın.

İpucu

Azure ARM hizmet bağlantılarıyla ilgili bir hatayla karşılaşırsanız, diğer ayrıntılar için bkz . Nasıl yapılır: Azure Resource Manager hizmet bağlantılarında sorun giderme.