As propriedades de subscrição do Pub/Sub são as caraterísticas de uma subscrição. Pode definir propriedades de subscrição quando cria ou atualiza uma subscrição.
Este documento descreve as diferentes propriedades de subscrição que pode definir para uma subscrição.
Antes de começar
Saiba mais acerca das subscrições.
Compreenda o fluxo de trabalho da subscrição que vai criar: extrair, enviar ou BigQuery.
Propriedades comuns da subscrição
Quando cria uma subscrição, tem de especificar várias opções para configurar a subscrição. Algumas destas propriedades são comuns a todos os tipos de subscrições e são abordadas nas secções seguintes.
Duração da retenção de mensagens
A opção Duração da retenção de mensagens especifica durante quanto tempo o Pub/Sub retém as mensagens após a publicação. Após a duração da retenção de mensagens, o Pub/Sub pode rejeitar a mensagem independentemente do estado de confirmação da mensagem. Para reter mensagens reconhecidas durante o período de retenção de mensagens, consulte o artigo Repetição e rejeição de mensagens.
Seguem-se os valores da opção Duração da retenção de mensagens:
- Valor predefinido = 7 dias
- Valor mínimo = 10 minutos
- Valor máximo = 31 dias
As mensagens não reconhecidas podem resultar de subscrições inativas, necessidades de cópias de segurança ou processamento lento. Se conseguir processar as mensagens no prazo de 24 horas, não incorre em custos adicionais. Pode evitar novas cobranças gerindo estes cenários da seguinte forma:
Subscrições inativas. Elimine subscrições inativas para evitar incorrer em cobranças de retenção de mensagens de subscrição.
Armazenamento de cópias de segurança. Se estiver a usar a retenção de subscrições como armazenamento de cópias de segurança, pode mudar para outra opção de armazenamento, como retenção de mensagens de tópicos ou retenção de mensagens reconhecidas. A retenção de mensagens de tópicos armazena mensagens apenas uma vez ao nível do tópico e permanecem disponíveis para todas as subscrições para consumo quando necessário.
Atrasos no processamento. Adicione mais subscritores (se possível) para processar as mensagens num dia.
Retenha mensagens confirmadas
Se especificar a Duração da retenção de mensagens, também pode especificar se quer reter mensagens reconhecidas.
A opção Manter mensagens confirmadas permite-lhe manter mensagens confirmadas durante o período de retenção de mensagens especificado. Esta opção aumenta as taxas de armazenamento de mensagens. Para mais informações, consulte os custos de armazenamento.
Período de validade
A opção Período de expiração permite-lhe prolongar o período de expiração da sua subscrição.
As subscrições sem atividade de subscritores nem alterações feitas às propriedades da subscrição expiram. Se o Pub/Sub detetar atividade do subscritor ou se atualizar alguma das propriedades da subscrição, o tempo de eliminação da subscrição é reiniciado. Exemplos de atividades de subscritores: incluem ligações abertas, obtenções ativas ou envios bem-sucedidos.
Se especificar o período de expiração, o valor tem de ser, pelo menos, tão longo quanto a duração da retenção de mensagens especificada na opção Duração da retenção de mensagens.
Seguem-se os valores da opção Período de validade:
- Valor predefinido = 31 dias
- Valor mínimo = 1 dia
Para evitar que uma subscrição expire, defina o período de validade como never expire.
Prazo de confirmação
A opção Prazo de confirmação especifica o prazo inicial após o qual uma mensagem não confirmada é enviada novamente. Pode prolongar o prazo de confirmação mensagem a mensagem enviando pedidos ModifyAckDeadline subsequentes.
Seguem-se os valores da opção Prazo de confirmação:
- Valor predefinido = 10 segundos
- Valor mínimo = 10 segundos
- Valor máximo = 600 segundos
Em alguns casos, as bibliotecas de cliente do Pub/Sub podem controlar a taxa de entrega e modificar dinamicamente o prazo de confirmação.
Ao fazê-lo, a mensagem pode ser reenviada antes do prazo de confirmação que definiu. Para substituir este comportamento, use minDurationPerAckExtension
e maxDurationPerAckExtension. Para mais informações sobre a utilização destes valores, consulte o artigo
Suporte de fornecimento único nas bibliotecas de cliente.
Transformações de mensagens únicas (SMTs)
As SMTs permitem modificações simples aos atributos das mensagens e aos dados diretamente no Pub/Sub. Esta funcionalidade permite a limpeza, a filtragem ou a conversão de formato de dados antes de as mensagens serem enviadas para um cliente subscritor.
Para mais informações, consulte Vista geral dos SMTs e Crie uma subscrição com SMTs.
Filtro de subscrições
Use a opção Filtro de subscrição para especificar uma string com uma expressão de filtragem. Se uma subscrição tiver um filtro, esta só envia as mensagens que correspondem ao filtro. O serviço Pub/Sub confirma automaticamente as mensagens que não correspondem ao filtro.
Pode filtrar as mensagens pelos respetivos atributos, mas não pelos dados na mensagem.
Se não for especificado, a subscrição não filtra mensagens e os subscritores recebem todas as mensagens.
Não é possível alterar nem remover os filtros depois de os aplicar.
Quando recebe mensagens de uma subscrição com um filtro, não incorre em taxas de saída para as mensagens que o Pub/Sub reconhece automaticamente. Incorre em taxas de entrega de mensagens e taxas de armazenamento relacionadas com a procura para estas mensagens.
Para mais informações, consulte o artigo Filtre mensagens de uma subscrição.
Ordenação de mensagens
Quando uma subscrição tem a opção Ordenar mensagens ativada, os clientes subscritores recebem mensagens publicadas na mesma região com a mesma chave de ordenação pela ordem em que as mensagens foram recebidas pelo serviço.
Quando usa a entrega ordenada, as confirmações das mensagens posteriores não são processadas até que as confirmações das mensagens anteriores sejam processadas.
Os publicadores têm de enviar mensagens com uma chave de ordenação para que o Pub/Sub possa entregar as mensagens por ordem.
Se não estiver definida, o Pub/Sub pode não entregar mensagens por ordem, mesmo que tenham uma chave de ordenação.
Tópico de mensagens não entregues
Quando não é possível entregar uma mensagem após um número definido de tentativas de entrega ou um subscritor não consegue acusar a receção da mensagem, pode configurar um tópico de mensagens não entregues para o qual estas mensagens podem ser republicadas.
Se definir um tópico de mensagens não entregues, também pode especificar o número máximo de tentativas de entrega. Seguem-se os valores para o número máximo de tentativas de entrega para o tópico de mensagens não entregues:
- Valor predefinido = 5 tentativas de entrega
- Valor mínimo = 5 tentativas de entrega
- Valor máximo = 100 tentativas de entrega
Se o tópico de mensagens não entregues estiver num projeto diferente da subscrição, também tem de especificar o ID do projeto com o tópico de mensagens não entregues.
Para mais informações, consulte o artigo Encaminhamento para tópicos de mensagens não entregues.
Política de repetição
Se o prazo de confirmação expirar ou um subscritor responder com uma confirmação negativa, o Pub/Sub pode enviar a mensagem novamente. Esta tentativa de reenvio é conhecida como a política de repetição da subscrição.
Por predefinição, a política de repetição de uma subscrição está definida para usar a opção Repetir imediatamente. Com esta opção, o Pub/Sub reenvia a mensagem quando o prazo de confirmação expira ou um subscritor responde com uma confirmação negativa.
Também pode definir o valor como Tentar novamente após o atraso de retirada exponencial. Neste caso, tem de especificar os valores de recuo máximo e mínimo.
Seguem-se algumas diretrizes para definir os valores de recuo máximo e mínimo:
Se definir o valor máximo para a duração da repetição, o valor predefinido para a duração mínima da repetição é de 10 segundos.
Se definir o valor mínimo para a duração da repetição, o valor predefinido para a duração máxima da repetição é de 600 segundos.
A duração de recuo mais longa que pode especificar é de 600 segundos.
Política de repetição e mensagens em lote
Se as mensagens estiverem num lote, o Pub/Sub inicia o recuo exponencial quando ocorre uma das seguintes situações:
O subscritor envia uma confirmação negativa para cada mensagem no lote.
O prazo de confirmação expira.
Política de repetição e subscrição push
Se receber mensagens de uma subscrição push, o Pub/Sub pode reenviar mensagens após o recuo push em vez da duração do recuo exponencial. Quando a retirada por push é mais longa do que a duração da retirada exponencial, o Pub/Sub volta a enviar mensagens não reconhecidas após a retirada por push.
Extraia propriedades de subscrição
Quando configura uma subscrição de obtenção, pode especificar as seguintes propriedades.
Entrega exatamente uma vez
Entrega exatamente uma vez. Se estiver definida, a Pub/Sub cumpre as garantias de entrega exatamente uma vez. Se não for especificado, a subscrição suporta a entrega pelo menos uma vez para cada mensagem.
Envie propriedades de subscrição de emissão
Quando configura uma subscrição push, pode especificar as seguintes propriedades.
Pontos finais
URL do ponto final (obrigatório). Um endereço HTTPS acessível publicamente. O servidor do ponto final de envio por push tem de ter um certificado SSL válido assinado por uma autoridade de certificação. O serviço Pub/Sub envia mensagens para pontos finais de envio push a partir da mesma Google Cloud região em que o serviço Pub/Sub armazena as mensagens. O serviço Pub/Sub envia mensagens da mesma Google Cloud região com base no melhor esforço.
Se os subscritores usarem uma firewall, não podem receber pedidos push. Para receber pedidos push, tem de desativar a firewall e validar o símbolo da Web JSON (JWT) usado no pedido. Se um subscritor tiver uma firewall, pode receber um
403 permission deniederro.O Pub/Sub já não requer prova de propriedade para domínios de URL de subscrição push. Se o seu domínio receber pedidos POST inesperados do Pub/Sub, pode denunciar suspeitas de abuso.
Autenticação
Ative a autenticação. Quando ativada, as mensagens enviadas pelo Pub/Sub para o ponto final de envio push incluem um cabeçalho de autorização para permitir que o ponto final autentique o pedido. Os mecanismos de autenticação e autorização automáticos estão disponíveis para os pontos finais das funções do App Engine Standard e do Cloud Run alojados no mesmo projeto que a subscrição.
A