Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Bu makalede YAML işlem hatlarına yönelik kaynaklar ele alınmaktadır. Kaynak, işlem hattının kullandığı ve bu işlem hattının dışında var olan her şeydir. YAML işlem hatlarındaki kaynaklar diğer işlem hatları, derlemeler, kapsayıcılar, paketler, depolar veya web kancaları olabilir.
Bir kaynağı tanımladıktan sonra işlem hattınızın herhangi bir yerinde kullanabilirsiniz. Daha fazla bilgi ve örnek için bkz . Kaynak tanımları.
resources:
pipelines:
- pipeline: resources1
source: otherPipeline
steps:
- download: resources1
artifact: artifact1.txt
Kaynak tanımında ayarlayarak kaynak durumunu kullanarak trigger. İşlem hattı resources.triggeringAlias ve resources.triggeringCategory değişkenler daha sonra kaynak adı ve kategorisine ayarlanır.
Build.Reason değişkeni ResourceTrigger olarak ayarlanmadığı sürece, bu değişkenler boş olur.
Kaynaklar, sürüm, yapıtlar, ilişkili taahhütler ve iş öğeleri dahil olmak üzere işlem hattının kullandığı hizmetler için tam izlenebilirlik sağlar. Kaynaklarınızdaki olayları tetiklemeye aboneyseniz DevOps iş akışlarınızı tamamen otomatikleştirebilirsiniz.
Not
Bu makalede öncelikle YAML işlem hatlarındaki kaynaklar ele alınmaktadır. Klasik işlem hatlarındaki kaynaklar için bkz. Azure Pipelines kaynakları hakkında.
Kaynak yetkilendirmesi
Kaynakların işlem hatlarında kullanılmak üzere yetkilendirilmiş olması gerekir. Kaynak sahipleri kaynaklarına erişebilecek kullanıcıları ve işlem hatlarını denetler. YAML işlem hattını kaynakları kullanmak üzere yetkilendirmenin çeşitli yolları vardır.
Tüm işlem hatlarına erişim izinleri vermek için kaynağın yönetim ayarlarını kullanın. Örneğin, İşlem Hatları>Kitaplığı sayfasında güvenli dosyaları ve değişken gruplarını, Proje ayarları>İşlem Hatları'nda aracı havuzlarını ve hizmet bağlantılarını yönetebilirsiniz. Bu yetkilendirme, test kaynakları gibi kısıtlamanız gerekmeyen kaynaklar için kullanışlıdır.
Projeniz için aracı havuzu güvenlik rollerinde en az Kullanıcı rolüne sahip olduğunuzdan emin olun. Oluşturduğunuz YAML işlem hatları, Kullanıcı rolünüz olan kaynakları kullanmak için otomatik olarak yetkilendirilmiştir.
Eğer YAML işlem hattına bir kaynak tanımı eklerseniz ve derleme,
Could not find a <resource> with name <resource-name>. The <resource> does not exist or has not been authorized for usegibi bir hatayla başarısız olursa, kaynak üzerinde en az Kullanıcı rolüne sahip olduğunuzdan emin olun. Ardından başarısız derlemedeki kaynakları yetkilendirme seçeneğini belirleyebilirsiniz. Kaynak yetkilendirildikten sonra yeni bir derleme başlatabilirsiniz.
Kaynaklar için onay denetimleri
Kaynak kullanımını el ile denetlemek için onay denetimlerini ve şablonları kullanabilirsiniz. Gerekli şablon onay denetimini kullanarak, belirli bir kaynak veya ortamı kullanan herhangi bir işlem hattının belirli bir YAML şablonundan kapsamını genişletmesini gerektirebilirsiniz.
Gerekli şablon onayının ayarlanması, kaynağınızın yalnızca belirli koşullar altında kullanıldığından emin olarak güvenliği artırır. Daha fazla bilgi için bkz. Güvenlik için şablonları kullanma.
El ile kaynak sürümü seçici
Azure Pipelines, kaynak tanımlarına göre kaynaklar için varsayılan sürümleri değerlendirir. Zamanlanmış çalıştırmalar veya el ile çalıştırma seçmezseniz Azure Pipelines, varsayılan kaynak sürümlerini değerlendirmek için yalnızca başarıyla tamamlanmış sürekli tümleştirme (CI) çalıştırmalarını dikkate alır.
YaML sürekli dağıtım (CD) işlem hattını el ile tetiklerken farklı kaynak sürümleri seçmek için el ile kaynak sürümü seçicisini kullanabilirsiniz. İşlem hattı, derleme, depo, kapsayıcı ve paket kaynakları için kaynak sürüm seçme desteği sunulmaktadır.
Kaynaklar için pipeline, manuel sürüm seçici, tüm dallardaki tüm mevcut çalıştırmaları görüntülemenize, dilim numarasına veya dala göre çalıştırmaları aramanıza ve başarılı, başarısız veya devam eden bir çalıştırmayı seçmenize olanak tanır.
CD işlem hattınızı çalıştırabilmek için CI çalıştırmasının tamamlanmasını beklemeniz veya ilgisiz bir hata nedeniyle yeniden çalıştırmanız gerekmez. İhtiyacınız olan çıktıları ürettiğini bildiğiniz herhangi bir işlemi seçme esnekliğine sahipsiniz.
Kaynak sürümü seçicisini kullanmak için İşlem hattını çalıştır bölmesinde Kaynaklar'ı seçin, bir kaynak seçin ve kullanılabilir sürümler listesinden belirli bir sürümü seçin. GitHub paketleri gibi kullanılabilir sürümleri getirememenize neden olan kaynaklar için metin alanına istediğiniz sürümü girebilirsiniz.
Kaynak tanımları
YAML işlem hattı kaynakları şunlar olabilir:
Aşağıdaki bölümlerde YAML işlem hattı kaynak kategorilerinin tanımları ve örnekleri verilmiştir. Şema bilgilerinin tamamı için Azure Pipelines için YAML şema referansındakikaynaklar tanımına bakın.
İşlem hatları kaynağı
CD iş akışlarınız için pipeline olarak CI kaynaklarını kullanabilirsiniz.
pipeline veya işlem hattı kaynak değişkenlerini kullanmak için işlem hattınızdaki kaynaklara da başvurabilirsiniz. Yalnızca Azure Pipelines pipelines kaynağını kullanabilir.
Kaynak tanımında pipelines :
-
pipeline, işlem hattı kaynaklarına başvurmak için kullandığınız benzersiz bir addır. -
source, işlem hattı yapıtlarını oluşturan işlem hattının adıdır.
Şema bilgilerinin tamamı için resources.pipelines.pipeline tanımına bakın.
Örnek işlem hattı kaynak tanımları
Aşağıdaki örnek kaynak tanımı, aynı Azure DevOps projesindeki bir işlem hattındaki yapıtları tüketir.
resources:
pipelines:
- pipeline: SmartHotel-resource # identifier to use in pipeline resource variables
source: SmartHotel-CI # name of the pipeline that produces the artifacts
Başka bir projeden işlem hattı belirtmek için kaynak tanımına project adını ekleyin. Aşağıdaki örnek, işlem hattı el ile veya zamanlamayla tetiklendiğinde varsayılan sürümü çözümlemek için de kullanır branch . Şube girişi joker karakter içeremez.
resources:
pipelines:
- pipeline: SmartHotel
project: otherDevOpsProject
source: SmartHotel-CI
branch: releases/M142
Kaynak sürümü değerlendirmesi
Azure Pipelines, kaynak tanımlarına göre kaynaklar için varsayılan sürümleri değerlendirir. İşlem hattının varsayılan kaynak eseri sürümleri, işlem hattının elle mi çalıştırıldığına, zamanlamaya mı bağlı olarak çalıştığına veya kaynak çalıştırmasının sonucuna göre mi tetiklendiğine bağlıdır.
Elle veya zamanlanmış bir işlem hattı çalıştırması için, version, branch, tags ve pipeline kaynak tanımındaki özelliklerin değerleri yapıt sürümlerini tanımlar.
branch girişinde joker karakter bulunamaz ve tags özellikler AND işlecini kullanır.
Zamanlanmış çalıştırmalar veya sürüm seçiciyi kullanmazsanız el ile çalıştırmalar için Azure Pipelines, varsayılan kaynak sürümlerini değerlendirirken yalnızca başarıyla tamamlanmış sürekli tümleştirme (CI) çalıştırmalarını dikkate alır. El ile çalıştırmalar için, el ile sürüm seçiciyi kullanarak tanımlı sürümleri geçersiz kılabilirsiniz.
Aşağıdaki tabloda pipeline kaynak tanımı özellikleri ve bunların belirttiği yapıt sürümleri listelenmektedir.
| Belirtilen özellik | Artefakt sürümü |
|---|---|
version |
Belirtilen çalıştırma numarasına sahip derleme |
branch |
Belirtilen dalda çalıştıran en son derleme |
tags |
Belirtilen tüm etiketleri içeren en son derleme |
branch ve tags |
Belirtilen tüm etiketleri içeren belirtilen dalda en son derleme çalıştırması |
version ve branch |
Belirtilen çalıştırma numarası ve dal ile derleme yapın. |
| Hiçbiri | Tüm dallarda en son derleme |
Aşağıdaki pipeline kaynak tanımı, branch ve tags özelliklerini, işlem hattı zamanlandığında veya manuel olarak tetiklendiğinde varsayılan sürümü değerlendirmek için kullanır. Yapıtlar myCIAlias sürümü, main ve Production etiketleriyle PreProduction dalında yapılan en son derleme çalıştırmasıdır.
resources:
pipelines:
- pipeline: myCIAlias
project: Fabrikam
source: Fabrikam-CI
branch: main
tags:
- Production
- PreProduction
İşlem hattı kaynak tetikleyicileri
Kaynak çalıştırmasının sonucunu tetikleyen işlem hattı çalıştırmaları için, trigger kaynak tanımındaki özellik ayarları varsayılan kaynak yapıt sürümlerini belirler. Bir kaynağı geçerli işlem hattını çalıştırmak için tetikleyici olarak kullanmak amacıyla pipeline özelliğini ayarlamanız trigger gerekir. Eğer bir trigger özelliği eklemezseniz, kaynak yürütmeleri geçerli işlem hattı yürütmelerini başlatmaz.
İşlem hattı bir kaynak tanımındaki bir trigger değere göre tetiklendiğinde, pipeline, version ve branch değerleri genel kaynak tanımı özelliklerine ilişkin olarak yoksayılır. Özellikler trigger yapıt sürümlerini belirler.
Önemli
İşlem hattı kaynak tetikleyicisi tanımladığınızda:
-
pipelineKaynak geçerli işlem hattıyla aynı depodan geliyorsa veyaselftetikleme aynı dalda ve tetikleme olayını başlatan aynı committe ise. -
pipelineKaynak geçerli işlem hattından farklı bir depodan geliyorsa tetikleme, kaynak deposununpipelinevarsayılan dalındadır.
Aşağıdaki tabloda özelliklerin trigger tetikleyici davranışını nasıl etkilediği açıklanmaktadır.
| Tetikleyici özelliği | Tetikleyici davranışı |
|---|---|
true |
Tetikleme, kaynak işlem hattı bir çalıştırmayı başarıyla tamamladığında gerçekleşir. |
branches |
Kaynak işlem hattı, include dallarından birinde çalışmayı başarıyla tamamladığında tetikleme gerçekleşir. |
tags |
Tetikleme, kaynak işlem hattı belirtilen tüm etiketlerle etiketlenmiş bir çalıştırmayı başarıyla tamamladığında gerçekleşir. |
stages |
Tetikleme, kaynak işlem hattı belirtilen stagesöğesini başarıyla çalıştırdığında gerçekleşir. |
branches, tags ve stages |
Başarılı kaynak işlem hattı çalıştırması tüm dal, etiket ve aşama koşullarını karşıladığında tetikleme gerçekleşir. |
Aşağıdaki örnek, basit bir trigger işlem hatları kaynak tanımını göstermektedir.
resources:
pipelines:
- pipeline: SmartHotel
project: otherDevOpsProject
source: SmartHotel-CI
trigger: true
Aşağıdaki örnek, dal koşullarına sahip trigger işlem hattı kaynağını göstermektedir.
resources:
pipelines:
- pipeline: SmartHotel
project: otherDevOpsProject
source: SmartHotel-CI
trigger:
branches:
- releases/*
- resources.triggeringAlias
Aşağıdaki örnek, CD işlem hatlarının tetikleyici koşullarını değerlendirmek için filtreleri kullanır stages . Tetikleyici stages işlecini AND kullanır. Listelelen tüm aşamaların başarıyla tamamlanmasının ardından CD işlem hattı tetiklenir.
resources:
pipelines:
- pipeline: MyCIAlias
project: Fabrikam
source: Fabrikam-CI
trigger:
stages:
- PreProduction
- Production
Aşağıdaki örnek, varsayılan sürüm değerlendirmesi ve tetikleyici için filtreleri kullanır tags .
trigger etiketleri AND işlecini kullanır.
tags Kaynak tanımlarındaki pipeline küme, Git deposundaki dallarda ayarlanan etiketlerden farklıdır.
resources:
pipelines:
- pipeline: MyCIAlias
project: Fabrikam
source: Fabrikam-CI
tags:
- Production
trigger:
tags:
- Production
- Signed
SmartHotel-CI kaynağının işlem hattı her çalıştırıldığında, aşağıdaki işlem hattı çalışır.
-
releasesdallarından birinde veyamaindalında çalışır. - Hem
Verifiedhem deSignedile etiketlenmiş. -
ProductionvePreProductionaşamalarını tamamlar.
resources:
pipelines:
- pipeline: SmartHotel
project: otherDevOpsProject
source: SmartHotel-CI
trigger:
branches:
include:
- releases/*
- main
exclude:
- topic/*
tags:
- Verified
- Signed
stages:
- Production
- PreProduction
İşlem hattı artifaktı indirme
YAML işlem hattındaki download adımı, geçerli çalıştırmayla veya başka bir pipeline kaynakla ilişkili yapıtları indirmek için kullanabilirsiniz.
Yapıtlar yalnızca dağıtım işlerinde otomatik olarak indirilir. Geçerli işlem hattındaki tüm yapıtlar ve tüm pipeline kaynakları otomatik olarak indirilir ve her dağıtım işinin başında kullanılabilir. olarak ayarlayarak downloadnoneveya başka bir pipeline kaynak tanımlayıcısı belirterek bu davranışı geçersiz kılabilirsiniz.
Normal bir derleme işinde artefaktlar otomatik olarak indirilmez. Gerektiğinde açıkça kullanın download .
download adımında, isteğe bağlı artifact özelliği, eser adlarını belirtir. Belirtilmezse, tüm mevcut artefaktlar indirilir.
İsteğe bağlı patterns özellik, indirilebilecek dosyaları temsil eden desenleri tanımlar. Tam şema bilgileri için steps.download tanımına bakın.
- job: deploy_windows_x86_agent
steps:
- download: SmartHotel
artifact: WebTier1
patterns: '**/*.zip'
Kaynaktaki pipeline öğeler $(PIPELINE.WORKSPACE)/<pipeline-identifier>/<artifact-identifier> klasörüne indiriliyor. Daha fazla bilgi için İşlem hattı yapıtlarını yayımlama ve indirme bölümüne bakın. İşlem hattı yapıtlarını indirmenin alternatif bir yolu için Yapıtları İndirme bölümüne bakın.
İşlem hattı kaynak değişkenleri
İşlem hattı kaynağının meta verileri her çalıştırmadaki tüm işler için önceden tanımlanmış değişkenler olarak kullanılabilir. Bu değişkenler yalnızca çalışma zamanında işlem hattınızda kullanılabilir ve bu nedenle işlem hattı derleme zamanında değerlendirilen şablon ifadelerinde kullanılamaz.
Daha fazla bilgi için Değişkenleri Tanımlama ve İşlem hattı kaynak meta verilerini önceden tanımlanmış değişkenler olarak tanımlama kısmına bakın.
Aşağıdaki örnek, işlem hattı kaynağı için myresourcevars önceden tanımlanmış değişken değerlerini döndürür.
resources:
pipelines:
- pipeline: myresourcevars
source: mypipeline
trigger: true
steps:
- script: |
echo $(resources.pipeline.myresourcevars.pipelineID)
echo $(resources.pipeline.myresourcevars.runName)
echo $(resources.pipeline.myresourcevars.runID)
echo $(resources.pipeline.myresourcevars.runURI)
echo $(resources.pipeline.myresourcevars.sourceBranch)
echo $(resources.pipeline.myresourcevars.sourceCommit)
echo $(resources.pipeline.myresourcevars.sourceProvider)
echo $(resources.pipeline.myresourcevars.requestedFor)
echo $(resources.pipeline.myresourcevars.requestedForID)
Kaynak oluşturur
CI çıktısı üreten bir derleme sisteminiz varsa, bu çıktıları builds kaynaklarla tüketebilirsiniz.
Kategori builds genişletilebilir. Kaynak build Jenkins, TeamCity veya CircleCI gibi herhangi bir dış CI sisteminden olabilir.
builds kullanarak derleme hizmetinizdeki yapıtları kullanacak bir uzantı yazabilir veya yeni bir hizmet türü tanıtabilirsiniz.
build tanımında, version en son başarılı derleme olarak varsayılan değerdir. İsterseniz trigger'yi açıkça ayarlamanız gerekir. Şema bilgilerinin tamamı için resources.builds.build tanımına bakın.
Aşağıdaki örnekte Jenkins kaynak türüdür.
resources:
builds:
- build: Spaceworkz
type: Jenkins
connection: MyJenkinsServer
source: SpaceworkzProj # name of the Jenkins source project
trigger: true
Önemli
Tetikleyiciler, barındırılan Jenkins için yalnızca Azure DevOps'un Jenkins sunucusuyla görüş açısına sahip olduğu durumlarda desteklenir.
downloadBuild görevi
Kaynak build yapıtları işlere/deploy-jobs'a otomatik olarak indirilmez. İşlerinizin bir parçası olarak kaynaktan build yapıtları kullanmak için, downloadBuild görevini açıkça eklemeniz gerekir. Her dağıtım veya iş için indirme davranışını özelleştirebilirsiniz.
Görev downloadBuild , çalışma zamanının tanımladığı kaynak türü build için karşılık gelen indirme görevine otomatik olarak çözümür. Kaynaktan build indirilen yapıtlar, $(PIPELINE.WORKSPACE)/<build-identifier>/ klasörüne indirilir.
downloadBuild tanımında, artefaktları indirmek için kaynağı belirtirsiniz. İsteğe bağlı artifact özellik, indirilmesi gereken yapıtları belirtir. Belirtilmezse, kaynakla ilişkili tüm artifaktlar indirilir.
İsteğe bağlı patterns özellik, indirilmesi gereken minimatch yolunu veya minimatch yollarının listesini tanımlar. Boşsa, yapıtın tamamı indirilir. Aşağıdaki örnek yalnızca *.zip dosyalarını indirir.
- job: deploy_windows_x86_agent
steps:
- downloadBuild: Spaceworkz
patterns: '**/*.zip'
Şema bilgilerinin tamamı için steps.downloadBuild tanımına bakın.
Depo kaynakları
repository Aşağıdakiler durumunda sisteme dış depolar hakkında bilgi vermek için anahtar sözcüğünü kullanın:
- İşlem hattınızın başka bir depoda şablonları var.
- Çoklu repo kontrolü özelliğini bir hizmet bağlantısı gerektiren bir depoyla kullanmak istiyorsunuz.
Örneğin:
resources:
repositories:
- repository: common
type: github
name: Contoso/CommonTools
endpoint: MyContosoServiceConnection
Şema bilgilerinin tamamı için resources.repositories.repository tanımına bakın.
Depo kaynak türleri
Azure Pipelines , git, githubve githubenterprise depo türlerini desteklerbitbucket.
-
gittürü Azure Repos Git depolarına atıfta bulunur. - GitHub Enterprise depoları yetkilendirme için GitHub Enterprise hizmet bağlantısı gerektirir.
- Bitbucket Cloud depoları yetkilendirme için Bitbucket Cloud hizmet bağlantısı gerektirir.
Aşağıdaki tabloda kaynak türleri açıklanmaktadır repository :
| Tür | Ad değeri | Örnek |
|---|---|---|
git |
Aynı projede veya aynı kuruluşta farklı bir depo. | Aynı proje: name: otherRepoAynı kuruluştaki başka bir proje: name: otherProject/otherRepo. |
github |
Kullanıcı veya kuruluş da dahil olmak üzere GitHub deposunun tam adı. | name: myOrganization/otherRepo |
githubenterprise |
Kullanıcı veya kuruluş da dahil olmak üzere GitHub Enterprise deposunun tam adı. | name: myEnterpriseOrg/otherRepo |
bitbucket |
Kullanıcı veya kuruluş dahil olmak üzere Bitbucket Bulut deposunun tam adı. | name: MyBitbucketOrg/otherRepo |
Depo kaynak değişkenleri
Bir depo kaynağının meta verileri her çalışma zamanı değişkeni olarak çalıştırıldığında tüm işler tarafından kullanılabilir.
<alias>, kaynak tanımınızdaki repository tanımlayıcıdırrepository.
resources.repositories.<alias>.name
resources.repositories.<alias>.ref
resources.repositories.<alias>.type
resources.repositories.<alias>.id
resources.repositories.<alias>.url
Aşağıdaki repository kaynak tanımının diğer adı common olan, bu nedenle resources.repositories.common.* kullanarak depo kaynak değişkenlerine erişebilirsiniz.
resources:
repositories:
- repository: common
type: git
ref: main
name: repo
variables:
ref: $[ resources.repositories.common.ref ]
name: $[ resources.repositories.common.name ]
id: $[ resources.repositories.common.id ]
type: $[ resources.repositories.common.type ]
url: $[ resources.repositories.common.url ]
steps:
- bash: |
echo "name = $(name)"
echo "ref = $(ref)"
echo "id = $(id)"
echo "type = $(type)"
echo "url = $(url)"
Bir depo kaynağının meta verileri her çalışma zamanı değişkeni olarak çalıştırıldığında tüm işler tarafından kullanılabilir.
<alias>, kaynak tanımınızdaki repository tanımlayıcıdırrepository.
resources.repositories.<alias>.name
resources.repositories.<alias>.ref
resources.repositories.<alias>.type
resources.repositories.<alias>.id
resources.repositories.<alias>.url
resources.repositories.<alias>.version
Örnekteki nesne, bir takma ad olan common'e sahiptir, bu nedenle resources.repositories.common.*'i kullanarak depo kaynak değişkenlerine erişebilirsiniz.
resources:
repositories:
- repository: common
type: git
ref: main
name: Repo
variables:
ref: $[ resources.repositories.common.ref ]
name: $[ resources.repositories.common.name ]
id: $[ resources.repositories.common.id ]
type: $[ resources.repositories.common.type ]
url: $[ resources.repositories.common.url ]
version: $[ resources.repositories.common.version ]
steps:
- bash: |
echo "name = $(name)"
echo "ref = $(ref)"
echo "id = $(id)"
echo "type = $(type)"
echo "url = $(url)"
echo "version = $(version)"
Depolar için checkout anahtar sözcüğü
Kaynaktaki repository depolar, işlerinizde otomatik olarak senkronize edilmez. Anahtar sözcüğünü checkout kullanarak bir kaynakta repository tanımlanan bir depoyu getirebilirsiniz. Daha fazla bilgi için İşlem hattınızdaki birden çok depoyu inceleyin bölümüne bakın. Şema bilgilerinin tamamı için steps.checkout tanımına bakın.
Kaynak kapsayıcılar
CI/CD işlem hatlarınızda kapsayıcı imajlarını tüketmek için containers kaynakları kullanabilirsiniz. Kaynak container , genel veya özel bir Docker kayıt defteri veya Azure Container Registry örneği olabilir.
genel bir kapsayıcı kaynak görüntüsünü işlerinizin bir parçası olarak kullanabilir veya kapsayıcı işlerinde kullanabilirsiniz. İşlem hattınız bir veya daha fazla hizmetin desteğini gerektiriyorsa, hizmet kapsayıcıları oluşturup bunlara bağlanmanız da gerekir. Hizmetler arasında veri paylaşmak için veri depoları kullanabilirsiniz.
Docker kayıt defterindeki görüntüleri kullanmanız gerekiyorsa, anahtar sözcük kullanmadan genel bir type kapsayıcı kaynağı tanımlayabilirsiniz. Örneğin:
resources:
containers:
- container: smartHotel
endpoint: myDockerRegistry
image: smartHotelApp
Şema bilgilerinin tamamı için resources.containers.container tanımına bakın.
Not
Görüntü enabled: 'true' etiketleri için kapsayıcı tetikleyicilerini etkinleştirme söz dizimi, diğer kaynak tetikleyicilerinin söz diziminden farklıdır. Belirli kaynaklar için doğru söz dizimini kullandığınızdan emin olun.
Azure Container Registry kaynak türü
Azure Container Registry görüntülerinizi kullanmak için birinci sınıf kapsayıcı kaynak türünü acrkullanabilirsiniz. Bu kaynak türünü işlerinizde ve otomatik işlem hattı tetikleyicilerini etkinleştirmek için kullanabilirsiniz.
Otomatik işlem hattı tetikleyicilerini kullanmak için Azure Container Registry Katkıda Bulunanı veya Sahip izinlerine sahip olmanız gerekir. Daha fazla bilgi için bkz . Azure Container Registry rolleri ve izinleri.
Azure kapsayıcı kayıt defteriniz için acr kaynak türünü kullanmak istiyorsanız, azureSubscription, resourceGroup ve repository değerlerini belirtmeniz gerekir. Örneğin:
resources:
containers:
- container: petStore
type: acr
azureSubscription: ContosoConnection
resourceGroup: ContosoGroup
registry: petStoreRegistry
repository: myPets
trigger:
tags:
include:
- production*
Not
Tetikleyici değerlendirmesi yalnızca varsayılan dalda gerçekleşir. Doğru varsayılan dalı ayarladığınızdan emin olun veya YAML dosyasını geçerli varsayılan dalla birleştirdiğinizden emin olun. İşlem hattı varsayılan dalını değiştirme hakkında daha fazla bilgi için bkz. İşlem hattı varsayılan dalı.
Kapsayıcı kaynak değişkenleri
Bir kapsayıcıyı kaynak olarak tanımladığınızda, kapsayıcı görüntüsü meta verileri işlem hattına değişken olarak geçer. Kapsayıcı dağıtım görevlerinizde kullanılan tüm işlerde, görüntü, kayıt defteri ve bağlantı ayrıntıları gibi bilgilere erişilebilir.
Kapsayıcı kaynak değişkenleri Docker ve Azure Container Registry ile çalışır. Yerel görüntü kapsayıcıları için kapsayıcı kaynak değişkenlerini kullanamazsınız.
location değişkeni yalnızca kapsayıcı kaynak türüne acr uygulanır.
Aşağıdaki örnekte bir Azure Resource Manager hizmet bağlantısı adlı arm-connection bulunmaktadır. Daha fazla bilgi için bkz. Azure kapsayıcı kayıt defterleri, depolar ve görüntüler.
resources:
containers:
- container: mycontainer
type: acr
azureSubscription: arm-connection
resourceGroup: rg-storage-eastus
registry: mycontainerregistry
repository: hello-world
trigger:
tags:
- latest
steps:
- script: echo |
echo $(resources.container.mycontainer.type)
echo $(resources.container.mycontainer.registry)
echo $(resources.container.mycontainer.repository)
echo $(resources.container.mycontainer.tag)
echo $(resources.container.mycontainer.digest)
echo $(resources.container.mycontainer.URI)
echo $(resources.container.mycontainer.location)
Paket Kaynağı
YAML işlem hatlarında kaynak olarak NuGet ve npm GitHub paketlerini kullanabilirsiniz. Yeni bir paket sürümü yayınlandığında otomatik işlem hattı tetikleyicilerini etkinleştirmek için özelliğini trigger olarak ayarlayın true.
Kaynakları tanımlarken, package özelliğinde <repository>\<name> paketini belirtin ve paketi name'ü type veya NuGet olarak ayarlayın. GitHub paketlerini kullanmak için kişisel erişim belirteci (PAT) tabanlı kimlik doğrulamasını kullanın ve PAT kullanan bir GitHub hizmet bağlantısı oluşturun.
Şema bilgilerinin tamamı için resources.packages.package tanımına bakın.
Paketler varsayılan olarak görevlere otomatik olarak indirilmez. İndirmek için getPackage kullanın.
Aşağıdaki örnekte, adlı bir GitHub npm paketine bağlı, pat-contoso bulunmaktadır. Daha fazla bilgi için bkz . GitHub paketleri.
resources:
packages:
- package: contoso
type: npm
connection: pat-contoso
name: myname/contoso
version: 7.130.88
trigger: true
steps:
- getPackage: contoso
Webhook kaynakları
Not
Azure DevOps Server 2020.1'de yayımlanan webhooks.
Artifaktları kullanmak ve tetikleyicileri otomatikleştirmek için Azure Pipelines işlem hattı, kapsayıcı, derleme ve paket kaynaklarını kullanabilirsiniz, ancak bunları harici olaylar veya hizmetler temelinde dağıtım yapmak için kullanamazsınız. Web kancaları, birinci sınıf Azure Pipelines kaynaklarının desteklemedığı dış web kancası olaylarını temel alarak iş akışınızı otomatikleştirir. Dış olaylara, web kancaları aracılığıyla abone olabilir ve bu olayları işlem hatlarınızı tetiklemek için kullanabilirsiniz.
webhooks YAML işlem hatlarındaki kaynak, iş akışlarını otomatikleştirmek için işlem hatlarınızı GitHub, GitHub Enterprise, Nexus ve Artifactory gibi dış hizmetlerle tümleştirmenize olanak tanır. Azure DevOps'un işlemle ilgili görünürlüğü olmayan şirket içi hizmetler için, işlem hatlarınızı otomatik olarak tetiklemeleri için hizmette web kancalarını yapılandırabilirsiniz.
Bir Webhook olayına abone olmak için işlem hattınızda bir webhook kaynağı tanımlar ve gelen Webhook hizmet bağlantısını belirtirsiniz. Şema bilgilerinin tamamı için resources.webhooks.webhook tanımına bakın.
JSON yük verilerini, biçimini ${{ parameters.<WebhookAlias>.<JSONPath>}}kullanarak işlerinizde değişken olarak kullanabilirsiniz. Aşağıdaki örnek bir web kancası kaynağını tanımlar ve çağırır:
resources:
webhooks:
- webhook: myWebhookResource
connection: myWebHookConnection
steps:
- script: echo ${{ parameters.myWebHookResource.resource.message.title }}
Her işlem hattının tetikleyicilerini özelleştirmek için web kancası kaynağında JSON yükü verilerini temel alan filtreler tanımlayabilirsiniz. Gelen web kancası hizmet bağlantısı bir web kancası etkinliği aldığında, bu web kancası etkinliğine abone olan tüm boru hatları için yeni bir çalıştırma başlatılır.
Aşağıdaki örnek web kancası filtrelerini kullanır.
resources:
webhooks:
- webhook: MyWebhookTrigger
connection: MyWebhookConnection
filters:
- path: repositoryName
value: maven-releases
- path: action
value: CREATED
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host ${{ parameters.MyWebhookTrigger.repositoryName}}
Write-Host ${{ parameters.MyWebhookTrigger.component.group}}
Webhook tetikleyici yapılandırması
Web kancası tetikleyicisini yapılandırmak için, aşağıdaki bilgileri sağlayarak dış hizmette bir web kancası ayarlarsınız:
-
İstek Url'si:
https://dev.azure.com/<org_name>/_apis/public/distributedtask/webhooks/<webhook_connection_name>?api-version=6.0-preview - Gizli dizi (İsteğe bağlı): JSON yükünün güvenliğini sağlamanız gerekiyorsa bir gizli dizi değeri sağlayın.
Azure DevOps Proje Ayarları>Pipeline'lar>Hizmet bağlantıları bölümünde yeni bir gelen webhook hizmet bağlantısı oluşturursunuz. Örneğin, GitHub hizmet bağlantı türü için aşağıdaki bilgileri tanımlayabilirsiniz:
- Web Kancası Adı: Dış hizmetinizde oluşturduğunuz web kancası bağlantı adı.
- Gizli (isteğe bağlı): İsteği doğrulamak için yükün HMAC-SHA1 karması. Web kancanızı oluştururken gizli anahtar kullandıysanız, aynısını sağlamanız gerekir.
-
Http Üst Bilgisi (isteğe bağlı): İstekte, istek doğrulaması için yükün HMAC-SHA1 karma değerini içeren HTTP üst bilgisi. Örneğin, GitHub istek üst bilgisi şeklindedir
X-Hub-Signature.
bir web kancası kullanarak işlem hattınızı tetiklemeniz için POSTadresine bir https://dev.azure.com/<org_name>/_apis/public/distributedtask/webhooks/<webhook_connection_name>?api-version=6.0-preview istekte bulunursunuz. Bu uç nokta genel kullanıma açıktır ve yetkilendirme gerektirmez. İsteğin aşağıdaki örneğe benzer bir gövdesi olmalıdır:
{
"resource": {
"message": {
"title": "Hello, world!",
"subtitle": "I'm using WebHooks!"
}
}
}
Not
Web kancasının istek gövdesinden verilere erişmek yanlış YAML'ye yol açabilir. Örneğin, işlem hattı adımı - script: echo ${{ parameters.WebHook.resource.message }}, geçersiz YAML oluşturan JSON mesajının tamamını çeker. Oluşturulan YAML geçersiz olduğundan, bu web kancası aracılığıyla tetiklenen işlem hattı çalışmaz.
Izlenebilirlik
Azure Pipelines, işlem hattı veya dağıtım işi düzeyinde tüketilen tüm kaynaklar için tam izlenebilirlik sağlar. Azure Pipelines, kaynakları kullanan tüm işlem hattı çalıştırmaları için aşağıdaki bilgileri gösterir:
- İşlem hattını tetikleyen kaynak, bu tetiklemeyi gerçekleştiren kaynaktır.
- Kaynak sürümleri ve tüketilen eserler.
- Her kaynakla ilişkili taahhütler.
- Her kaynakla ilişkili iş öğeleri.
CI işlem hatları için ilişkili CD işlem hattı bilgileri
Uçtan uca izlenebilirlik sağlamak için kaynak aracılığıyla pipelines belirli bir CI işlem hattını kullanan CD işlem hatlarını izleyebilirsiniz. CI işlem hattınızı diğer işlem hatları kullandıysa İlişkili işlem hatları sekmesini Çalıştır görünümünde görürsünüz. Görünümde CI işlem hattınızı ve ondan alınan yapıtları kullanan tüm CD YAML işlem hattı çalıştırmaları gösterilir.
Ortam izlenebilirliği
Bir işlem hattı bir ortama dağıtıldıktan sonra, kullanılan kaynakların listesi ile bunların ilişkili commitlerini ve iş öğelerini görebilirsiniz.
SSS
İşlem hattı kaynaklarını, indirme kısayolunu veya İşlem Hattı Yapıtlarını İndir görevini ne zaman kullanmalıyım?
pipelines Kaynak kullanmak, CI işlem hattındaki yapıtları kullanmanın ve otomatik tetikleyicileri yapılandırmanın bir yoludur. Kaynak, tüketilen sürümü, yapıtları, taahhütleri ve iş öğelerini görüntüleyerek süreç hakkında tam görünürlük sağlar. Bir pipeline kaynağı tanımladığınızda, ilişkili yapıtlar dağıtım görevlerine otomatik olarak indirilir.
Yapıtları derleme işlerinde indirmek veya dağıtım işlerindeki indirme davranışını geçersiz kılmak için kısayolu kullanabilirsiniz download . Daha fazla bilgi için steps.download tanımına bakın.
Boru Hattı Artefaktlarını İndir görevi izlenebilirlik veya tetikleyici sağlamaz, ancak bazen bu görevi doğrudan kullanmak mantıklıdır. Örneğin, derlemedeki yapıtların indirilmesini gerektiren ve farklı bir şablonda saklanan bir betik göreviniz olabilir. Veya şablona işlem hattı kaynağı eklemek istemeyebilirsiniz. Bağımlılıklardan kaçınmak için, Hattı Öğelerini İndir görevini kullanarak tüm derleme bilgilerini bir göreve aktarabilirsiniz.
Docker Hub görüntüm güncelleştirildiğinde işlem hattı çalıştırmayı nasıl tetiklerim?
Kapsayıcı kaynak tetikleyicisi YAML işlem hatları için Docker Hub'da kullanılamaz, bu nedenle klasik bir yayın işlem hattı ayarlamanız gerekir.
- Yeni bir Docker Hub hizmet bağlantısı oluşturun.
- Klasik bir yayın işlem hattı oluşturun ve bir Docker Hub yapıtı ekleyin. Hizmet bağlantınızı ayarlayın ve ad alanını, depoyu, sürümü ve kaynak diğer adını seçin.
- Tetikleyiciyi seçin ve sürekli dağıtım tetikleyicisini Etkinleştir olarak değiştirin. Seçilen depoya yapılan her Docker gönderimi bir yayın oluşturur.
- Yeni bir aşama ve iş oluşturun. Docker oturum açma ve Bash adlı iki görev ekleyin.
- Docker görevi,
logineylemini içerir ve Docker Hub'da oturum açmanızı sağlar. - Bash görevi çalıştırır
docker pull <hub-user>/<repo-name>[:<tag>].
- Docker görevi,
Webhook'umu nasıl doğrulayabilir ve sorunlarını giderebilirim?
Hizmet bağlantısı oluşturun.
Hizmet bağlantınıza başvurun ve
webhooksbölümünde web kancanızı adlandırın.resources: webhooks: - webhook: MyWebhookTriggerAlias connection: MyServiceConnectionİşlem hattınızı çalıştırın. Web kancası Azure'da kuruluşunuz için dağıtılmış bir görev olarak oluşturulur.
POSTgövdesinde geçerli JSON ile birhttps://dev.azure.com/<organization>/_apis/public/distributedtask/webhooks/<webhook-name>?api-version=<apiversion>API çağrısı gerçekleştirin. 200 durum kodu yanıtı alırsanız, webhook'unuz işlem hattınız tarafından kullanılmaya hazırdır.
hatasını Cannot find webhook for the given webHookId ...içeren bir 500 durum kodu yanıtı alırsanız kodunuz varsayılan dalınız olmayan bir dalda olabilir. Bu sorunu gidermek için:
- İşlem hattı sayfanızda Düzenle'yi seçin.
- Diğer eylemler menüsünde Tetikleyiciler'i seçin.
- YAML sekmesini ve ardından Kaynakları al'ı seçin.
- El ile ve zamanlanmış derlemeler için Varsayılan dal'ın altında özellik dalınızı güncelleyin.
- Kaydet ve kuyruğa al'ı seçin.
- Bu işlem hattı başarıyla çalıştırıldıktan sonra,
POSThttps://dev.azure.com/<organization>/_apis/public/distributedtask/webhooks/<webhook-name>?api-version=<apiversion>'ye gövdede geçerli bir JSON ile bir API çağrısı gerçekleştirin. Şimdi 200 durum kodu yanıtı almanız gerekir.
Kaynak tetikleyicim neden çalışmadı?
Kaynak tetikleyicileri şu nedenlerle yürütülemez:
- Sağlanan hizmet bağlantısının kaynağı geçersiz.
- Tetikleyici yapılandırılmadı veya tetikleyicide söz dizimi hataları var.
- Tetikleyici koşulları eşleşmiyor.
İşlem hattı tetikleyicilerinin neden yürütülemediğine bakmak için işlem hattı tanımı sayfasındaki Tetikleyici sorunları menü öğesini seçin. Tetikleyici sorunları depo kaynakları için kullanılamaz.
Tetikleyici sorunları sayfasında, hata ve uyarı iletileri tetikleyicinin neden başarısız olduğunu açıklar.