Obter IDs de solicitação do Amazon S3 para o AWS Support - Amazon Simple Storage Service

Obter IDs de solicitação do Amazon S3 para o AWS Support

Sempre que você entrar em contato com o AWS Support devido a erros ou comportamento inesperado no Amazon S3, é necessário fornecer os IDs das solicitações associadas à ação com falha. O AWS Support usa esses IDs das solicitações para ajudar a resolver os problemas que está enfrentando.

Os IDs da solicitação são fornecidos em pares, são retornados em cada resposta que o Amazon S3 processa (mesmo errôneas) e podem ser acessados por meio de logs detalhados. Há vários métodos comuns para obter os IDs das solicitações, incluindo logs de acesso do S3 e eventos ou eventos de dados do AWS CloudTrail.

Depois de recuperar esses logs, copie e mantenha esses dois valores, pois você precisará deles ao entrar em contato com o AWS Support. Para obter informações sobre como entrar em contato com o AWS Support, consulte Entrar em contato com a AWS ou a Documentação do AWS Support.

Usar HTTP para obter IDs de solicitação

Você pode obter os IDs da solicitação, x-amz-request-id e x-amz-id-2, registrando os bits de uma solicitação HTTP antes que ela chegue ao aplicativo de destino. Há várias ferramentas de terceiros que podem ser usadas para recuperar logs detalhados de solicitações HTTP. Escolha uma de sua confiança e execute a ferramenta para escutar na porta em que o tráfego do Amazon S3 passa ao enviar outra solicitação HTTP do Amazon S3.

Para solicitações HTTP, o par de IDs de solicitação será parecido com isto:

x-amz-request-id: 79104EXAMPLEB723 x-amz-id-2: IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km
nota

As solicitações HTTP estão criptografadas e ocultas na maioria das capturas de pacotes.

Usar um navegador da web para obter IDs de solicitação

A maioria dos navegadores da web tem ferramentas de desenvolvedor que podem ser usadas para visualizar os cabeçalhos das solicitações.

Para solicitações baseadas em navegador da web que retornam um erro, o par de IDs de solicitações será parecido com os exemplos a seguir.

<Error><Code>AccessDenied</Code><Message>Access Denied</Message> <RequestId>79104EXAMPLEB723</RequestId><HostId>IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km</HostId></Error>

Para obter o par de IDs de solicitações bem-sucedidas, use as ferramentas de desenvolvedor do navegador para ver os cabeçalhos das respostas HTTP. Para obter informações sobre as ferramentas de desenvolvedor para navegadores específicos, consulte Solução de problemas do Amazon S3: como recuperar os IDs de solicitações do S3 no AWS re:Post.

Usar os AWS SDKs para obter IDs de solicitação

As seções a seguir incluem informações para configuração do log usando um AWS SDK. Embora seja possível habilitar o log detalhado em cada solicitação e resposta, não recomendamos habilitar o log em sistemas de produção, já que solicitações ou respostas grandes podem provocar uma lentidão significativa em uma aplicação.

Para solicitações do AWS SDK, o par de IDs da solicitação será parecido com os exemplos a seguir.

Status Code: 403, AWS Service: Amazon S3, AWS Request ID: 79104EXAMPLEB723 AWS Error Code: AccessDenied AWS Error Message: Access Denied S3 Extended Request ID: IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km

Usar o SDK para Go para obter IDs de solicitação

É possível configurar o registro em log usando o SDK para Go. Consulte mais informações em Response metadata no Guia do desenvolvedor do SDK para Go V2.

Usar o SDK para PHP para obter IDs de solicitação

É possível configurar o log usando PHP. Para obter mais informações, consulte Como posso ver quais dados são enviados pela rede? no Guia do desenvolvedor do AWS SDK for PHP.

Usar o SDK for Java para obter IDs de solicitação

Você pode habilitar o log para solicitações ou respostas específicas, para obter e retornar apenas de cabeçalhos relevantes. Para fazer isso, importe a classe com.amazonaws.services.s3.S3ResponseMetadata. Mais tarde, você pode armazenar a solicitação em uma variável antes de executar a solicitação real. Para obter a solicitação ou a resposta registrada em log, chame getCachedResponseMetadata(AmazonWebServiceRequest request).getRequestID().

