Resolver problemas de desencapsulamento de payload

Nesta página, mostramos como resolver problemas com desencapsulamento de payload.

Erros de código de status HTTP

Ao usar o desencapsulamento de payload, podem ocorrer erros comuns no código de status HTTP. É possível monitorar os erros com a métrica push_request_count.

400 solicitação inválida

O erro a seguir ocorre quando o Pub/Sub não consegue processar a solicitação devido a uma configuração incorreta ou dados ausentes.

400 Bad Request

Esse erro ocorre por vários motivos. Veja a seguir algumas das causas mais comuns desse erro:

  • O payload (dados da mensagem) não corresponde ao formato de solicitação esperado especificado pelo endpoint HTTP.
  • Os cabeçalhos necessários para processar a solicitação estão ausentes.
  • Um endpoint HTTP incorreto está configurado para a assinatura.

Para resolver esse problema, tente o seguinte:

  • Verifique o formato do seu payload (dados da mensagem). Verifique se ele corresponde ao formato de solicitação esperado especificado pelo endpoint HTTP.
  • Verifique se a solicitação contém os cabeçalhos necessários. Se os cabeçalhos estiverem ausentes, talvez seja necessário adicioná-los aos atributos da mensagem. Um exemplo pode incluir Content-Type, mas outros também podem ser necessários.
  • Confirme se o endpoint HTTP configurado para sua assinatura é válido.
  • Ative a Fila de mensagens inativas (DLQ) na sua assinatura de push. Isso redireciona mensagens individuais que não podem ser entregues. Será útil ativar a DLQ se você encontrar um pequeno número de erros 400 que quer inspecionar.

401 não autorizado / 403 proibido

O erro a seguir ocorre quando o Pub/Sub não pode processar a solicitação devido a credenciais incorretas ou inválidas.

401 unauthorized / 403 forbidden

Esse erro ocorre porque a assinatura de push não foi autenticada.

Para resolver esse problema, tente o seguinte:

  • Ative a Autenticação por push. É importante usar a autenticação por push se você estiver fazendo a integração com o Cloud Run ou o App Engine.

    Se a autenticação por push não funcionar com sua solução, talvez seja necessário adicionar sua própria chave de autorização ou de API nos atributos da mensagem de publicação.

415 Tipo de mídia incompatível

O erro a seguir ocorre quando o Pub/Sub não pode processar a solicitação porque o formato do payload está em um formato incompatível.

415 Unsupported Media Type

Esse erro ocorre por vários motivos. Veja a seguir algumas das causas mais comuns desse erro:

  • Falta o cabeçalho de tipo de mídia necessário no endpoint.

Para resolver esse problema, tente a seguinte solução:

  • Seu endpoint provavelmente exige um cabeçalho Content-Type. Por padrão, o desencapsulamento de payload não define um cabeçalho de tipo de mídia. Para definir um cabeçalho Content-Type, anexe-o como um atributo de mensagem de publicação.

Campos do cabeçalho da solicitação 431 muito grandes / Conteúdo 413 muito grande

O erro a seguir ocorre quando o Pub/Sub não pode processar a solicitação porque o conteúdo enviado na solicitação é muito grande.

431 request header fields too Large / 413 content too large

Esse erro ocorrerá se os atributos em uma mensagem do Pub/Sub excederem o tamanho do limite de cabeçalho de um servidor.

Para resolver esses problemas, tente as seguintes soluções:

  • Desative a opção Gravar metadados.
  • Ative a Fila de mensagens inativas (DLQ) na sua assinatura de push. Isso redireciona mensagens individuais que não podem ser entregues. Depois disso, a assinatura continua funcionando, mas as mensagens com erros são redirecionadas para um tópico separado para análise posterior.

Verificar se o desencapsulamento de payload está ativado

  1. No console do Google Cloud, acesse a página Assinaturas.

    Abrir assinaturas do Pub/Sub

  2. Clique no nome do seu serviço.

    A página de detalhes do serviço é aberta.

  3. Na tabela de configuração, encontre os seguintes valores: Desencapsulamento de dados da mensagem e Metadados da mensagem de gravação.

    O status do encapsulamento de payload (ativado ou desativado) é exibido na linha da tabela correspondente.

A seguir