Nesta postagem, falaremos como realizar a integração de um tópico do Pub/Sub com o Cloud Storage utilizando o Dataflow do Google Cloud.
O que é Dataflow?
É um serviço totalmente gerenciado que permite processamento em lote(batch) ou streaming. Minimiza a latência, o tempo e o custo de processamento por meio de escalonamento automático e gerenciamento de recursos.
O que é Pub/Sub?
O Pub/Sub (Publish/Subscribe) é um serviço de mensagens assíncronas do GCP.
Permite armazenamento e entrega de mensagens em formato de tópicos e assinaturas.
O que é Cloud Storage?
Fornece, a nível mundial, um armazenamento de objetos altamente durável que escalona para exabytes de dados. É possível acessar dados instantaneamente de qualquer classe de armazenamento, integrar o armazenamento aos seus aplicativos com uma API exclusiva unificada e otimizar o preço e desempenho de forma fácil.
Passo a Passo
1. O primeiro passo a fazer é o login em sua conta do GCP, para este tutorial você vai precisar de uma conta que possua um projeto.
![](https://miro.medium.com/max/625/0*Krq7iUXz_wUIfv2D.png)
2. Vá até a barra superior e clique no ícone do Cloud Shell, igual a imagem abaixo.
![](https://miro.medium.com/max/781/0*0u_ihw0haxMra8u-.png)
3. Criaremos o bucket do Cloud Storage em que iremos exportar nossa tabela:
gsutil mb -l southamerica-east1 gs://[id-meu-projeto]-arquivos
4. Vá até o menu, selecione Pub/Sub > Tópicos:
5. Selecione Criar Tópico:
6. Dê um nome/id para seu tópico, ele precisa ter de 3 a 255 caracteres, começar com uma letra e conter apenas estes tipos de caracteres: letras, números, traços (-), pontos (.), sublinhados (_), indicadores diacríticos (~), símbolos de porcentagem (%) ou indicadores de adição (+). Não é possível iniciar com "goog". Neste exemplo usaremos o nome "eventos":
7. Verifique o tópico criado:
8. Selecione Exportar para o Text.
9. Insira um nome e uma região para o Job, perceba que o Dataflow selecionou automaticamente um Modelo para processar a integração do Pub/Sub para o Storage:
10. Preencha as informações necessarias conforme abaixo:Local temporário
Observações:
- A propriedade "Input Pub/Sub topic" se refere ao tópico do Pub/Sub que iremos ler no jog do Dataflow, a nossa origem/Input.
- A propriedade "Output file directory in Cloud Storage" se refere ao diretório do Cloud Storage que iremos colocar o arquivo gerado, deverá ser colocado no formato: gs://<bucket>/<diretório>.
- A propriedade "Output filename prefix" se refere ao prefixo que nosso arquivo vai ter. Exemplo: mensagens_.
- A propriedade "Local temporário" se refere ao caminho no storage que irá ser gravado arquivos temporários do processamento.
11. Clique em Executar Job.
Observação: Ao clicar em Linha de comando irá aparecer o comando de criação que pode ser executado no Cloud Shell:
gcloud dataflow jobs run ps-to-text-eventos \
--gcs-location gs://dataflow-templates-us-central1/latest/Cloud_PubSub_to_GCS_Text \
--region southamerica-east1 \
--staging-location gs://id-do-meu-projeto-arquivos/temp \
--parameters inputTopic=projects/id-do-meu-projeto/topics/eventos,outputDirectory=gs://id-do-meu-projeto-arquivos,outputFilenamePrefix=mensagem_
12.Verifique a execução do Job:
13. Volte ao pub/sub e clique em publicar mensagem:
14. Digite sua mensagem e clique em Publicar:
15. Vá até o seu diretório do Storage e veifique o arquivo criado:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVp3joDCDdPXSLk7Z8_pJJISSKjCVx4J-aoHrQUD_sNq3KgxbcWT3IadJnMZUNZDBDybK45FSJloGtlY5iunnQVj-uRche0hY3_ekXYg-sihmyv9GVE_bVU_6YvcD6bMP5DHQ6ozxES1W0/w1291-h113/Untitled+11.png)
Referências
- Por que usar Pub/Sub?
https://inside.contabilizei.com.br/por-que-usar-pub-sub-378f0e212e67
- Pub/Sub
https://cloud.google.com/pubsub?hl=pt-br
- O que é o Pub/Sub?
https://cloud.google.com/pubsub/docs/overview