Você pode gerenciar o desempenho e o custo da instância do Managed DevOps Pools definindo as configurações de dimensionamento. Para obter informações sobre preços e desempenho, consulte Gerenciar custo e desempenho.
Estado do agente
Você pode configurar pools como:
A configuração padrão de um pool é sem estado, o que pode ser alcançado usando o agente Fresh todas as vezes. Em alguns casos, as equipes podem querer reutilizar agentes para reutilizar os pacotes ou arquivos criados durante a execução anterior do pipeline. A carga de trabalho de build é um cenário comum em que as equipes desejam preservar o estado e reutilizar agentes. Você pode obter pools com estado por meio de pools de DevOps gerenciados enquanto os equilibra com as práticas recomendadas de segurança. Um agente pode ser reutilizado por um máximo de sete dias por padrão, mas você pode configurá-lo para ser reciclado mais cedo.
Observação
Os agentes de segurança recomendam que os usuários utilizem pools sem armazenamento interno como uma defesa contra ataques da cadeia de suprimentos. Use a configuração do estado do agente Fresh agent every time.
Pools sem estado
Quando você configura um agente sem estado, um novo agente é adquirido para cada trabalho. O agente é descartado após a conclusão do trabalho.
Para saber mais sobre o ciclo de vida de agentes sem estado e como eles são usados no Azure Pipelines, consulte a seção Ciclo de vida dos agentes e possíveis atrasos na alocação.
Você pode configurar agentes usando a propriedade agentProfile nos recursos de DevOps Pools gerenciados. O exemplo a seguir especifica um Stateless agente.
{
"$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"
}
}
}
]
}
Você pode configurar agentes usando o agent-profile parâmetro ao criar ou atualizar um pool.
O exemplo a seguir especifica um Stateless agente sem agentes em espera.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
O exemplo a seguir mostra o conteúdo do arquivo agent-profile.json.
{
"Stateless": {}
}
Você pode configurar agentes usando a agentProfile propriedade no recurso DevOps Pools Gerenciado. O exemplo a seguir especifica um Stateless agente.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
}
}
}
Quando você define o estado do Agente para 'Agente novo a cada vez', um novo agente é adquirido para cada trabalho. O agente é descartado após a conclusão do trabalho.
Pools com estado
{
"$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"
}
}
}
]
}
Você pode configurar agentes usando o agent-profile parâmetro ao criar ou atualizar um pool.
O exemplo a seguir especifica um Stateful agente com um tempo de vida máximo de sete dias e um período de carência de trinta minutos.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
O exemplo a seguir mostra o conteúdo do agent-profile.json arquivo.
{
"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'
}
}
}
Quando você habilita a opção o mesmo agente pode ser usado por várias compilações (a configuração "kind": "stateful" nos modelos de recursos ou a configuração { "stateful": {...} } na CLI do Azure), os agentes no pool são com estado. Você pode configurar pools com estado usando as configurações a seguir:
O tempo máximo de vida útil para agentes em espera (maxAgentLifetime) configura a duração máxima que um agente em um pool stateful pode operar antes de ser desligado e descartado. O formato para O tempo máximo de vida dos agentes em espera é dd.hh:mm:ss. O valor padrão de Tempo máximo de vida útil para agentes em espera é definido como a duração máxima permitida de sete dias (7.00:00:00).
Período de Carência (gracePeriodTimeSpan) configura a quantidade de tempo que um agente em um pool com estado espera por novas tarefas antes de desligar após a conclusão de todas as tarefas atuais e enfileiradas. O formato do Período de Carência é dd.hh:mm:ss e o padrão é sem período de carência.
Importante
Se um trabalho estiver em execução quando o tempo máximo de vida dos agentes em espera expirar, o agente não será desligado até que o trabalho seja concluído, a menos que o trabalho dure mais de dois dias. Trabalhos individuais em Pools de DevOps Gerenciados podem ser executados por no máximo dois dias, mesmo que estejam em execução em um agente em espera com mais de dois dias configurados para o tempo máximo de vida útil para agentes em espera. Entre em contato com o suporte se o fluxo de trabalho exigir que você execute um único trabalho que leve mais de dois dias para ser concluído.
Os agentes em pools sem estado são desligados e descartados após cada trabalho. Os agentes em pools com estado continuarão em execução se alguma das seguintes condições for atendida:
- Se outro trabalho for enfileirado quando o primeiro trabalho for concluído, o Managed DevOps Pools enviará o trabalho na fila para o agente que executou o primeiro trabalho em vez de desligá-lo.
- Se houver um período de carência configurado para o pool, os agentes aguardarão novos trabalhos durante o intervalo especificado antes de se desligarem.
- Se os agentes em espera estiverem habilitados e a imagem do agente atender aos critérios do período de provisionamento ativo, o agente continuará a ser executado e aguardará trabalhos.
Os agentes que estão em execução em pools com estado serão desligados e descartados se permanecerem em execução continuamente pela duração especificada pelo tempo máximo de vida para agentes de espera, mesmo que as condições anteriores sejam verdadeiras. Por exemplo, se o tempo máximo de vida útil para agentes em espera estiver configurado por três dias e o modo de agente em espera estiver definido como Manual, Esquema de Todas as Semanas (Computadores disponíveis 24 horas por dia, 7 dias por semana), os agentes serão reiniciados após três dias contínuos de tempo de atividade.
Importante
Os agentes em stateful pools ainda poderão ser desligados e descartados após a conclusão de uma tarefa se não houver período de carência, não houver nenhum período de provisionamento ativo para agentes em espera, e não houver nenhum trabalho na fila que corresponda ao agente. Quando um agente é descartado, qualquer estado é perdido.
Os períodos de tolerância permitem a maneira mais econômica de executar pools com estado para pipelines que mantêm uma carga consistente. Os períodos de carência não exigem o uso do modo de agente em espera para manter os agentes online e prontos para aceitar trabalhos.
Modo de agente Em espera
Quando você cria um pool, o modo de agente em espera está desativado por padrão. Quando o modo agente de reserva está desativado, não há agentes em reserva para atribuição imediata aos pipelines. Seus pipelines podem ter que esperar de alguns instantes a 15 minutos para que um agente seja provisionado conforme a demanda. Para obter melhor desempenho, habilite o modo de agente Em espera e configure um agendamento de agente em espera que forneça capacidade para sua carga de trabalho.
Quando você configura um agendamento de agente em espera, os Pools de DevOps Gerenciados comparam periodicamente a contagem de agentes provisionados com a contagem de agentes em espera especificada no esquema de provisionamento atual. Ele inicia novos agentes conforme necessário para manter a contagem de agentes em espera. Você pode exibir o status atual e a contagem dos agentes em seu pool usando o painel Agentes .
Importante
A contagem de provisionamento em um esquema não pode ser maior do que o valor máximo de agentes que você define nas configurações do Pool.
Você pode configurar o modo de agente em espera usando as seguintes configurações:
-
Desativado: o modo de espera do agente está desativado e os agentes são provisionados sob demanda quando os trabalhos são colocados na fila.
-
Manual: Configurar um agendamento manual de espera.
-
Automático: use um agendamento automático em modo de espera com base no histórico de uso do agente. Você pode configurá-lo para custo e desempenho.
Você pode configurar agentes em espera usando a resourcePredictionsProfile seção da agentProfile propriedade. Defina "kind": "Manual" para configurar um início do zero, um esquema durante a semana ou um esquema durante toda a semana e especifique os detalhes do esquema na resourcePredictions seção. Para configurar agentes de espera automáticos, defina "kind": "Automatic". Desabilite agentes de standby omitindo a seção ResourcePredictionsProfile. Consulte as seções a seguir para obter detalhes sobre como configurar cada tipo de escalabilidade.
{
"$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": {...}
}
}
}
]
}
Você pode configurar agentes usando o agent-profile parâmetro ao criar ou atualizar um pool.
Você pode configurar agentes em espera na seção resourcePredictionsProfile do parâmetro agent-profile. Use a configuração "Manual": {} para configurar um início do zero, um esquema durante a semana, ou um esquema para toda a semana, e especifique os detalhes do esquema na seção resourcePredictions. Para configurar agentes de espera automáticos, use o "Automatic": {} parâmetro. Consulte as seções a seguir para obter detalhes sobre como configurar cada tipo de escalabilidade.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
O exemplo a seguir mostra o conteúdo do agent-profile.json arquivo:
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {...}
}
Você pode configurar agentes de espera usando a seção resourcePredictionsProfile na propriedade agentProfile. Use a configuração "kind": "Manual" para configurar um início do zero, um esquema de dias úteis ou um esquema para toda a semana e especifique os detalhes do esquema na seção resourcePredictions. Para configurar agentes de standby automáticos, use a configuração kind: 'Automatic'. Desative agentes de standby omitindo a seção ResourcePredictionsProfile. Consulte as seções a seguir para obter detalhes sobre como configurar cada tipo de escalabilidade.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
...
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Manual'
}
resourcePredictions: {...}
}
}
}
Manual
O modo manual é melhor para equipes que conhecem seus padrões de uso de pipeline de CI/CD (integração contínua e entrega contínua). Ao usar a opção manual, você precisa definir seu esquema de pré-provisionamento. Você define seu esquema com base em sua compreensão de quais agentes no pool são mais propensos a serem usados e quantos agentes provavelmente serão usados. Você especifica uma quantidade de provisionamento de agentes que atendam à demanda projetada.
Você pode criar sua própria agenda de provisionamento ou escolher entre um dos agendamentos predefinidos. Você pode configurar o fuso horário a ser usado para especificar os agendamentos. O valor padrão para o TimeZone de Pré-provisionamento é (UTC) Tempo Universal Coordenado.
Você pode configurar agentes de espera manual de uma das três maneiras a seguir:
Cada um dos inícios rápidos de pré-provisionamento tem as seguintes configurações comuns (além das configurações específicas para esse início rápido):
-
Fuso horário de pré-provisionamento: permite configurar o fuso horário para os períodos de tempo em seu esquema de pré-provisionamento. O valor padrão para o TimeZone de Pré-provisionamento é (UTC) Tempo Universal Coordenado.
-
Porcentagem de agente em espera: configura a porcentagem de agentes em espera que você deseja para cada imagem. Você pode inserir
* para garantir que todas as imagens sejam provisionadas igualmente ou pode especificar um número inteiro de 0 a 100 para representar uma porcentagem. Se você especificar uma porcentagem, o total de todas as imagens deverá ser igual a 100. Se você tiver uma única imagem, especifique * ou 100. Ao usar modelos do ARM (modelos do Azure Resource Manager), você pode definir a configuração de porcentagem do agente em espera na images seção. Para obter mais informações, consulte Configurar imagens.
Você pode especificar o provisionamento manual do agente em espera na seção resourcePredictionsProfile de agentProfile. Você pode configurar os detalhes na resourcePredictions seção.
{
"$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
},
{},
{},
{},
{},
{}
]
}
}
}
}
]
}
Especifique o fuso horário desejado para o esquema usando a timeZone propriedade. O valor padrão é UTC. Para recuperar uma lista de nomes de fuso horário para essa propriedade, consulte Método TimeZoneInfo.GetSystemTimeZones.
Você pode definir o agendamento de agentes em espera usando a daysData lista. A daysData lista pode ter um ou sete itens.
Uma lista daysData com sete itens mapeia os dias da semana, começando com o domingo. Cada um desses sete itens pode ter zero ou mais "time": count entradas, especificando um horário no formato de 24 horas e uma contagem de agentes em espera. A contagem especificada de agentes em espera é mantida até a próxima "time": count entrada, que pode ser no mesmo dia ou em um dia seguinte.
Uma daysData lista com um único item define um esquema para toda a semana, em que a entrada única "time": count corresponde à contagem de agentes em espera para a semana inteira.
O exemplo a seguir é um sistema de agente de espera manual. Ele usa o valor Eastern Standard Time com um único agente provisionado de segunda a sexta-feira, das 9h (número de agentes em espera1) até 17h (número de agentes em espera0).
{
"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"
}
}
Um único item daysData contém um dicionário de tempos e contagens de agentes em espera. Cada entrada "time" : count especifica o número de agentes de prontidão para agendar a partir do horário especificado, em formato de 24 horas. As "time" : count entradas consecutivas especificam uma sequência de contagens de agentes agendadas para esse dia.
"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
]
As contagens de agentes em espera não são redefinidas automaticamente para zero ao final de um dia ou ao final da semana. Especificar um item vazio daysData não desabilita agentes em modo de espera para esse dia. Um item vazio daysData significa que não há alterações na programação de contagem de agentes em espera para esse dia. Para definir o agente em espera como zero a partir de um período de tempo específico, você deve fornecer explicitamente uma entrada "time" : count com um count de 0.
Exemplos
Para não fazer nenhum ajuste na contagem de agentes em espera especificada na conclusão do dia anterior (ou semana, se você estiver configurando o primeiro período da semana), especifique um daysData item com zero entradas:
{}
Para agendar um único agente de espera para iniciar em 09:00:00 e parar em 17:00:00 (usando o fuso horário especificado pela propriedade resourcePredictions), especifique a seguinte configuração:
{
"09:00:00": 1,
"17:00:00": 0
}
Para agendar um único agente em espera a partir da meia-noite até 09:00:00, seguido por 10 agentes em espera até 17:00:00, especifique a seguinte configuração:
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
Para agendar um agente de plantão para estar disponível a partir 09:00:00 do dia especificado e encerrar no 17:00:00 do dia seguinte, use dois itens consecutivos daysData:
{
"09:00:00": 1
},
{
"17:00:00": 0
}
Você pode configurar agentes usando o agent-profile parâmetro ao criar ou atualizar um pool.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
O exemplo a seguir mostra o conteúdo do arquivo agent-profile.json. Você pode especificar o provisionamento manual de agente em espera na resourcePredictionsProfile seção do agent-profile parâmetro. Configure os detalhes na resourcePredictions seção:
{
"Stateless": {},
"resourcePredictionsProfile": {
"Manual": {}
},
"resourcePredictions": {
"timeZone": "Eastern Standard Time",
"daysData": [
{},
{
"00:00:00": 1,
"04:00:00": 0
},
{},
{},
{},
{},
{}
]
}
}
Especifique o fuso horário do esquema usando a timeZone propriedade. O valor padrão é UTC. Para recuperar uma lista de nomes de fuso horário para essa propriedade, consulte Método TimeZoneInfo.GetSystemTimeZones.
A daysData lista define o cronograma dos agentes de prontidão. A daysData lista pode ter um ou sete itens.
Uma lista daysData com sete itens mapeia os dias da semana, começando com o domingo. Cada um desses sete itens pode ter zero ou mais "time": count entradas, especificando um horário no formato de 24 horas e uma contagem de agentes em espera. A contagem especificada de agentes em espera é mantida até a próxima "time": count entrada, que pode ser no mesmo dia ou em um dia seguinte.
Uma daysData lista com um único item define um esquema de semana inteira, em que a entrada única "time": count corresponde à contagem de agentes em espera durante toda a semana.
O exemplo a seguir é um sistema de agente de espera manual. O esquema usa o valor Eastern Standard Time com um único agente provisionado de segunda a sexta-feira, das 9h (contagem 1de agentes em espera) até 17h (contagem 0de agentes em espera):
{
"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
},
{}
]
}
}
Um único item daysData contém um dicionário de tempos e contagens de agentes em espera. Cada "time" : count entrada especifica o número de agentes em espera para agendar a partir do horário especificado, em formato de 24 horas. As "time" : count entradas consecutivas especificam uma sequência de contagens de agentes agendadas para esse dia.
"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
]
As contagens de agentes em espera não são redefinidas automaticamente para zero ao final de um dia ou ao final da semana. Especificar um item vazio daysData não desabilita agentes em modo de espera para esse dia. Um item vazio daysData significa que não há alterações na programação de contagem de agentes em espera para esse dia. Para definir o agente em espera como zero a partir de um período de tempo específico, você deve fornecer explicitamente uma entrada "time" : count com um count de 0.
Exemplos
Se você não quiser ajustar a contagem de agentes em espera especificada na conclusão do dia anterior (ou semana, se estiver configurando o primeiro período da semana), especifique um daysData item com zero entradas:
{}
Para programar um único agente de espera para iniciar em 09:00:00 e parar em 17:00:00, usando o fuso horário que você especificar na propriedade resourcePredictions, especifique a seguinte configuração:
{
"09:00:00": 1,
"17:00:00": 0
}
Para agendar um único agente em espera a partir da meia-noite até 09:00:00, seguido por 10 agentes em espera até 17:00:00, especifique a seguinte configuração:
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
Para agendar um agente de plantão para estar disponível a partir de 09:00:00 no dia especificado e parar em 17:00:00 no dia seguinte, use dois itens consecutivos de daysData.
{
"09:00:00": 1
},
{
"17:00:00": 0
}
Você pode especificar o provisionamento manual do agente em espera na seção resourcePredictionsProfile de agentProfile. Você pode configurar os detalhes na resourcePredictions seção:
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
}
{}
{}
{}
{}
{}
]
}
}
}
}
Especifique o fuso horário desejado para o esquema usando a timeZone propriedade. O valor padrão é UTC. Para recuperar uma lista de nomes de fuso horário para essa propriedade, consulte Método TimeZoneInfo.GetSystemTimeZones.
A daysData lista define o agendamento dos agentes em espera. A daysData lista pode ter um ou sete itens.
Uma lista daysData com sete itens mapeia os dias da semana, começando com o domingo. Cada um desses sete itens pode ter zero ou mais 'time': count entradas, especificando um horário no formato de 24 horas e uma contagem de agentes em espera. A contagem especificada de agentes em espera é mantida até a próxima 'time': count entrada, que pode ser no mesmo dia ou em um dia seguinte.
Uma daysData lista com um único item define um esquema de semana inteira, em que a entrada única 'time': count corresponde à contagem de agentes em espera durante toda a semana.
O exemplo a seguir é um esquema de agente em espera manual que usa o valor Eastern Standard Time, com um único agente provisionado de segunda a sexta-feira, das 9h (contagem 1de agentes em espera) até 17h (contagem 0de agentes em espera):
{
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'
}
}
Um único item daysData contém um dicionário de tempos e contagens de agentes em espera. Cada entrada 'time' : count especifica o número de agentes de prontidão para agendar a partir do horário especificado, em formato de 24 horas. As 'time' : count entradas consecutivas especificam uma sequência de contagens de agentes agendadas para esse dia.
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
]
As contagens de agentes em espera não são redefinidas automaticamente para zero ao final do dia ou da semana, e especificar um item vazio daysData não desabilita agentes em espera para esse dia. Um item vazio daysData significa que não há alterações na programação de contagem de agentes em espera para esse dia. Para definir o agente em espera como zero a partir de um período de tempo específico, você deve fornecer explicitamente uma entrada "time" : count com um count de 0.
Exemplos
Para não fazer nenhum ajuste na contagem de agentes em espera especificada na conclusão do dia anterior (ou semana, se você estiver configurando o primeiro período da semana), especifique um daysData item com zero entradas:
{}
Para agendar um único agente de standby para iniciar em 09:00:00 e parar em 17:00:00 (usando o fuso horário especificado na propriedade resourcePredictions), especifique a seguinte configuração:
{
'09:00:00': 1
'17:00:00': 0
}
Para agendar um único agente em espera a partir da meia-noite até 09:00:00, seguido por 10 agentes em espera até 17:00:00, especifique a seguinte configuração:
{
'00:00:00': 1
'09:00:00': 10
'17:00:00': 0
}
Para agendar um agente em espera para estar disponível a partir 09:00:00 do dia especificado e parar no 17:00:00 dia seguinte, use dois itens consecutivos daysData :
{
'09:00:00': 1
}
{
'17:00:00': 0
}
Começar do zero
Se você optar por começar do zero, poderá adicionar uma lista de períodos de provisionamento como seu esquema de provisionamento. Cada período de provisionamento consiste em um dia de início, dia de término, fuso horário, hora de início, hora de término e contagem. Os períodos de provisionamento não podem se sobrepor.
| Propriedade |
Descrição |
|
Vários dias |
Ao selecionar essa opção, você pode configurar o Dia de Início e o Dia de Término para seu esquema de provisionamento. |
|
Até o próximo período |
Quando você seleciona esta opção, o período de provisionamento começa no valor de Hora de Início até o início do próximo período de provisionamento. |
|
Dia de Início |
O dia em que o período de provisionamento começa. |
|
Dia de Término |
O dia em que o período de provisionamento termina. Obrigatório se Multi-Day estiver selecionado. |
|
Horário de Início |
A hora em que o período de provisionamento é iniciado. |
|
Hora de Término |
A hora em que o período de provisionamento termina. Obrigatório, a menos que até o próximo período seja selecionado. |
|
Count |
O número de agentes em espera a serem provisionados. Esse número deve ser maior que zero e não deve ser maior que o valor máximo dos agentes nas configurações do Pool. |
Depois de criar um período de provisionamento, você pode excluir ou editar o período da lista de esquemas de pré-provisionamento .
O exemplo a seguir mostra como configurar um esquema manual com um agente provisionado nas manhãs de segunda-feira das 00:00 às 5:00 AM EST.
{
"$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
}
{}
{}
{}
{}
{}
]
}
}
}
}
Esquema Dia Útil
Se você selecionar o esquema durante a semana, poderá especificar uma hora de início e hora de término, entre as quais o número especificado de agentes em espera está em espera a cada dia da semana.
| Propriedade |
Descrição |
|
Horário de Início |
A hora em que o período de provisionamento é iniciado. |
|
Hora de Término |
A hora em que o período de provisionamento termina. |
|
Contagem de provisionamento |
O número de agentes em espera a serem provisionados. Esse número deve ser maior que zero e não deve ser maior do que o valor máximo de agentes configurado nas configurações do Pool. |
O exemplo a seguir configura quatro agentes a serem usados durante o horário de trabalho e nenhum agente durante horas e fins de semana sem trabalho, usando o Horário do Leste (UTC-5).
{
"$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
}
{}
]
}
}
}
}
Esquema durante toda a semana
Se você escolher o esquema durante toda a semana, poderá especificar o número de agentes que deseja disponibilizar o tempo todo.
{
"$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
}
]
}
}
}
}
Automático
Se você não souber seus padrões de uso e quiser contar com a previsão automática com base em dados anteriores, selecione Automático. Você pode equilibrar entre o custo e o desempenho do agente usando um controle deslizante com as cinco opções a seguir. Os grupos gerenciados de DevOps executam uma consulta sobre suas últimas três semanas de dados históricos, se disponíveis. Ele organiza sessões em fila do pool em intervalos de cinco minutos e atribui o percentil especificado (para evitar picos) a cada hora.
-
Mais econômico (
MostCostEffective): 10º percentil.
-
Mais econômico (
MoreCostEffective): 25º percentil.
-
Balanceado (padrão) (
Balanced): 50º percentil.
-
Mais desempenho (
MorePerformance): 75º percentil.
-
Melhor desempenho (
BestPerformance): 90º percentil.
{
"$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'
}
}
}
}
Ciclo de vida de agentes e possíveis atrasos na alocação
Ao habilitar agentes em espera usando um esquema sem estado , você precisa instalar e configurar o agente do Azure Pipelines antes de fazer a transição do estado pronto para o estado alocado e executar um pipeline.
Quando o Managed DevOps Pools provisiona novos agentes, ele tenta baixar o agente mais recente do Azure Pipelines para que ele já seja baixado em agentes em espera antes que eles façam a transição para o status pronto. A inicialização, a conexão e o início do trabalho podem levar de 10 segundos a um minuto, dependendo da velocidade da SKU do pool, da imagem usada e da carga de rede. Além disso, quando você especifica determinadas configurações em um trabalho de pipeline, isso pode causar um redownload e execução de um agente diferente. Regressões e reversões do agente também podem causar um novo download do agente.
Os agentes prontos sempre têm um possível atraso porque os Pools de DevOps Gerenciados usam esse agente de maneira "efêmera", o que significa que iniciamos e executamos o agente de tarefas uma vez por trabalho. Se você perceber que os agentes prontos estão enfrentando atrasos para executar tarefas do Azure DevOps, considere as seguintes perguntas:
- Você tem agentes prontos? O problema mais comum é um mal-entendido de quando os agentes devem ser pré-provisionados. Os computadores devem ser inicializados do início quando as seguintes condições forem atendidas:
- O número de trabalhos enfileirados é maior do que a contagem de agentes em espera em um pool.
- Os trabalhos são enfileirados fora do agendamento de pré-provisionamento.
- O número de agentes em espera foi definido como vazio.
- Você está configurando corretamente agentes de contingência que têm várias imagens? Se você não estiver especificando qual imagem usar no pipeline usando a demanda ImageOverride , os trabalhos serão direcionados à primeira imagem. Dependendo das configurações de dimensionamento, talvez você não tenha tantos agentes disponíveis quanto esperado, pois alguns são alocados para outras imagens.
- Você está utilizando a demanda
ImageVersionOverride em seus fluxos de trabalho? Quando você usa a ImageVersionOverride demanda para especificar uma versão de imagem diferente da que está configurada nas configurações do pool, cada agente começa sob demanda usando a versão da imagem especificada. Os agentes em espera são provisionados usando as versões de imagem especificadas na configuração do pool. Se você usar ImageVersionOverride, os agentes em modo de espera não corresponderão a essa versão e um novo agente será iniciado.
- As configurações de proxy, rede virtual ou firewall estão diminuindo a velocidade do pool? A lentidão potencial de qualquer configuração de rede resulta em agentes demorando mais para iniciar o agente e conectá-lo ao Azure DevOps.
- Você está substituindo a versão do agente? Por padrão, os Pools de DevOps Gerenciados são executados na versão mais recente do agente de tarefas do Azure DevOps. As configurações no YAML do pipeline (como a
Agent.Version demanda) e nas configurações da organização do Azure DevOps podem forçar os pipelines a usar versões mais antigas do agente de tarefa, o que requer um re-download depois que uma máquina é alocada.
Conteúdo relacionado