Estado do Batch e Códigos de Erro
As operações da API REST para o serviço Batch devolvem códigos de estado HTTP padrão, conforme definido nas Definições de Código de Estado HTTP/1.1.
As operações de API também podem devolver informações de erro adicionais para fornecer ao programador mais informações sobre o erro. Por exemplo, a seguinte resposta de erro indica que um parâmetro de consulta especificado no URI do pedido era inválido e fornece informações adicionais sobre o nome e o valor do parâmetro inválido e o motivo do erro.
{
"code": "InvalidQueryParameterValue",
"message": {
"lang": "en-us",
"value": "Value for one of the query parameters specified in the request URI is invalid"
},
"values": [{
"key": "QueryParameterName",
"value": "state"
}, {
"key": "QueryParameterValue",
"value": "deleted"
}, {
"key": "Reason",
"value": "invalid state"
}]
}
As secções seguintes fornecem listas de códigos de erro para o serviço Batch:
Códigos de Erro comuns da API REST
Os códigos de erro listados na tabela seguinte podem ser devolvidos por uma operação no serviço Batch.
Código de erro | Código de estado de HTTP | Mensagem de utilizador |
---|---|---|
ConditionNotMet | Não Modificado (304) | A condição especificada nos cabeçalhos condicionais não foi cumprida para uma operação de leitura. |
MissingRequiredHeader | Pedido Incorreto (400) | Não foi especificado um cabeçalho HTTP necessário. |
MissingRequiredProperty | Pedido Incorreto (400) | Não foi especificada uma propriedade necessária no corpo do pedido. |
Não SuportadoHeader | Pedido Incorreto (400) | Um dos cabeçalhos HTTP especificados no pedido não é suportado. |
Não SuportadoProperty | Pedido Incorreto (400) | Uma das propriedades especificadas no corpo do pedido não é suportada. |
InvalidHeaderValue | Pedido Incorreto (400) | O valor fornecido para um dos cabeçalhos HTTP não estava no formato correto. |
InvalidPropertyValue | Pedido Incorreto (400) | O valor fornecido para uma das propriedades no corpo do pedido é inválido. |
MissingRequiredQueryParameter | Pedido Incorreto (400) | Não foi especificado um parâmetro de consulta necessário para este pedido. |
UnsupportedQueryParameter | Pedido Incorreto (400) | Um dos parâmetros de consulta especificados no URI do pedido não é suportado. |
InvalidQueryParameterValue | Pedido Incorreto (400) | Foi especificado um valor inválido para um dos parâmetros de consulta no URI do pedido. |
OutOfRangeQueryParameterValue | Pedido Incorreto (400) | Um parâmetro de consulta especificado no URI do pedido está fora do intervalo permitido. |
RequestUrlFailedToParse | Pedido Incorreto (400) | Não foi possível analisar o URL no pedido. |
InvalidUri | Pedido Incorreto (400) | O URI pedido não representa nenhum recurso no servidor. |
InválidoHttpVerb | Pedido Incorreto (400) | O verbo HTTP especificado não foi reconhecido pelo servidor. |
EmptyMetadataKey | Pedido Incorreto (400) | A chave para um dos pares chave-valor de metadados está vazia. |
InvalidRequestBody | Pedido Incorreto (400) | O Corpo do Pedido especificado não é sintaticamente válido. |
OutOfRangeInput | Pedido Incorreto (400) | Uma das entradas do pedido está fora do intervalo. |
InvalidAuthenticationInfo | Pedido Incorreto (400) | As informações de autenticação não foram fornecidas no formato correto. Verifique o valor do cabeçalho Autorização . |
InvalidInput | Pedido Incorreto (400) | Uma das entradas do pedido não é válida. |
InvalidMetadata | Pedido Incorreto (400) | Os metadados especificados são inválidos. Inclui carateres que não são permitidos. |
MetadataTooLarge | Pedido Incorreto (400) | O tamanho dos metadados especificados excede o tamanho máximo permitido. |
MultipleConditionHeadersNotSupported | Pedido Incorreto (400) | Não são suportados vários cabeçalhos de condição. |
AuthenticationFailed | Proibido (403) | O servidor não conseguiu autenticar o pedido. Verifique se o valor do cabeçalho autorização é formado corretamente e inclui a assinatura. |
InsufficientAccountPermissions | Proibido (403) | A conta a ser acedida não tem permissões suficientes para executar esta operação. |
AccountIsDisabled | Proibido (403) | A conta especificada está desativada. |
ResourceNotFound | Não Encontrado (404) | O recurso especificado não existe. |
Não suportadoHttpVerb | Método Não Permitido (405) | O recurso não suporta o verbo HTTP especificado. |
MissingContentLengthHeader | Comprimento Necessário (411) | O cabeçalho Content-Length não foi especificado. |
ConditionNotMet | Falha na Pré-condição (412) | A condição especificada nos cabeçalhos condicionais não foi cumprida para uma operação de escrita. |
RequestBodyTooLarge | Entidade do Pedido Demasiado Grande (413) | O tamanho do corpo do pedido excede o tamanho máximo permitido. |
InvalidRange | Intervalo Pedido Não Satisfiable (416) | O intervalo especificado é inválido para o tamanho atual do recurso. |
InternalError | Erro interno do Servidor (500) | O servidor encontrou um erro interno. Repita o pedido. |
OperationTimedOut | Erro interno do Servidor (500) | Não foi possível concluir a operação dentro do tempo permitido. |
ServerBusy | Serviço Indisponível (503) | Atualmente, o servidor não consegue receber pedidos. Tente novamente o seu pedido. |
Códigos de Erro do Serviço Batch
Os códigos de erro listados na tabela seguinte podem ser devolvidos por uma operação no serviço Batch.
Código de erro | Código de estado de HTTP | Mensagem de utilizador |
---|---|---|
UnsupportedRequestVersion | BadRequest (400) | A versão do pedido especificado não é suportada. |
InvalidAutoScalingSettings | BadRequest (400) | As definições de dimensionamento automático especificadas não são válidas. |
AutoScalingFormulaSyntaxError | BadRequest (400) | A fórmula de dimensionamento automático especificada tem um erro de sintaxe. |
AutoScalingFormulaTooLong | BadRequest (400) | A fórmula de dimensionamento automático especificada excede o limite de comprimentos. |
OSVersionNotFound | BadRequest (400) | A Versão do SO especificada não existe. |
OSVersionDisabled | BadRequest (400) | A Versão do SO especificada está desativada. |
OSVersionExpired | BadRequest (400) | A Versão do SO especificada expirou. |
PoolVersionEqualsUpgradeVersion | BadRequest (400) | O conjunto já está com a versão especificada. |
PoolNotEligibleForOSVersionUpgrade | BadRequest (400) | O conjunto especificado não é elegível para atualização da Versão do SO. |
PoolNotFound | NotFound (404) | O conjunto especificado não existe. |
NodeNotFound | NotFound (404) | O nó especificado não existe. |
JobScheduleNotFound | NotFound (404) | A agenda de tarefas especificada não existe. |
JobNotFound | NotFound (404) | A tarefa especificada não existe. |
TaskNotFound | NotFound (404) | A tarefa especificada não existe. |
FicheiroNotFound | NotFound (404) | O ficheiro especificado não existe. |
NodeUserNotFound | NotFound (404) | O utilizador do nó especificado não existe. |
CertificateNotFound | NotFound (404) | O certificado especificado não existe. |
JobPreparationTaskNotRunOnNode | NotFound (404) | A tarefa de preparação da tarefa não foi executada no nó especificado. |
JobReleaseTaskNotRunOnNode | NotFound (404) | A tarefa de lançamento da tarefa não foi executada no nó especificado. |
NodeAgentSKUNotFound | NotFound (404) | O SKU do Agente de Nó especificado não existe. |
OperationInvalidForCurrentState | Conflito (409) | A operação especificada não é válida para o estado atual do recurso. |
PoolBeingDeleted | Conflito (409) | O conjunto especificado foi marcado para eliminação e está a ser recuperado. |
PoolBeingResized | Conflito (409) | O conjunto especificado está a ser redimensionado |
PoolBeingCreated | Conflito (409) | O conjunto especificado está a ser criado. |
NodeBeingCreated | Conflito (409) | O nó especificado está a ser criado |
NodeBeingStarted | Conflito (409) | O nó especificado está a ser iniciado |
NodeBeingReimaged | Conflito (409) | O nó especificado está a ser recriado |
NodeBeingRebooted | Conflito (409) | O nó especificado está a ser reiniciado |
NodeStateUnusable | Conflito (409) | O estado do nó especificado é inutilizável |
JobScheduleBeingTerminated | Conflito (409) | A agenda de tarefas especificada está a ser terminada. |
JobScheduleBeingDeleted | Conflito (409) | O agendamento de tarefas especificado foi marcado para eliminação e está a ser recuperado. |
CertificateBeingDeleted | Conflito (409) | O certificado especificado foi marcado para eliminação e está a ser eliminado. |
PoolExists | Conflito (409) | O conjunto especificado já existe. |
JobScheduleExists | Conflito (409) | A agenda de tarefas especificada já existe. |
NodeUserExists | Conflito (409) | O utilizador do nó especificado já existe. |
JobExists | Conflito (409) | A tarefa especificada já existe. |
NodeUserExists | Conflito (409) | O utilizador do nó especificado já existe. |
CertificateExists | Conflito (409) | O certificado especificado já existe. |
JobScheduleDisabled | Conflito (409) | A agenda de tarefas especificada está desativada. |
JobScheduleCompleted | Conflito (409) | O agendamento de tarefas especificado já está no estado concluído. |
JobBeingTerminated | Conflito (409) | A tarefa especificada está a ser terminada. |
JobBeingDeleted | Conflito (409) | A tarefa especificada foi marcada para eliminação e está a ser recolhida lixo. |
JobDisabled | Conflito (409) | A tarefa especificada está desativada. |
Tarefa Concluída | Conflito (409) | A tarefa especificada já está num estado concluído. |
JobNotActive | Conflito (409) | A tarefa especificada não está no estado ativo. |
TaskExists | Conflito (409) | A tarefa especificada já existe. |
Tarefas Concluídos | Conflito (409) | A tarefa especificada já está num estado concluído. |
TaskNotCompleted | Conflito (409) | A tarefa especificada não está num estado concluído e a operação pedida só pode ser efetuada em tarefas concluídas. |
TarefaScedidas | Conflito (409) | A tarefa especificada já foi concluída com êxito e não é possível efetuar a operação pedida em tarefas com êxito. |
TaskFilesUnavailable | Conflito (409) | Os ficheiros da tarefa especificada não estão disponíveis. |
TaskFilesCleanedup | Conflito (409) | Os ficheiros da tarefa especificada são limpos. |
ActiveJobAndScheduleQuotaReached | Conflito (409) | A quota de tarefas ativas e agendamento para a conta foi atingida. |
PoolQuotaReached | Conflito (409) | A quota do conjunto para a conta foi atingida. |
UpgradePoolVersionConflict | Conflito (409) | O conjunto já está a atualizar para uma versão diferente. |
JobPreparationTaskNotSpecified | Conflito (409) | A tarefa especificada não tem a tarefa de preparação de tarefas. |
JobReleaseTaskNotSpecified | Conflito (409) | A tarefa especificada não tem a tarefa de lançamento da tarefa. |
TaskIdSameAsJobPreparationTask | Conflito (409) | O ID de tarefa especificado é igual à tarefa de preparação da tarefa. |
TaskIdSameAsJobReleaseTask | Conflito (409) | O ID de tarefa especificado é o mesmo que a tarefa de lançamento da tarefa. |
JobWithSameIdExists | Conflito (409) | Existe uma tarefa com o ID de agendamento de tarefas especificado. O agendamento de trabalhos e trabalhos não pode ter o mesmo ID. |
JobScheduleWithSameIdExists | Conflito (409) | Existe um horário de trabalho com o ID de tarefa especificado. O agendamento de trabalhos e trabalhos não pode ter o mesmo ID. |
NodeAlreadyInTargetSchedulingState | Conflito (409) | O nó especificado já está no estado de agendamento de destino. |
OperationNotValidOnNode | Conflito (409) | A operação especificada não é válida no nó. |
OperationNotValidOnPool | Conflito (409) | A operação especificada não é válida no conjunto. |
IOError | Proibido (403) | Ocorreu um erro de E/S ao aceder ao recurso especificado. |
TooManyEnableAutoScaleRequests | ServiceUnavailable (503) | São emitidos demasiados pedidos ativar o Dimensionamento Automático do Conjunto no conjunto. |
ApplicationNotFound | Não Encontrado (404) | A aplicação especificada não existe. |
InvalidApplicationPackageReferences | Conflito (409) | Não foi possível satisfazer uma ou mais referências de pacotes de aplicações. Isto ocorre se o ID ou versão da aplicação não existir ou não estiver ativo ou se a referência não tiver especificado uma versão e não existir uma versão predefinida configurada. |
TaskDependenciesNotSpecifiedOnJob | Pedido Incorreto (400) | Uma tarefa foi especificada consoante outras tarefas, mas a tarefa não especificou que iria utilizar dependências de tarefas. |
TaskDependencyListTooLong | Pedido Incorreto (400) | Uma tarefa foi especificada como dependendo de outras tarefas, mas a lista de dependências era demasiado longa para ser armazenada. O comprimento total armazenado está limitado a 64000 carateres; a duração total dos IDs de tarefas tem de ser ligeiramente menor do que esta para permitir a sobrecarga de armazenamento interno. Se encontrar este erro, considere utilizar dependências do intervalo de tarefas. |
TaskDependencyRangesTooLong | Pedido Incorreto (400) | Uma tarefa foi especificada como dependendo de vários intervalos de IDs de tarefas e a lista de intervalos era demasiado longa para ser armazenada. Tenha em atenção que o problema não é com o tamanho dos intervalos, mas sim com o número de intervalos. |
Códigos de Erro de Agendamento de Tarefas/Tarefas
Se o serviço Batch encontrar um erro ao iniciar uma tarefa num nó, marca a tarefa como concluída. As informações de erro são devolvidas dentro de um failureInfo
elemento no corpo de resposta de Listar os ficheiros associados a uma tarefa e Obter informações sobre as APIs de tarefas .
Da mesma forma, se o serviço Batch encontrar um erro ao iniciar a tarefa, marca a tarefa como concluída. Estas informações de erro de agendamento são devolvidas dentro de um schedulingError
elemento no corpo de resposta de Obter informações sobre uma tarefa nas APIs do Batch .
A tabela seguinte fornece a lista de categorias para erros de agendamento de tarefas.
Categoria | Descrição |
---|---|
UserError | Erros na especificação de tarefa fornecida pelo utilizador. |
ServidorErro | Erros encontrados pelo serviço Batch que o impedem de agendar a tarefa. |
Segue-se um exemplo de erro de pré-processamento devolvido pelo serviço Batch.
{
"preProcessingError": {
"category": "UserError",
"code": "BlobNotFound",
"message": "The specified blob does not exist.",
"values": {
"name": "FilePath",
"value": "myfile.txt"
}
}
}
A tabela seguinte fornece a lista de códigos de erro de agendamento de tarefas que podem ser devolvidos pelo serviço Batch.
Código de erro | Categoria | Mensagem de utilizador |
---|---|---|
InvalidCertificatesInAutoPool | UserError | As referências de certificado especificadas na especificação do conjunto automático não são válidas. |
AutoPoolCreationFailedWithQuotaReached | UserError | A quota de conjunto da conta é atingida. |
InvalidApplicationPackageReferencesInAutoPool | UserError | Um ou mais pacotes de aplicações especificados para o conjunto são inválidos. |
InvalidAutoScaleFormulaInAutoPool | UserError | As definições de dimensionamento automático especificadas não são válidas. |
InvalidAutoPoolSettings | UserError | As definições de conjunto automático especificadas não são válidas. |
JobBeingTerminated | UserError | Não é possível iniciar a tarefa porque a tarefa associada está a ser terminada. |
Desconhecido | ServidorErro | Ocorreu um erro de agendamento desconhecido. |
A tabela seguinte fornece a lista de códigos de erro de agendamento de tarefas que podem ser devolvidos pelo serviço Batch.
Código de erro | Categoria | Mensagem de utilizador |
---|---|---|
BlobNotFound | UserError | Um dos Blobs do Azure especificados não foi encontrado. |
BlobAccessDenied | UserError | O acesso a um dos Blobs do Azure especificados é negado. |
BlobDownloadTimedOut | ServidorErro | Foi encontrado um tempo limite excedido ao transferir um dos Blobs do Azure especificados. |
BlobDownloadMiscError | ServidorErro | Erro diverso encontrado ao transferir um dos Blobs do Azure especificados. |
ResourceDirectoryCreateFailed | ServidorErro | Falha ao criar o diretório de recursos para a tarefa. |
ResourceFileCreateFailed | ServidorErro | Ocorreu uma falha ao criar o ficheiro de recursos. |
ResourceFileWriteFailed | ServidorErro | Falha ao escrever o ficheiro de recursos. |
CommandProgramNotFound | UserError | O programa de comandos especificado não foi encontrado. |
CommandLaunchFailed | UserError | Falha ao iniciar a linha de comandos especificada. |
TarefaSEndidas | UserError | A tarefa foi terminada por pedido do utilizador. |
MaxInternalRetryCountReached | UserError | A tarefa especificada atingiu a contagem máxima de repetições internas. |
TaskSchedulingConstraintFailed | UserError | Não é possível agendar a tarefa no conjunto associado à tarefa |
DiskFull | ServidorErro | Não existe espaço em disco suficiente no nó que foi selecionado para executar a tarefa. |
Desconhecido | ServidorErro | Ocorreu um erro de agendamento desconhecido. |