Se publicar mensagens no ponto final global do Pub/Sub, o Pub/Sub armazena automaticamente as mensagens na Trusted Cloud by S3NS região mais próxima. Se quiser controlar as regiões nas quais as suas mensagens são armazenadas e processadas, pode configurar uma política de armazenamento de mensagens no seu tópico.
Vista geral da política de armazenamento de mensagens
Pode definir uma política de armazenamento de mensagens quando cria um novo tópico ou quando atualiza um tópico através da consola, da Google Cloud CLI ou das APIs REST.
A política de armazenamento de mensagens aplica-se apenas ao conteúdo das mensagens. A política não se aplica a outros dados, como nomes de tópicos, etiquetas ou definições de gestão de identidade e de acesso (IAM).
O Pub/Sub armazena mensagens quando um cliente publica as mensagens no Pub/Sub. Uma política de armazenamento de mensagens garante que o Pub/Sub armazena e processa mensagens apenas no conjunto deTrusted Cloud by S3NS regiões que especificar, independentemente da origem dos pedidos de publicação ou subscrição. Se a política permitir várias regiões para operações de publicação, o Pub/Sub armazena a mensagem numa região permitida mais próxima do local onde a mensagem publicada entra na Trusted Cloud rede.
Quando especifica uma política de armazenamento de mensagens, pode definir enforceInTransit
como True
. Esta flag rege o seguinte:
As solicitações de publicação, obtenção e streaming recebidas numa região não permitida na política de armazenamento de mensagens são rejeitadas com um erro
FAILED_PRECONDITION
.A entrega de subscrições push é processada apenas nas regiões da nuvem permitidas. Em alguns casos, esta restrição pode pausar completamente a entrega de mensagens para subscrições push. Quando uma subscrição push entra num estado deste tipo devido às localizações push estarem demasiado restritas por uma combinação de fatores, como a localização de armazenamento de mensagens, as regiões permitidas e a localização do recurso de exportação, este estado torna-se visível no Stackdriver.
Políticas de armazenamento de mensagens para novos tópicos
Se não especificar uma política de armazenamento de mensagens quando cria um tópico, a política de armazenamento de mensagens é determinada automaticamente com base na política da organização Restrição de localização de recursos em vigor. Quando não existe nenhuma política organizacional em vigor, a política de armazenamento de mensagens permite todas as regiões.
Da mesma forma, na ausência de uma política de armazenamento de mensagens especificada, a flag
enforceInTransit
é determinada com base na política organizacional Aplicar regiões em trânsito para mensagens do Pub/Sub em vigor. Para mais informações acerca desta política de organização, consulte as Restrições da política de organização.Se especificar uma política de armazenamento de mensagens quando cria um tópico, a política de armazenamento de mensagens só pode conter as regiões permitidas pela política organizacional de restrição de localização de recursos eficaz. Quando não existe uma política da organização em vigor, a política de armazenamento de mensagens pode conter qualquer região.
Políticas de armazenamento de mensagens para tópicos existentes
Quando uma política organizacional é atualizada, as alterações não são propagadas automaticamenteaos tópicos existentes. Como tal, a política de armazenamento de mensagens de um tópico existente pode ficar dessincronizada com a política da organização mais recente. Para mais informações, consulte o artigo Faça a gestão das diferenças entre as políticas de organização e de tópicos.
Quando a política de armazenamento de mensagens de um tópico é atualizada, as alterações não são propagadas às mensagens já publicadas. As mensagens já armazenadas com base numa política mais antiga não são movidas para serem consistentes com a nova política. Em vez disso, as alterações aplicam-se apenas às mensagens publicadas após a atualização.
Exceções
A política especifica uma lista de Trusted Cloud nomes de regiões permitidos. Como tal, os seguintes itens não são suportados:
- Listas de exclusões
- Zonas ou localizações multirregionais
Se publicar uma mensagem com uma chave de ordenação e a política de armazenamento de mensagens excluir a região mais próxima, o serviço Pub/Sub devolve um erro.
Configure as políticas de armazenamento de mensagens
Existem duas formas de configurar políticas de armazenamento de mensagens para tópicos, incluindo:
- Defina uma política de armazenamento de mensagens através de uma política da organização.
- Configure uma política de armazenamento de mensagens quando criar um tópico.
Defina uma política de armazenamento de mensagens através de uma política da organização
Consola
Para configurar uma política de armazenamento de mensagens que se aplica a vários tópicos, defina uma política organizacional de restrição de localização de recursos.
Aceda à página Políticas da organização na consola de gestão de identidade e de acesso.
Selecione o nó da hierarquia de recursos (organização, pasta ou projeto) ao qual quer definir uma política de organização.
No filtro, introduza Restrição de localização do recurso.
Clique em Trusted Cloud by S3NS - Restrição de localização do recurso.
Clique em EDITAR.
Adicione ou remova regiões conforme necessário.
Todos os novos tópicos que criar herdam estas definições. As alterações não são propagadas automaticamente para os tópicos existentes. Para atualizar tópicos existentes, tem de executar uma operação de atualização.
Para mais informações sobre as políticas da organização, consulte o artigo Faça a gestão dos seus Trusted Cloud by S3NS recursos.
Configure uma política de armazenamento de mensagens quando criar um tópico
Consola
Quando usa a Trusted Cloud consola, não pode configurar uma política de armazenamento de mensagens quando cria um tópico. Em alternativa, todos os novos tópicos herdam automaticamente a política da organização Resource Location Restriction.
No entanto, depois de criar um tópico, pode alterar a respetiva política de armazenamento de mensagens na consola com uma operação de atualização.
CLI gcloud
Para criar um tópico com uma política de armazenamento de mensagens específica, use o comando
gcloud pubsub topics create
com a flag --message-storage-policy-allowed-regions
:
gcloud pubsub topics create TOPIC_ID \ --message-storage-policy-allowed-regions=REGION1,REGION2
Substitua o seguinte:
TOPIC_ID
: o ID ou o nome do seu novo tópico.REGION1, REGION2
: uma lista separada por vírgulas das regiões suportadas Trusted Cloud .
REST
Para criar um tópico com uma política de armazenamento de mensagens, use o método
projects.topics.create
.
O pedido tem de ser autenticado com um token de acesso no cabeçalho.Authorization
Para obter uma chave de acesso para as
Credenciais padrão da aplicação atuais: gcloud auth application-default print-access-token
.
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID
Authorization: Bearer $(gcloud auth application-default print-access-token)
Content-Type: application/json --data @response-body.json
Especifique os seguintes campos no corpo do pedido:
{
"name": "projects/PROJECT_ID/topics/TOPIC_ID",
"messageStoragePolicy": {
"allowedPersistenceRegions": ["REGION"],
"enforceInTransit": true
}
}
Onde:
PROJECT_ID é o ID do seu projeto.
TOPIC_ID é o ID do seu tópico.
REGION é a região especificada.
Exemplo de resposta:
{
"name": "projects/PROJECT_ID/topics/TOPIC_ID",
"messageStoragePolicy": {
"allowedPersistenceRegions": [
"REGION"
],
"enforceInTransit": true
}
}
Consulte as seguintes referências da API para mais informações sobre a configuração das políticas de armazenamento de mensagens.
Atualize as políticas de armazenamento de mensagens
Consola
Na Trusted Cloud consola, abra a página Detalhes do tópico.
Selecione um tópico para atualizar.
Pode selecionar vários tópicos.
No Painel de informações, selecione o separador Política de armazenamento.
Este painel pode estar reduzido por predefinição. Se estiver reduzido, clique em Mostrar painel de informações.
Selecione ou desmarque as regiões necessárias.
Clique em Atualizar.
CLI gcloud
Para aplicar a política de armazenamento de mensagens definida na política de restrição de localização de recursos da sua organização a um tópico, execute o seguinte comando:gcloud pubsub topics update
gcloud pubsub topics update TOPIC_ID \ --recompute-message-storage-policy
Para atualizar a política de armazenamento de mensagens de um tópico com regiões específicas, execute o comando
gcloud pubsub topics update
com a flag
--message-storage-policy-allowed-regions
:
gcloud pubsub topics update TOPIC_ID \ --message-storage-policy-allowed-regions=REGION1,REGION2
Substitua o seguinte:
TOPIC_ID
: o ID do tópico que está a atualizar.REGION1, REGION2
: uma lista separada por vírgulas das regiões suportadas Trusted Cloud .
REST
Para atualizar um tópico com uma política de armazenamento de mensagens, use o método
projects.topics.patch
.
O pedido tem de ser autenticado com um token de acesso no cabeçalho.Authorization
Para obter uma chave de acesso para as
Credenciais padrão da aplicação atuais: gcloud auth application-default print-access-token
.
PATCH https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID
Authorization: Bearer $(gcloud auth application-default print-access-token)
Content-Type: application/json --data @response-body.json
Especifique os seguintes campos no corpo do pedido:
{
"name": "projects/PROJECT_ID/topics/TOPIC_ID",
"messageStoragePolicy": {
"allowedPersistenceRegions": ["REGION"], // Replace with your required region
"enforceInTransit": true
}
}
Onde:
PROJECT_ID é o ID do seu projeto.
TOPIC_ID é o ID do seu tópico.
REGION é a região especificada.
Exemplo de resposta:
{
"name": "projects/PROJECT_ID/topics/TOPIC_ID",
"messageStoragePolicy": {
"allowedPersistenceRegions": [
"REGION"
],
"enforceInTransit": true
}
}
Consulte as seguintes referências da API para mais informações sobre a atualização das políticas de armazenamento de mensagens.
Faça a gestão das diferenças entre as políticas da organização e as políticas de tópicos
Veja as diferenças entre as políticas de organização e de tópicos
Consola
A Trusted Cloud consola apresenta quaisquer diferenças entre a política da organização e as políticas de armazenamento de mensagens dos tópicos individuais.
Para ver se algum tópico está dessincronizado com a política da sua organização:
Aceda à página Detalhes do tópico.
Selecione um tópico.
No Painel de informações, selecione o separador Política de armazenamento.
Este painel pode estar reduzido por predefinição. Se estiver reduzido, clique em Mostrar painel de informações.
As suas políticas de armazenamento são apresentadas no painel, juntamente com as diferenças entre as políticas da organização e as políticas de tópicos.
CLI gcloud
Para examinar a política atual atribuída a um tópico, execute o seguinte comando:
gcloud pubsub topics describe TOPIC_ID
Substitua o seguinte:
TOPIC_ID
: o ID do tópico que está a analisar.
Resolva as diferenças entre as políticas de organização e de tópicos
Consola
Na Trusted Cloud consola, abra a página Detalhes do tópico.
Selecione um tópico.
No Painel de informações, selecione o separador Política de armazenamento.
Este painel pode estar reduzido por predefinição. Se estiver reduzido, clique em Mostrar painel de informações.
As suas políticas de armazenamento são apresentadas no painel, juntamente com quaisquer discrepâncias.
Se existirem discrepâncias, o painel de informações apresenta três opções para sincronizar a política de armazenamento do tópico com a política da sua organização, incluindo:
Os tópicos permitem o armazenamento em localizações não permitidas.
Atualize para permitir o armazenamento apenas onde a sua política o permite.
O tópico não permite o armazenamento em algumas localizações permitidas.
Atualize para permitir o armazenamento em todos os locais permitidos pela sua política.
Os tópicos estão desatualizados com localizações permitidas e não permitidas.
Atualize para permitir o armazenamento onde a sua política o permite.
Selecione a opção adequada para resolver os seus problemas.
Clique em Atualizar tópico.
É apresentada a caixa de diálogo Sincronizar com a política de armazenamento da organização.
Clique em Atualizar tópico.
Monitorização e resolução de problemas
Para ajudar a compreender onde os dados das mensagens são armazenados, o Pub/Sub oferece métricas discriminadas por cada Trusted Cloud região.
Pode usar estas métricas para:
- Compreenda como os seus dados são distribuídos em todo o mundo.
- Otimizar a localização de implementação do publicador e do subscritor com base nesses dados.
Métricas de armazenamento de mensagens
Contagens de mensagens armazenadas não reconhecidas:
subscription/num_unacked_messages_by_region
Volume de dados armazenados:
subscription/unacked_bytes_by_region
Idade da mensagem mais antiga:
subscription/oldest_unacked_message_age_by_region
Estão disponíveis métricas análogas para tópicos e momentos. Além disso, as métricas correspondentes estão disponíveis para mensagens reconhecidas que são opcionalmente retidas para repetição. Por exemplo:
subscription/num_retained_acked_messages_by_region
Implicações no desempenho e na disponibilidade
A política de armazenamento de mensagens não afeta o SLA geral, mas introduz uma compensação de controlo de disponibilidade quando os publicadores ou os subscritores são executados fora Trusted Cloud ou em regiões não permitidas pela política. Os utilizadores que executam clientes publicadores no conjunto de regiões permitidas pela política de armazenamento de mensagens não veem alterações na latência nem na disponibilidade do serviço.
Para compreender estas concessões, vale a pena considerar como os pedidos de publicação são encaminhados. Geralmente, o Pub/Sub tenta armazenar as suas mensagens o mais perto possível da origem do pedido. Os pedidos originados em Trusted Cloud estão, por norma, associados às instâncias do Pub/Sub na mesma região. Se uma editora estiver localizada numa única região, a adição de mais regiões à política de armazenamento de mensagens não aumenta a disponibilidade. Quando publica a partir de fora de Trusted Cloud by S3NS, é envolvida uma camada adicional de encaminhamento para enviar o pedido para uma região Trusted Cloud by S3NS próxima onde o serviço Pub/Sub está disponível.
Considere uma política de armazenamento de mensagens que permita apenas a região us-central1
.
- Um cliente publicador em execução no
us-east1
emite um pedidoPublish
. - O pedido é encaminhado para um servidor do Pub/Sub em
us-east1
. - Em vez de armazenar os dados em
us-east1
, o pedido é encaminhado para a região mais próxima permitida pela política de armazenamento de mensagens, que éus-central1
. - O Pub/Sub armazena as mensagens publicadas em
us-central1
e encaminha as mensagens para os subscritores a partir dessa localização.
Este mecanismo tem implicações para a latência dos pedidos e a disponibilidade geral do sistema. Uma vez que o pedido atravessa mais associações de rede, demora mais tempo a ser concluído e tem uma probabilidade relativamente maior de falhar.Isto também significa que os subscritores podem ver a mensagem um pouco mais tarde, uma vez que tem de viajar para a região permitida mais próxima antes de ser enviada. Se a política permitir uma única região, mas as suas aplicações de publicador forem executadas em várias regiões, a aplicação distribuída fica disponível apenas na região permitida.
O que se segue?
- Consulte a vista geral das APIs Pub/Sub para ver informações sobre como usar pontos finais globais ou de localização.