Ölçeklendirme ayarlarını yapılandırarak Yönetilen DevOps Havuzları örneğinizin performansını ve maliyetini yönetebilirsiniz. Fiyatlandırma ve performans hakkında bilgi için bkz . Maliyet ve performansı yönetme.
Ajan durumu
Havuzları şu şekilde yapılandırabilirsiniz:
Havuz için varsayılan ayar "stateless"tir, bu durumu her seferinde Fresh aracısını kullanarak elde edebilirsiniz. Bazı durumlarda, ekipler önceki işlem hattı çalıştırması sırasında oluşturulan paketleri veya dosyaları yeniden kullanmak için aracıları yeniden kullanmak isteyebilir. yapı iş yükü, ekiplerin durumu muhafaza etmek ve ajanları yeniden kullanmak istediği yaygın bir senaryodur. Yönetilen DevOps Havuzları aracılığıyla durum bilgisi olan havuzlar elde ederken, bunu en iyi güvenlik yöntemleriyle dengeleyebilirsiniz. Aracı varsayılan olarak en fazla yedi gün yeniden kullanılabilir, ancak daha erken geri dönüştürülecek şekilde yapılandırabilirsiniz.
Not
Güvenlik ajanları, kullanıcıların tedarik zinciri saldırılarına karşı savunma olarak durumsuz havuzlar kullanmasını önerir.
Her seferinde Taze ajan durumu ayarını kullanın.
Durumsuz havuzlar
Durum bilgisi olmayan bir aracı yapılandırdığınızda, her iş için yeni bir aracı temin edilir. İş tamamlandıktan sonra etken silinir.
Durumsuz aracıların yaşam döngüsü ve Azure Pipelines'de nasıl kullanıldıkları hakkında daha fazla bilgi edinmek için Durumsuz aracıların yaşam döngüsü ve ayırmada olası gecikmeler bölümüne bakın.
Yönetilen DevOps Havuzları kaynağındaki agentProfile özelliği kullanarak ajanları yapılandırabilirsiniz. Aşağıdaki örnek bir Stateless aracı belirtir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless"
}
}
}
]
}
Bir havuz agent-profile veya güncelleştirirken parametresini kullanarak aracıları yapılandırabilirsiniz.
Aşağıdaki örnek, hazır bekleyen aracıları olmayan bir Stateless aracıyı belirtir.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
Aşağıdaki örnekte agent-profile.json dosyasının içeriği gösterilmektedir.
{
"Stateless": {}
}
Yönetilen DevOps Havuzları kaynağındaki agentProfile özelliği kullanarak ajanları yapılandırabilirsiniz. Aşağıdaki örnek bir Stateless aracı belirtir.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
}
}
}
Ajan durumunuher seferinde Yeni bir ajan olarak ayarladığınızda, her iş için yeni bir ajan temin edilir. İş tamamlandıktan sonra etken silinir.
Durum bilgisi olan havuzlar
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"maxAgentLifetime": "7.00:00:00",
"gracePeriodTimeSpan": "00:30:00",
"kind": "Stateful"
}
}
}
]
}
Bir havuz agent-profile veya güncelleştirirken parametresini kullanarak aracıları yapılandırabilirsiniz.
Aşağıdaki örnek, yedi günlük maksimum yaşam süresine ve otuz dakikalık yetkisiz kullanım süresine sahip bir aracıyı belirtir Stateful .
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
Aşağıdaki örnekte dosyanın içeriği gösterilmektedir agent-profile.json .
{
"Stateful":
{
"maxAgentLifetime": "7.00:00:00",
"gracePeriodTimeSpan": "00:30:00"
}
}
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateful'
maxAgentLifetime: '7.00:00:00'
gracePeriodTimeSpan:'00:30:00'
}
}
}
Same aracısını etkinleştirdiğinizde birden çok derleme tarafından kullanılabilir (kaynak şablonlarındaki "kind": "stateful" ayarı veya Azure CLI { "stateful": {...} } ayarı), havuzdaki aracılar durum bilgisi içerir. Durum bilgisi olan havuzları aşağıdaki ayarları kullanarak yapılandırabilirsiniz:
Bekleme aracıları için en uzun yaşam süresi (maxAgentLifetime), durum bilgisi olan bir havuzdaki bir aracının kapatılıp atılmadan önce çalışabileceği maksimum süreyi yapılandırır.
Bekleme aracıları için en uzun yaşam süresi biçimi dd.hh:mm:ss. Bekleme aracıları için maksimum yaşam süresinin varsayılan değeri, izin verilen yedi günlük en uzun süreye (7.00:00:00) ayarlanmıştır.
Geri Alma Süresi (gracePeriodTimeSpan), durumlu bir havuzdaki bir aracının tüm geçerli ve kuyruğa alınmış işler bittikten sonra kapanmadan önce yeni işler için bekleme süresini yapılandırır. Varsayılan ayar, Vade Süresi olmamasıdır ve formatı dd.hh:mm:ss biçimindedir.
Önemli
Bekleme ajanları için maksimum yaşam süresi dolduğunda bir iş çalışıyorsa, aracı işin bitmesine kadar kapanmaz, ancak iş iki günden uzun sürerse durdurulabilir. Yönetilen DevOps Havuzlarındaki bireysel işler, bekleme aracıları için iki günden fazla yapılandırılmış maksimum yaşam süresine sahip bir bekleme aracısında çalıştıkları durumda bile en fazla iki gün sürebilir. (Yönetilen DevOps Havuzu, iki günden uzun süre çalışan işlem hatlarını, hepsi iki gün veya daha kısa sürede tamamlanan birden fazla daha kısa işe bölerek destekler.)
Durumsuz havuzlardaki aracılar kapatılır ve her işten sonra atılır. Durum bilgisine sahip havuzlarda bulunan aracılar, aşağıdaki koşullardan herhangi biri karşılandığında çalışmaya devam ediyor.
- İlk iş tamamlandığında başka bir iş kuyruğa alınırsa, Yönetilen DevOps Havuzları kuyruğa alınan işi kapatmak yerine ilk işi çalıştıran aracıya gönderir.
- Havuz için bir geçiş süresi yapılandırılmışsa, aracılar kapatmadan önce geçiş süresi boyunca belirtilen süre boyunca yeni görevleri beklerler.
- Bekleme aracıları etkinse ve ajan görüntüsü aktif sağlama dönemi ölçütlerini karşılıyorsa, aracı çalışmaya devam eder ve işleri bekler.
Durum bilgisi olan havuzlarda çalışan ajanlar, önceki koşullar doğru olsa bile, bekleme durumundaki ajanlar için maksimum çalışma süresi boyunca sürekli çalışırsa kapatılır ve atılır. Örneğin, bekleme aracıları için en uzun yaşam süresi üç gün yapılandırılırsa ve Bekleme aracısı moduEl ile, Tüm Hafta Düzeni (Makineler 7/24 kullanılabilir) olarak ayarlanırsa, aracılar üç sürekli çalışma süresinden sonra yeniden başlatılır.
Önemli
Durum bilgisi olan havuzlardaki aracılar, iş bittikten sonra da, bir bekleme süresi yoksa, yedek aracılar için etkin sağlama dönemi yoksa ve aracı ile eşleşen işleme alınmayı bekleyen işler yoksa, kapatılabilir ve atılabilir. Bir aracı atıldığında, herhangi bir durum kaybolur.
Geçiş süreleri, tutarlı yüke sahip işlem hatları için durum bilgisine sahip havuzları çalıştırmanın en uygun maliyetli yolunu sağlar. Geçiş süreleri, aracıları çevrimiçi ve işleri kabul etmeye hazır tutmak için bekleme aracı modunun kullanılmasını zorunlu kılmaz.
Bekleme aracısı modu
Havuz oluşturduğunuzda , bekleme aracısı modu varsayılan olarak kapalıdır.
Bekleme aracısı modu kapalı olduğunda, işlem hatlarınıza hemen atanacak yedek aracı yoktur. İşlem hatlarınızın, isteğe bağlı bir aracın sağlanabilmesi için birkaç saniye ile 15 dakika arasında beklemesi gerekebilir. Daha iyi performans için Bekleme aracısı modunu etkinleştirin ve iş yükünüz için kapasite sağlayan bir bekleme aracısı zamanlaması yapılandırın.
Hazır bekleyen aracı zamanlamasını yapılandırdığınızda, Yönetilen DevOps Havuzları sağlanan aracıların sayısını, geçerli sağlama düzeninde belirttiğiniz hazır bekleyen aracı sayısıyla düzenli aralıklarla karşılaştırır. Yedekteki ajan sayısını korumak için gerekli oldukça yeni ajanlar başlatır.
Aracılar bölmesini kullanarak havuzunuzdaki aracıların geçerli durumunu ve sayısını görüntüleyebilirsiniz.
Önemli
Bir plandaki tahsis sayısı, Havuz ayarlarında yapılandırdığınız En fazla aracı değerinden büyük olamaz.
Aşağıdaki ayarları kullanarak bekleme aracısı modunu yapılandırabilirsiniz:
-
Kapalı: Bekleme aracısı modu kapalıdır ve işler kuyruğa alınırken isteğe bağlı olarak aracılar sağlanır.
-
El ile: El ile bekleme zamanlamasını yapılandırın.
-
Otomatik: Aracı kullanım geçmişine göre otomatik bekleme zamanlaması kullanın. Bunu maliyet ve performans için yapılandırabilirsiniz.
Özelliğin resourcePredictionsProfile bölümünü kullanarak hazır bekleyen aracıları agentProfile yapılandırabilirsiniz.
"kind": "Manual" öğesini, sıfırdan bir düzen, hafta içi düzeni veya tüm hafta düzeni yapılandırmak amacıyla ayarlayın ve resourcePredictions bölümünde bu düzenin ayrıntılarını belirtin. Otomatik bekleme aracılarını yapılandırmak için "kind": "Automatic" öğesini ayarlayın. Standby ajanları devre dışı bırakmak için ResourcePredictionsProfile bölümünü atlayın. Her ölçeklendirme türünü yapılandırma hakkında ayrıntılı bilgi için aşağıdaki bölümlere bakın.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {...}
}
}
}
]
}
Bir havuz agent-profile veya güncelleştirirken parametresini kullanarak aracıları yapılandırabilirsiniz.
Parametresi resourcePredictionsProfile olan agent-profile bölümünü kullanarak yedek bekleme ajanlarını yapılandırabilirsiniz.
"Manual": {} ayarını kullanarak sıfırdan başlama düzeni, hafta içi düzeni veya tüm hafta düzeni yapılandırabilir ve resourcePredictions bölümünde düzenin ayrıntılarını belirtebilirsiniz. Otomatik bekleme aracılarını yapılandırmak için "Automatic": {} ayarını kullanın. Her ölçeklendirme türünü yapılandırma hakkında ayrıntılı bilgi için aşağıdaki bölümlere bakın.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
Aşağıdaki örnekte dosyanın içeriği gösterilmektedir agent-profile.json :
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {...}
}
Özelliğin resourcePredictionsProfile bölümünü kullanarak hazır bekleyen aracıları agentProfile yapılandırabilirsiniz.
"kind": "Manual" ayarını kullanarak sıfırdan başlama düzeni, hafta içi düzeni veya tüm hafta düzeni yapılandırabilir ve resourcePredictions bölümünde düzenin ayrıntılarını belirtebilirsiniz. Otomatik bekleme aracılarını yapılandırmak için kind: 'Automatic' ayarını kullanın. Standby ajanları devre dışı bırakmak için ResourcePredictionsProfile bölümünü atlayın. Her ölçeklendirme türünü yapılandırma hakkında ayrıntılı bilgi için aşağıdaki bölümlere bakın.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Manual'
}
resourcePredictions: {...}
}
}
}
Kılavuz
Manuel mod, sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hattı kullanım düzenlerini bilen ekipler için en iyi seçenektir. El ile seçeneğini kullandığınızda, ön sağlama düzeninizi tanımlamanız gerekir. Şemanızı, havuzdaki hangi aracıların kullanılma olasılığının en yüksek olduğunu ve kaç aracının kullanılma olasılığını anladığınıza göre tanımlarsınız. Öngörülen talebi karşılayan aracıların sağlama sayısını belirtirsiniz.
Kendi sağlama zamanlamanızı oluşturabilir veya önceden tanımlanmış zamanlamalardan birini seçebilirsiniz. Zamanlamaları belirtmek için kullanılacak saat dilimini yapılandırabilirsiniz. Ön Sağlama Zaman Dilimi için varsayılan değer (UTC) Eşgüdümlü Evrensel Saat'tir.
El ile hazır bekleyen ajanları aşağıdaki üç şekilden biriyle yapılandırabilirsiniz.
Ön sağlama hızlı başlangıçlarının her biri aşağıdaki genel ayarlara sahiptir (bu hızlı başlangıca özgü ayarlara ek olarak):
-
Önceden sağlama Saat Dilimi: Önceden sağlama düzeninizdeki zaman dilimleri için saat dilimini yapılandırmanıza olanak tanır. Ön Yapılandırma Saat Dilimi için varsayılan değer (UTC) Eşgüdümlü Evrensel Saat'tir.
-
Bekleme aracısı yüzdesi: Her görüntü için istediğiniz bekleme aracılarının yüzdesini yapılandırılır. Tüm görüntülerin eşit olarak sağlandığından emin olmak için girebilir
* veya yüzdeyi temsil etmek için 0 ile 100 arasındaki bir tamsayı belirtebilirsiniz. Yüzde belirtirseniz, tüm görüntülerin toplamı 100'e eşit olmalıdır. Tek bir görüntü varsa * veya 100 belirtin. Azure Resource Manager şablonları (ARM şablonları) kullandığınızda, bölümünde images ayarını yapılandırabilirsiniz. Daha fazla bilgi için bkz Görüntüleri yapılandırma.
el ile bekleme aracısı sağlamayı resourcePredictionsProfile bölümünde agentProfilebelirtebilirsiniz. Ayrıntıları resourcePredictions bölümünde yapılandırabilirsiniz.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
}
}
]
}
özelliğini kullanarak şemanız için istenen saat dilimini timeZone belirtin. Varsayılan değer UTC değeridir. Bu özelliğin saat dilimi adlarının listesini almak için bkz . TimeZoneInfo.GetSystemTimeZones Yöntemi.
Bekleme ajanlarının zamanlamasını daysData listesini kullanarak tanımlayabilirsiniz. Listede daysData bir veya yedi öğe olabilir.
daysData Yedi öğe içeren bir liste, Pazar'dan başlayarak haftanın günlerine eşler. Bu yedi öğeden her birinin sıfır veya daha fazla "time": count girdisi olabilir; 24 saatlik biçimde bir zaman ve bekleme aracısı sayısı belirtilebilir. Belirtilen bekleme aracılarının sayısı, aynı gün veya sonraki bir günde olabilecek bir sonraki "time": count girişe kadar korunur.
Tek öğe içeren bir daysData liste, tanımlar; burada tek bir "time": count giriş, tüm hafta boyunca bekleyen aracı sayısına karşılık gelir.
Aşağıdaki örnek, manuel bekleme ajanı düzenidir. Değer Eastern Standard Time, Pazartesi'den Cuma'ya kadar, her gün 09:00'dan itibaren (bekleme aracısı sayısı 1) ve 17:00'ye kadar (bekleme aracısı sayısı 0) sağlanan tek bir aracı ile kullanılır.
{
"kind": "Stateless",
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{}
]
},
"resourcePredictionsProfile": {
"kind": "Manual"
}
}
Tek daysData bir öğe, saat ve hazır bekleyen aracı sayılarını içeren bir sözlük içerir. Her "time" : count girdi, 24 saatlik biçimde belirtilen saatte başlayarak zamanlanması gereken bekleme aracılarının sayısını belirtir. Ardışık "time" : count girişler, o gün için zamanlanmış aracı sayılarının sırasını belirtir.
"daysData": [
{}, # Schedule of standby agent count adjustments for Sunday
{ # Schedule of standby agent count adjustments for Monday
"09:00:00": 1, # Adjust standby agent count to 1
"17:00:00": 0 # Adjust standby agent count to 0
},
{ # Schedule of standby agent count adjustments for Tuesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Wednesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Thursday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Friday
"09:00:00": 1,
"17:00:00": 0
},
{} # Schedule of standby agent count adjustments for Saturday
]
Bekleme aracısı sayıları, günün sonunda veya haftanın sonunda otomatik olarak sıfıra sıfırlanmaz. Boş daysData bir öğe belirtilmesi, o gün için hazırda bekleyen ajanları devre dışı bırakmaz. Boş daysData bir öğe, o gün için yedek ajan sayısı programında hiçbir değişiklik olmadığı anlamına gelir. Belirli bir zaman periyodundan başlayarak bekleme aracısını sıfırlamak için, "time" : count ve count içeren bir 0 girişini açıkça sağlamalısınız.
Örnekler
Önceki günün sonunda belirtilen hazır bekleyen aracı sayısını değiştirmemek için, (veya haftanın ilk dönemini yapılandırıyorsanız), sıfır kayıtlı bir daysData öğe belirtin.
{}
Tek bir bekleme aracısını 09:00:00 konumunda başlatmak ve 17:00:00 konumunda durdurmak için (resourcePredictions özelliği tarafından belirtilen saat dilimini kullanarak), aşağıdaki yapılandırmayı belirtin.
{
"09:00:00": 1,
"17:00:00": 0
}
Gece yarısından 09:00:00başlayarak 10 bekleme aracısına kadar 17:00:00tek bir bekleme aracısını zamanlamak için aşağıdaki yapılandırmayı belirtin:
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
Bir bekleme aracını belirtilen günün başlangıcından itibaren 09:00:00 ve ertesi gün 17:00:00 duracak şekilde zamanlamak için iki ardışık daysData öğe kullanın.
{
"09:00:00": 1
},
{
"17:00:00": 0
}
Bir havuz agent-profile veya güncelleştirirken parametresini kullanarak aracıları yapılandırabilirsiniz.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
Aşağıdaki örnekte agent-profile.json dosyasının içeriği gösterilmektedir. Parametrenin resourcePredictionsProfile bölümünde el ile bekleme aracısı sağlamayı agent-profile belirtebilirsiniz.
resourcePredictions bölümündeki ayrıntıları yapılandırın.
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
Düzeninizin saat dilimini, timeZone özelliğini kullanarak belirtin. Varsayılan değer UTC değeridir. Bu özelliğin saat dilimi adlarının listesini almak için bkz . TimeZoneInfo.GetSystemTimeZones Yöntemi.
Liste, daysData yedekte bekleyen temsilciler için zamanlamayı tanımlar. Listede daysData bir veya yedi öğe olabilir.
Yedi öğeden oluşan bir daysData liste, Pazar'dan başlayarak haftanın günlerine eşler. Bu yedi öğeden her birinin sıfır veya daha fazla "time": count girdisi olabilir; 24 saatlik biçimde bir zaman ve bekleme aracısı sayısı belirtilebilir. Belirtilen bekleme aracılarının sayısı, aynı gün veya sonraki bir günde olabilecek bir sonraki "time": count girişe kadar korunur.
Tek daysData öğeli bir liste, tek girişin tüm hafta boyunca bekleyen aracı sayısına karşılık geldiği "time": count tanımlar.
Aşağıdaki örnek, manuel bekleme ajanı düzenidir. Düzen, pazartesiden cumaya kadar etkin olan ve 09:00'dan (bekleme aracısı sayısı Eastern Standard Time) 17:00'ye kadar (bekleme aracısı sayısı 1) tek bir aracı ile 0 değerini kullanır:
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{
"09:00:00": 1,
"17:00:00": 0
},
{}
]
}
}
Tek bir daysData öğe, zamanlar ve bekleme konumundaki ajan sayıları için bir sözlük içerir. Her "time" : count girdi, 24 saatlik biçimde belirtilen saatte başlayarak zamanlanması gereken bekleme aracılarının sayısını belirtir. Sıralı "time" : count girdiler, o gün için planlanan ajan sayılarının sırasını tanımlar.
"daysData": [
{}, # Schedule of standby agent count adjustments for Sunday
{ # Schedule of standby agent count adjustments for Monday
"09:00:00": 1, # Adjust standby agent count to 1
"17:00:00": 0 # Adjust standby agent count to 0
},
{ # Schedule of standby agent count adjustments for Tuesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Wednesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Thursday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Friday
"09:00:00": 1,
"17:00:00": 0
},
{} # Schedule of standby agent count adjustments for Saturday
]
Bekleme aracısı sayıları, günün sonunda veya haftanın sonunda otomatik olarak sıfıra sıfırlanmaz. Boş daysData bir öğe belirtilmesi, o gün için hazırda bekleyen ajanları devre dışı bırakmaz. Boş daysData bir öğe, o gün için hazır bekleyen aracı sayısı zamanlaması için hiçbir değişiklik olmadığı anlamına gelir. Belirli bir zaman periyodundan başlayarak bekleme aracısını sıfıra ayarlamak için, bir "time" : count girişini, count0 açıkça sağlamanız gerekir.
Örnekler
Belirtilen bekleme aracısı sayısını önceki günün sonunda ayarlamak istemiyorsanız (veya haftanın ilk dönemini yapılandırıyorsanız), sıfır giriş içeren bir daysData öğesi belirtin.
{}
(özelliğinde belirttiğiniz saat dilimini kullanarak) 09:00:00'de başlayıp 17:00:00'de duracak tek bir bekleme ajanını planlamak için aşağıdaki konfigürasyonu belirtin:
{
"09:00:00": 1,
"17:00:00": 0
}
Gece yarısından 09:00:00başlayarak 10 bekleme aracısına kadar 17:00:00tek bir bekleme aracısını zamanlamak için aşağıdaki yapılandırmayı belirtin:
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
Bir bekleme aracını belirtilen günün başlangıcından itibaren 09:00:00 ve ertesi gün 17:00:00 duracak şekilde zamanlamak için iki ardışık daysData öğe kullanın.
{
"09:00:00": 1
},
{
"17:00:00": 0
}
el ile bekleme aracısı sağlamayı resourcePredictionsProfile bölümünde agentProfilebelirtebilirsiniz. Ayrıntıları resourcePredictions şu bölümde yapılandırabilirsiniz:
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Manual'
}
resourcePredictions: {
timeZone: 'Eastern Standard Time'
daysData: [
{}
{
'00:00:00': 1
'04:00:00': 0
}
{}
{}
{}
{}
{}
]
}
}
}
}
özelliğini kullanarak şemanız için istenen saat dilimini timeZone belirtin. Varsayılan değer UTC değeridir. Bu özelliğin saat dilimi adlarının listesini almak için bkz . TimeZoneInfo.GetSystemTimeZones Yöntemi.
Liste, daysData yedekte bekleyen temsilciler için zamanlamayı tanımlar. Listede daysData bir veya yedi öğe olabilir.
daysData Yedi öğeden oluşan bir liste, Pazar'dan başlayarak haftanın günlerine karşılık gelir. Bu yedi öğeden her birinin sıfır veya daha fazla 'time': count girdisi olabilir; 24 saatlik biçimde bir zaman ve bekleme aracısı sayısı belirtilebilir. Belirtilen bekleme aracılarının sayısı, aynı gün veya sonraki bir günde olabilecek bir sonraki 'time': count girişe kadar korunur.
Tek daysData öğeli bir liste, tek girişin tüm hafta boyunca bekleyen aracı sayısına karşılık geldiği 'time': count tanımlar.
Aşağıdaki örnek, Eastern Standard Time değerini kullanan, saat 09:00'dan 17:00'ye kadar (bekleme aracısı sayısı 1), Pazartesi'den Cuma'ya tek bir aracı sağlayan el ile hazır beklemede olan bir aracı düzenidir (bekleme aracısı sayısı 0):
{
kind: 'Stateless'
resourcePredictions: {
timeZone: 'Eastern Standard Time'
daysData: [
{}
{
'09:00:00': 1
'17:00:00': 0
}
{
'09:00:00': 1
'17:00:00': 0
}
{
'09:00:00': 1
'17:00:00': 0
}
{
'09:00:00': 1
'17:00:00': 0
}
{
'09:00:00': 1
'17:00:00': 0
}
{}
]
}
resourcePredictionsProfile: {
kind: 'Manual'
}
}
Tek bir daysData öğe, zamanlar ve hazır bekleme aracılarının sayılarının sözlüğünü içerir. Her 'time' : count girdi, 24 saatlik biçimde belirtilen saatte başlayarak zamanlanması gereken bekleme aracılarının sayısını belirtir. Ardışık 'time' : count girişler, o gün için planlanan acente sayılarının sırasını belirtir.
daysData: [
{} // Schedule of standby agent count adjustments for Sunday
{ // Schedule of standby agent count adjustments for Monday
'09:00:00': 1 // Adjust standby agent count to 1
'17:00:00': 0 // Adjust standby agent count to 0
}
{ // Schedule of standby agent count adjustments for Tuesday
'09:00:00': 1
'17:00:00': 0
}
{ // Schedule of standby agent count adjustments for Wednesday
'09:00:00': 1
'17:00:00': 0
}
{ // Schedule of standby agent count adjustments for Thursday
'09:00:00': 1
'17:00:00': 0
}
{ // Schedule of standby agent count adjustments for Friday
'09:00:00': 1
'17:00:00': 0
}
{} // Schedule of standby agent count adjustments for Saturday
]
Bekleme aracısı sayıları, günün sonunda veya haftanın sonunda otomatik olarak sıfıra sıfırlanmaz ve boş daysData bir öğe belirtilmesi o gün için bekleme aracılarını devre dışı bırakmaz. Boş bir daysData öğe, o gün için bekleme ajanı sayısı programında hiçbir değişiklik olmadığı anlamına gelir. Belirli bir zaman diliminden itibaren bekleme aracısını sıfırlamak için "time" : countcount0 ile açıkça bir giriş sağlamalısınız.
Örnekler
Önceki günün sonunda belirtilen hazır bekleyen aracı sayısını değiştirmemek için, (veya haftanın ilk dönemini yapılandırıyorsanız), sıfır kayıtlı bir daysData öğe belirtin.
{}
Tek bir bekleme aracısını 09:00:00 tarihinde başlatmak ve 17:00:00 tarihinde durdurmak için (özellikte belirtilen saat dilimini kullanarak) aşağıdaki yapılandırmayı belirtin:
{
'09:00:00': 1
'17:00:00': 0
}
Gece yarısından 09:00:00başlayarak 10 bekleme aracısına kadar 17:00:00tek bir bekleme aracısını zamanlamak için aşağıdaki yapılandırmayı belirtin:
{
'00:00:00': 1
'09:00:00': 10
'17:00:00': 0
}
Bir bekleme aracını belirtilen günün başlangıcından itibaren 09:00:00 ve ertesi gün 17:00:00 duracak şekilde zamanlamak için iki ardışık daysData öğe kullanın.
{
'09:00:00': 1
}
{
'17:00:00': 0
}
Sıfırdan başlama
Sıfırdan başlamayı seçerseniz, sağlama şemanız olarak sağlama dönemlerinin listesini ekleyebilirsiniz. Her sağlama dönemi bir başlangıç günü, bitiş günü, saat dilimi, başlangıç saati, bitiş saati ve sayıdan oluşur. Sağlama dönemleri birbiriyle örtüşemez.
| Özellik |
Açıklama |
|
Çok Günlü |
Bu seçeneği belirlediğinizde, sağlama düzeniniz için hem Başlangıç Günü hem de Bitiş Günü'nüzü yapılandırabilirsiniz. |
|
Sonraki döneme kadar |
Bu seçeneği belirlediğinizde, sağlama dönemi Başlangıç Saati değerinden sonraki sağlama döneminin başlangıcına kadar çalışır. |
|
Başlangıç Günü |
Sağlama döneminin başladığı gün. |
|
Bitiş Günü |
Sağlama döneminin bittiği gün.
Çok Gün seçiliyse gereklidir. |
|
Başlangıç Zamanı |
Sağlama sürecinin başladığı zaman. |
|
Bitiş Zamanı |
Sağlama döneminin sona ermesi.
Sonraki döneme kadar seçilmediği sürece gereklidir. |
|
Sayı |
Hazırda bekletilecek ajanların sayısı. Bu sayı sıfırdan büyük olmalı ve Havuz ayarlarındakiMaksimum aracı değerinden büyük olmamalıdır. |
Sağlama dönemi oluşturduktan sonra, dönemi Ön sağlama düzeni listesinden silebilir veya düzenleyebilirsiniz.
Aşağıdaki örnekte, Pazartesi sabahları sabah 12:00 ile 05:00 EST arasında bir ajan sağlanarak manuel bir şema yapılandırma gösterilmektedir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
}
}
]
}
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Manual'
}
resourcePredictions: {
timeZone: 'Eastern Standard Time'
daysData: [
{}
{
'00:00:00': 1
'04:00:00': 0
}
{}
{}
{}
{}
{}
]
}
}
}
}
Hafta içi düzeni
Hafta içi düzenini seçerseniz, belirtilen sayıda bekleme aracısının hafta içi her gün beklemede olduğu bir başlangıç saati ve bitiş saati belirtebilirsiniz.
| Özellik |
Açıklama |
|
Başlangıç Zamanı |
Sağlama sürecinin başladığı zaman. |
|
Bitiş Zamanı |
Sağlama döneminin sona ermesi. |
|
Sağlama Sayısı |
Hazırda bekletilecek ajanların sayısı. Bu sayı sıfırdan büyük olmalı ve Havuz ayarlarında yapılandırılan En fazla aracı değerinden büyük olmamalıdır. |
Aşağıdaki örnekte, Doğu Saati (UTC-5) kullanılarak, çalışma saatlerinde dört aracı yapılandırılır, çalışma saatleri dışında ve hafta sonlarında ise hiçbir aracı kullanılmaz.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{}
]
}
}
}
}
]
}
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{
"09:00:00": 4,
"17:00:00": 0
},
{}
]
}
}
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Manual'
}
resourcePredictions: {
timeZone: 'Eastern Standard Time'
daysData: [
{}
{
'09:00:00': 4
'17:00:00': 0
}
{
'09:00:00': 4
'17:00:00': 0
}
{
'09:00:00': 4
'17:00:00': 0
}
{
'09:00:00': 4
'17:00:00': 0
}
{
'09:00:00': 4
'17:00:00': 0
}
{}
]
}
}
}
}
Tüm hafta düzeni
Tüm hafta düzenini seçerseniz, her zaman kullanılabilir olmasını istediğiniz aracı sayısını belirtebilirsiniz.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{
"00:00:00": 1
}
]
}
}
}
}
]
}
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{
"00:00:00": 1
}
]
}
}
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Manual'
}
resourcePredictions: {
timeZone: 'Eastern Standard Time'
daysData: [
{
'00:00:00': 1
}
]
}
}
}
}
Otomatik
Kullanım desenlerinizi bilmiyorsanız ve geçmiş verilere göre otomatik tahmine güvenmek istiyorsanız Otomatik'i seçin. Aşağıdaki beş seçeneğe sahip bir kaydırıcı kullanarak maliyet ve aracı performansı arasında denge sağlayabilirsiniz. Yönetilen DevOps Havuzları, son üç haftalık geçmiş verileriniz (varsa) üzerinde bir sorgu çalıştırır. Havuzun kuyruğa alınmış oturumlarını beş dakikalık dönemler halinde düzenler ve belirtilen yüzdelik dilimi (ani dalgalanmaları önlemek için) her saat için atar.
-
En uygun maliyetli (
MostCostEffective): 10. yüzdelik dilim.
-
Daha uygun maliyetli (
MoreCostEffective): 25. yüzdelik dilim.
-
Dengeli (varsayılan) (
Balanced): 50. yüzdebirlik.
-
Daha fazla performans (
MorePerformance): 75. yüzdelik dilim.
-
En iyi performans (
BestPerformance): 90. yüzdebirlik.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-09-20",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"predictionPreference": "Balanced",
"kind": "Automatic"
}
}
}
}
]
}
{
"Stateless": {},
"resourcePredictionsProfile": {
"Automatic": {
"predictionPreference": "Balanced"
}
}
}
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Automatic'
predictionPreference: 'Balanced'
}
}
}
}
Aracıların yaşam döngüsü ve tahsis sürecindeki olası gecikmeler
bekleme aracılarını stateless şemasını kullanarak etkinleştirdiğinizde, ready durumundan allocated durumuna geçmeden ve işlem hattı çalıştırmadan önce Azure Pipelines aracısını yüklemeniz ve yapılandırmanız gerekir.
Yönetilen DevOps Havuzları yeni aracılar sağladığında en son Azure Pipelines aracısını indirmeyi dener; böylece hazır duruma geçmeden önce hazır bekleyen aracılara zaten indirilir. Başlatma, bağlantı ve işin başlatılması, havuzun SKU hızına, kullanılan görüntüye ve ağ yüküne bağlı olarak 10 saniyeden bir dakikaya kadar sürebilir. Ayrıca, bir işlem hattı işinde belirli ayarları belirttiğinizde, bu durum farklı bir aracının yeniden indirilmesine ve çalıştırılmasına neden olabilir. Aracının regresyonları ve geri almaları da aracının yeniden indirilip geri yüklenmesine neden olabilir.
Yönetilen DevOps Havuzları bu aracıyı "kısa ömürlü" bir şekilde kullandığından, hazır aracılar her zaman potansiyel bir gecikmeye sahip olabilir, yani her iş için görev aracısını bir kez başlatıp çalıştırırız. Hazır aracıların Azure DevOps işleri almasında gecikmeler görürseniz aşağıdaki soruları göz önünde bulundurun:
- Hazır ajanlarınız var mı? En yaygın sorun, aracıların ne zaman önceden sağlanması gerektiğinin yanlış anlaşılmasıdır. Aşağıdaki koşullar karşılandığında makinelerin sıfırdan başlatılması gerekir:
- Kuyruğa alınan iş sayısı, havuzdaki hazır durumda bekleyen aracılar sayısından daha fazladır.
- İşler, ön sağlama planının/sürecinin dışında sıraya alınır.
- Hazır bekleyen aracı sayısı boş olarak ayarlandı.
- Birden çok görüntüsü olan hazır bekleyen aracıları düzgün yapılandırıyor musunuz?
ImageOverride talebini kullanarak işlem hattınızda hangi görüntünün kullanılacağını belirtmiyorsanız, işler ilk görüntüyü hedefler. Ölçeklendirme ayarlarınıza bağlı olarak, beklediğiniz kadar çok sayıda ajanınız olmayabilir, çünkü bazıları diğer görüntülere tahsis edilmiştir.
- Boru hatlarınızda
ImageVersionOverride talebini kullanıyor musunuz?
ImageVersionOverride Havuz ayarlarınızda yapılandırılandan farklı bir görüntü sürümü belirtmek için talebi kullandığınızda, her aracı belirtilen görüntü sürümünü kullanarak isteğe bağlı olarak başlar. Yedek ajanlar, havuzunuzun yapılandırmasında belirtilen görüntü sürümleri kullanılarak sağlanır. Eğer ImageVersionOverride kullanırsanız, bekleme durumundaki aracılar bu sürüme uymaz ve yeni bir aracı başlatılır.
- Ara sunucu, sanal ağ veya güvenlik duvarı ayarları havuzunuzu yavaşlatıyor mu? Herhangi bir ağ ayarındaki olası yavaşlık, aracıyı başlatmanın ve Azure DevOps bağlamanın daha uzun sürmesine neden olur.
- Aracı sürümünü geçersiz mi bırakacaksınız? Varsayılan olarak, Yönetilen DevOps Havuzları en son Azure DevOps görev aracısı sürümünde çalışır. İşlem hattı YAML'sindeki ayarlar (
Agent.Version talebi gibi) ve Azure DevOps kuruluş ayarları işlem hatlarını görev aracısının eski sürümlerini kullanmaya zorlayabilir ve bu da makine ayrıldıktan sonra yeniden indirme gerektirir.
İlgili içerik