PutObjectRequest req = new PutObjectRequest(bucketName, key, createSampleFile()); s3.putObject(req); S3ResponseMetadata md = s3.getCachedResponseMetadata(req); System.out.println("Host ID: " + md.getHostId() + " RequestID: " + md.getRequestId());

Como alternativa, você pode usar log detalhado de cada solicitação e resposta de Java. Para obter mais informações, consulte Registro em log detalhado no Guia do desenvolvedor do AWS SDK for Java.

Usar o AWS SDK for .NET para obter IDs de solicitação

É possível configurar o log com o AWS SDK for .NET usando a ferramenta integrada de log System.Diagnostics. Para obter mais informações, consulte a publicação Registro em log com o AWS SDK para .NET no Blog do desenvolvedor da AWS.

nota

Por padrão, o log retornado contém somente informações de erros. Para obter os IDs de solicitação, o arquivo de configuração deve ter AWSLogMetrics (e, opcionalmente, AWSResponseLogging) adicionado.

Usar o SDK para Python (Boto3) para obter IDs de solicitação

Com o AWS SDK for Python (Boto3), você pode registrar respostas específicas. É possível usar esse recurso para capturar somente os cabeçalhos relevantes. O código a seguir mostra como registrar em log partes da resposta a um arquivo:

import logging import boto3 logging.basicConfig(filename='logfile.txt', level=logging.INFO) logger = logging.getLogger(__name__) s3 = boto3.resource('s3') response = s3.Bucket(bucket_name).Object(object_key).put() logger.info("HTTPStatusCode: %s", response['ResponseMetadata']['HTTPStatusCode']) logger.info("RequestId: %s", response['ResponseMetadata']['RequestId']) logger.info("HostId: %s", response['ResponseMetadata']['HostId']) logger.info("Date: %s", response['ResponseMetadata']['HTTPHeaders']['date'])

Também é possível capturar exceções e registrar em log informações relevantes quando uma exceção é gerada. Para obter mais informações, consulte Discernir informações úteis de respostas de erro na Referência de API do AWS SDK para Python (Boto).

Além disso, é possível configurar o Boto3 para gerar logs de depuração detalhados usando o seguinte código:

import boto3 boto3.set_stream_logger('', logging.DEBUG)

Para obter mais informações, consulte set_stream_logger na Referência de API do AWS SDK para Python (Boto).

Usar o SDK para Ruby para obter IDs de solicitação

É possível obter os IDs de solicitação usando o SDK para Ruby versões 1, 2 ou 3.

  • Como usar o SDK para Ruby - versão 1 – você pode habilitar o log da conexão HTTP globalmente com a linha de código a seguir.

    s3 = AWS::S3.new(:logger => Logger.new($stdout), :http_wire_trace => true)
  • Como usar o SDK para Ruby - versão 2 ou 3 – Você pode habilitar o log da conexão HTTP globalmente com a linha de código a seguir.

    s3 = Aws::S3::Client.new(:logger => Logger.new($stdout), :http_wire_trace => true)

Para obter dicas de como obter informações de rede de um cliente da AWS, consulte Dica de depuração: obter informações de rastreamento de rede de um cliente.

Usar a AWS CLI para obter IDs de solicitação

Para obter os IDs de solicitação ao usar a AWS Command Line Interface (AWS CLI), adicione --debug ao comando .

Usar o Windows PowerShell para obter IDs de solicitação

Para obter informações sobre como recuperar logs com o Windows PowerShell, consulte a publicação Log de respostas no AWS Tools for Windows PowerShell no blog de desenvolvimento do .NET.

Usar eventos de dados do AWS CloudTrail para obter IDs de solicitação

Um bucket do Amazon S3 que é configurado com eventos de dados do CloudTrail para registrar operações de API no nível de objeto do S3 fornece informações detalhadas sobre as ações realizadas por um usuário, um perfil ou um serviço da AWS no Amazon S3. É possível identificar os IDs de solicitação do S3 consultando os eventos do CloudTrail com o Athena.

Usar o registro de acesso ao servidor do S3 para obter IDs de solicitação

Um bucket do Amazon S3 configurado para o registro de acesso ao servidor do S3 fornece registros detalhados para cada solicitação feita ao bucket. É possível identificar os IDs de solicitação do S3 consultando os logs de acesso ao servidor usando o Athena.