Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Extensões são aplicativos pequenos que facilitam a definição e a configuração pós-provisionamento em nós de computação do Lote. Você pode selecionar qualquer uma das extensões permitidos e instalá-las nos nós de computação conforme elas são provisionadas. Depois disso, a extensão pode executar a operação pretendida.
Você pode verificar o status ao vivo das extensões utilizadas e recuperar as informações retornadas para buscar recursos de detecção, correção ou diagnóstico.
Pré-requisitos
- Os pools com extensões precisam usar a Configuração de Máquina Virtual.
- O tipo de extensão CustomScript é reservado para o serviço do Lote do Azure e não pode ser substituído.
- Algumas extensões podem precisar que a Identidade Gerenciada no nível do pool seja acessível no contexto de um nó de computação para funcionar corretamente. Consulte configuração de identidades gerenciadas nos pools do Lote, se aplicável às extensões.
Dica
As extensões não podem ser adicionadas a um pool existente. Os pools devem ser recriados para adicionar, remover ou atualizar extensões.
Extensões com suporte
As extensões a seguir no momento podem ser instaladas ao criar um pool do Lote:
- Extensão do Azure Key Vault para Linux
- Extensão do Azure Key Vault para Windows
- Extensão de monitoramento e análise de logs do Azure Monitor para Linux
- Extensão de monitoramento e análise de logs do Azure Monitor para Windows
- Extensão da DSC (Desired State Configuration) do Azure
- Extensão de Diagnóstico do Azure para VMs do Windows
- Extensão de driver de GPU HPC para Windows no AMD
- Extensão de driver de GPU HPC para Windows na NVIDIA
- Extensão de driver de GPU HPC para Linux na NVIDIA
- Extensão de Antimalware da Microsoft para Windows
- Saiba mais sobre o Agente do Azure Monitor para Linux
- Agente do Azure Monitor para Windows
- Extensão Integridade do Aplicativo
- Extensão de atestado de convidado
Você pode solicitar suporte para outros editores e/ou tipos de extensão abrindo uma solicitação de suporte.
Criar um pool com extensões
O exemplo a seguir cria um pool de nós do Linux/Windows do Lote que usa a extensão do Azure Key Vault.
URI da API REST
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01
Corpo da solicitação de nó do Linux
{
"name": "test1",
"type": "Microsoft.Batch/batchAccounts/pools",
"properties": {
"vmSize": "STANDARD_D2S_V5",
"taskSchedulingPolicy": {
"nodeFillType": "Pack"
},
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "Canonical",
"offer": "ubuntu-24_04-lts",
"sku": "server",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.ubuntu 24.04",
"extensions": [
{
"name": "secretext",
"type": "KeyVaultForLinux",
"publisher": "Microsoft.Azure.KeyVault",
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": "300",
"certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault",
"requireInitialSync": true,
"observedCertificates": [
"https://testkvwestus2.vault.azure.net/secrets/authsecreat"
]
},
"authenticationSettings": {
"msiEndpoint": "http://169.254.169.254/metadata/identity",
"msiClientId": "885b1a3d-f13c-4030-afcf-9f05044d78dc"
}
},
"protectedSettings": {}
}
]
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 1,
"targetLowPriorityNodes": 0,
"resizeTimeout": "PT15M"
}
}
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Corpo da solicitação de nó do Windows
{
"name": "test1",
"type": "Microsoft.Batch/batchAccounts/pools",
"properties": {
"vmSize": "STANDARD_D4S_V5",
"taskSchedulingPolicy": {
"nodeFillType": "Pack"
},
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "microsoftwindowsserver",
"offer": "windowsserver",
"sku": "2025-datacenter",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.windows amd64",
"extensions": [
{
"name": "secretext",
"type": "KeyVaultForWindows",
"publisher": "Microsoft.Azure.KeyVault",
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": "300",
"requireInitialSync": true,
"observedCertificates": [
{
"https://testkvwestus2.vault.azure.net/secrets/authsecreat"
"certificateStoreLocation": "LocalMachine",
"keyExportable": true
}
]
},
"authenticationSettings": {
"msiEndpoint": "http://169.254.169.254/metadata/identity",
"msiClientId": "885b1a3d-f13c-4030-afcf-9f05044d78dc"
}
},
"protectedSettings":{}
}
]
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 1,
"targetLowPriorityNodes": 0,
"resizeTimeout": "PT15M"
}
}
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Obter dados de extensão de um pool
O exemplo a seguir recupera dados da extensão do Azure Key Vault.
URI da API REST
GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01
Corpo da resposta
{
"odata.metadata": "https://testwestus2batch.westus2.batch.azure.com/$metadata#extensions/@Element",
"instanceView": {
"name": "secretext",
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": 0,
"displayStatus": "Provisioning succeeded",
"message": "Successfully started Key Vault extension service. 2021-02-08T19:49:39Z"
}
]
},
"vmExtension": {
"name": "KVExtensions",
"publisher": "Microsoft.Azure.KeyVault",
"type": "KeyVaultForLinux",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": "{\r\n \"secretsManagementSettings\": {\r\n \"pollingIntervalInS\": \"300\",\r\n \"certificateStoreLocation\": \"/var/lib/waagent/Microsoft.Azure.KeyVault\",\r\n \"requireInitialSync\": true,\r\n \"observedCertificates\": [\r\n \"https://testkvwestus2.vault.azure.net/secrets/testumi\"\r\n ]\r\n },\r\n \"authenticationSettings\": {\r\n \"msiEndpoint\": \"http://169.254.169.254/metadata/identity\",\r\n \"msiClientId\": \"885b1a3d-f13c-4030-afcf-922f05044d78dc\"\r\n }\r\n}"
}
}
Solução de problemas da extensão do Key Vault
Se a extensão do Key Vault estiver configurada incorretamente, o nó de computação poderá estar em um estado utilizável. Para solucionar problemas de falha de extensão do Key Vault, você pode definir temporariamente requireInitialSync para false e reimplantar o pool. Depois que o nó de computação estiver em estado ocioso, você poderá fazer login no nó de computação para verificar os erros nos logs de extensão do KeyVault e corrigir os problemas de configuração. Visite os links do documento de extensão do Key Vault a seguir para obter mais informações.
Considerações sobre a extensão de Integridade do Aplicativo
O Agente de Nó do Lote sendo executado no nó sempre inicia um servidor HTTP que retorna o status de integridade do agente. Esse servidor HTTP escuta o endereço IP local 127.0.0.1 e a porta 29879. Ele sempre retorna um status 200, mas com o corpo da resposta sendo íntegro ou não íntegro. Qualquer outra resposta (ou falta dela) é considerada um status "desconhecido". Essa configuração está em linha com as diretrizes para a execução de um servidor HTTP que fornece um "Estado de Saúde Completo" de acordo com a documentação oficial da "extensão Application Health".
Se você configurar seu próprio servidor de saúde, assegure-se de que o servidor HTTP escute em uma porta exclusiva. Seu servidor de saúde deve consultar o servidor do Agente de Nó de Lote e combinar com seu sinal de saúde para gerar um resultado de saúde composto. Caso contrário, você poderá acabar com um nó "íntegro" que não tenha um Agente do Lote funcionando corretamente.
Próximas etapas
- Aprenda sobre as várias maneiras de copiar aplicativos e dados para nós de pool.
- Saiba mais sobre como trabalhar com nós e pools.