Solucionar problemas de erros de API do Amazon SQS - Amazon Simple Queue Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solucionar problemas de erros de API do Amazon SQS

Os tópicos a seguir abordam os erros mais comuns retornados ao fazer chamadas de API do Amazon SQS e como solucioná-los.

Erro QueueDoesNotExist

Esse erro será retornado quando o serviço Amazon SQS não conseguir encontrar a fila mencionada para a ação do Amazon SQS.

Possíveis causas e mitigações:

  • Região incorreta: revise a configuração do cliente do Amazon SQS para confirmar se você configurou a região correta no cliente. Quando você não configura uma região no cliente, o SDK ou a AWS CLI escolhe a região no arquivo de configuração ou na variável de ambiente. Se o SDK não encontrar uma região no arquivo de configuração, ele definirá a região como us-east-1 por padrão.

  • A fila pode ter sido excluída recentemente: se a fila foi excluída antes da chamada de API ser feita, a chamada da API retornará esse erro. Verifique se há alguma operação de DeleteQueue no CloudTrail antes do momento do erro.

  • Problemas de permissão: se o perfil ou usuário solicitante do AWS Identity and Access Management (IAM) não tiver as permissões necessárias, você poderá receber o seguinte erro:

    The specified queue does not exist or you do not have access to it.

    Verifique as permissões e faça a chamada de API com as permissões corretas.

Consulte mais detalhes sobre a solução de problemas do erro QueueDoesNotExist em Como soluciono o erro QueueDoesNotExist ao fazer chamadas de API para minha fila do Amazon SQS? no Guia do Centro de Conhecimento da AWS.

Erro InvalidAttributeValue

Esse erro será retornado ao atualizar a política de recursos de fila do Amazon SQS ou propriedades com uma política ou uma entidade principal incorretas.

Possíveis causas e mitigações:

  • Política de recursos inválida: verifique se a política de recursos tem todos os campos obrigatórios. Consulte mais informações Referência de elemento de política JSON do IAM e Validação de política do IAM. Você também pode usar o gerador de políticas do IAM para criar e testar uma política de recursos do Amazon SQS. Verifique se a política está no formato JSON.

  • Entidade principal inválida: verifique se o elemento Principal existe na política de recursos e se o valor é válido. Se o elemento Principal da política de recursos do Amazon SQS incluir uma entidade do IAM, certifique-se de que a entidade exista antes de usar a política. O Amazon SQS valida a política de recursos e verifica a entidade do IAM. Se a entidade do IAM não existir, você receberá um erro. Para confirmar as entidades do IAM, use as APIs GetUser e GetRole.

Consulte mais informações sobre a solução de problemas do erro InvalidAttributeValue em Como soluciono o erro QueueDoesNotExist ao fazer chamadas de API para minha fila do Amazon SQS? no Guia do Centro de Conhecimento da AWS.

Erro ReceiptHandle

Ao fazer uma chamada de API DeleteMessage, o erro ReceiptHandleIsInvalid ou InvalidParameterValue poderá ser retornado se o identificador do recibo estiver incorreto ou expirado.

  • Erro ReceiptHandleIsInvalid: se o identificador do recibo estiver incorreto, você receberá um erro semelhante a este exemplo:

    An error occurred (ReceiptHandleIsInvalid) when calling the DeleteMessage operation: The input receipt handle <YOUR RECEIPT HANDLE> is not a valid receipt handle.
  • Erro InvalidParameterValue: se o identificador do recibo estiver expirado, você receberá um erro semelhante a este exemplo:

    An error occurred (InvalidParameterValue) when calling the DeleteMessage operation: Value <YOUR RECEIPT HANDLE> for parameter ReceiptHandle is invalid. Reason: The receipt handle has expired.

Possíveis causas e mitigações:

O identificador do recibo é criado para cada mensagem recebida e só é válido para o período de tempo limite de visibilidade. Quando o período de tempo limite de visibilidade expira, a mensagem fica visível na fila para os consumidores. Ao receber a mensagem novamente do consumidor, você recebe um novo identificador de recibo. Para evitar erros incorretos ou expirados no identificador de recibo, use o identificador de recibo correto para excluir a mensagem dentro do período de tempo limite de visibilidade da fila do Amazon SQS.

Consulte mais informações sobre como solucionar um erro ReceiptHandle em Como solucionar os erros “ReceiptHandleIsInvalid” e “InvalidParameterValue” ao usar a chamada de API DeleteMessage do Amazon SQS? no Guia do Centro de Conhecimento da AWS.