待命代理程式是使用 resourcePredictionsProfile
屬性的 區段來 agentProfile
設定。 設定 "kind": "Manual"
為從頭開始、工作日配置或整個星期配置,並在 區段中指定配置的詳細 resourcePredictions
數據。 設定 "kind": "Automatic"
為設定自動待命代理程式。 省略 區 ResourcePredictionsProfile
段以停用待命代理程式。 如需如何設定每個縮放類型的詳細資訊,請參閱下列各節。
{
"$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": "2024-10-19",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {...}
}
}
}
]
}
建立或更新集區時,會使用 agent-profile
參數來設定代理程式。
待命代理程式是使用 resourcePredictionsProfile
參數的 區段來 agent-profile
設定。 設定 "kind": "Manual"
為從頭開始、工作日配置或整個星期配置,並在 區段中指定配置的詳細 resourcePredictions
數據。 設定 "kind": "Automatic"
為設定自動待命代理程式。 如需如何設定每個縮放類型的詳細資訊,請參閱下列各節。
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
下列範例顯示agent-profile.json檔案的內容。
{
"Stateless":
{
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {...}
}
}
手動模式最適合瞭解其 CI/CD 管線使用模式的小組。 如果您選取手動選項,則必須根據您了解集區中的代理程式最有可能使用,以及可能使用多少代理程式,以及指定符合預計需求的代理程式布建計數,來定義預先布建配置。
每幾分鐘,受控 DevOps 集區會檢查執行作業的作用中代理程式和待命代理程式等候作業的計數,以確保目前布建配置所指定的代理程式布建計數可供使用。 如果目前的布建計數為 10,且有五個代理程式執行作業,且待命時有兩個代理程式,Managed DevOps 集區將會啟動三個額外的待命代理程式,讓代理程式總數最多達 10 個。
手動待命代理程式布建是在 的 resourcePredictionsProfile
agentProfile
區段中指定,而詳細數據則會在 resourcePredictions
區段中設定。
{
"$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": "2024-10-19",
"location": "eastus",
"properties": {
...
"agentProfile": {
"kind": "Stateless",
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
}
}
]
}
使用 timeZone
屬性指定配置所需的時區。 預設值為 UTC
。 若要擷取此屬性的時區名稱清單,請參閱 TimeZoneInfo.GetSystemTimeZones 方法。
待命代理程式的排程是由 daysData
清單所定義。 清單 daysData
可以有一個專案或七個專案。
daysData
包含七個專案的清單會對應至星期幾,從星期日開始。 這七個專案中的每一個專案都可以有零個或多個 "time": count
專案,以24小時格式指定時間,以及待命代理程式計數。 指定的待命代理程式計數會維持到下一 "time": count
個專案,該專案可以在同一天或第二天。
daysData
具有單一專案的清單會定義 「全周」配置,其中單"time": count
一項目會對應至整個星期的待命代理程式計數。
下列範例是手動待命代理程式配置,使用 Eastern Standard Time
,並將單一代理程式布建在星期一到星期五,從上午 9:00(待命代理程式計數)到下午 5:00(待命代理程式計數1
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"
}
}
單 daysData
一專案包含時間和待命代理程式計數的字典。 每個 "time" : count
專案會以 24 小時格式指定從指定時間開始排程的待命代理程式數目。 連續 "time" : count
專案會指定當天的排程代理程式計數序列。
"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
]
待命代理程式計數不會在一天結束或一周結束時自動重設為零,而指定空 daysData
的專案不會停用該天的待命代理程式。 空 daysData
的專案表示該天沒有待命代理程式計數排程的變更。 若要將待命代理程式設定為零,從特定時段開始,您必須明確提供 具有 "time" : count
count
的專案 0
。
範例
若要對前一天結束時指定的待命代理程式計數進行任何調整(如果您設定一周的第一個期間,則為一周),請指定一個 daysData
專案為零的專案。
{
}
若要將單一待命代理程式排程在 開始 09:00:00
並停止 17:00:00
(使用 屬性指定的 resourcePredictions
時區),請指定下列組態。
{
"09:00:00": 1,
"17:00:00": 0
}
若要排程從午夜 09:00:00
到 的單一待命代理程式,後面接著 10 個待命代理程式,直到 17:00:00
指定下列組態。
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
若要將待命代理程式排程在指定的日期開始 09:00:00
可用,並在次日停止 17:00:00
,請使用兩個連續 daysData
專案。
{
"09:00:00": `1`
},
{
"17:00:00": 0
}
建立或更新集區時,會使用 agent-profile
參數來設定代理程式。
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
下列範例顯示agent-profile.json檔案的內容。
手動待命代理程式布建是在 參數的 agent-profile
區段中指定resourcePredictionsProfile
,而詳細數據則會在 resourcePredictions
區段中設定。
{
"Stateless": {
"resourcePredictionsProfile": {
"kind": "Manual"
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
}
使用 timeZone
屬性指定配置所需的時區。 預設值為 UTC
。 若要擷取此屬性的時區名稱清單,請參閱 TimeZoneInfo.GetSystemTimeZones 方法。
待命代理程式的排程是由 daysData
清單所定義。 清單 daysData
可以有一個專案或七個專案。
daysData
包含七個專案的清單會對應至星期幾,從星期日開始。 這七個專案中的每一個專案都可以有零個或多個 "time": count
專案,以24小時格式指定時間,以及待命代理程式計數。 指定的待命代理程式計數會維持到下一 "time": count
個專案,該專案可以在同一天或第二天。
daysData
具有單一專案的清單會定義 「全周」配置,其中單"time": count
一項目會對應至整個星期的待命代理程式計數。
下列範例是手動待命代理程式配置,使用 Eastern Standard Time
,並將單一代理程式布建在星期一到星期五,從上午 9:00(待命代理程式計數)到下午 5:00(待命代理程式計數1
0
)。
{
"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"
}
}
}
單 daysData
一專案包含時間和待命代理程式計數的字典。 每個 "time" : count
專案會以 24 小時格式指定從指定時間開始排程的待命代理程式數目。 連續 "time" : count
專案會指定當天的排程代理程式計數序列。
"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
]
待命代理程式計數不會在一天結束或一周結束時自動重設為零,而指定空 daysData
的專案不會停用該天的待命代理程式。 空 daysData
的專案表示該天沒有待命代理程式計數排程的變更。 若要將待命代理程式設定為零,從特定時段開始,您必須明確提供 具有 "time" : count
count
的專案 0
。
範例
若要對前一天結束時指定的待命代理程式計數進行任何調整(如果您設定一周的第一個期間,則為一周),請指定一個 daysData
專案為零的專案。
{
}
若要將單一待命代理程式排程在 開始 09:00:00
並停止 17:00:00
(使用 屬性指定的 resourcePredictions
時區),請指定下列組態。
{
"09:00:00": 1,
"17:00:00": 0
}
若要排程從午夜 09:00:00
到 的單一待命代理程式,後面接著 10 個待命代理程式,直到 17:00:00
指定下列組態。
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
若要將待命代理程式排程在指定的日期開始 09:00:00
可用,並在次日停止 17:00:00
,請使用兩個連續 daysData
專案。
{
"09:00:00": `1`
},
{
"17:00:00": 0
}
{
"$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": "2024-10-19",
"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": {
"kind": "Manual"
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
}
{
"$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": "2024-10-19",
"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": {
"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
},
{}
]
}
}
}