Este repositório contém dois programas em Go que interagem com o Google Cloud Pub/Sub. A primeira function faz uma requisição GET a um endpoint e publica as mensagens recebidas em um tópico do Pub/Sub. A segunda function consome essas mensagens do tópico e faz um POST em outro endpoint.
func1.go
: Programa responsável por publicar mensagens no tópico do Pub/Sub.function2.go
: Programa responsável por consumir mensagens do tópico e fazer POST das mensagens consumidas.
- Go: Certifique-se de ter o Go instalado em sua máquina. Você pode baixá-lo de golang.org.
- Variáveis de Ambiente: Configure as seguintes variáveis de ambiente:
GCP_PROJECT_ID
: ID do projeto no Google Cloud.PUBSUB_EMULATOR_HOST
: Host do emulador Pub/Sub, por exemplo,localhost:8085
se estiver usando o emulador local.
- Google Cloud SDK: Se você estiver usando o emulador Pub/Sub, certifique-se de ter o Google Cloud SDK instalado e o emulador Pub/Sub em execução.
- Endpoints da API: Nessa POC está sendo usado o json-server pras requisições GET e POST. Certifique-se de que os endpoints
http://localhost:3000/posts
ehttp://localhost:3000/func2
estejam disponíveis e funcionando conforme esperado.
Para ambas functions deve se configurar as variáveis de ambiente:
export PUBSUB_EMULATOR_HOST=localhost:8085
export GCP_PROJECT_ID=project-gcloud-go
-
Navegue até o diretório que contém o arquivo
func1.go
. -
Execute o comando:
go run func1.go
-
Navegue até o diretório que contém o arquivo
function2.go
. -
Execute o comando:
go run function2.go
- Faz uma requisição GET ao endpoint
http://localhost:3000/posts
. - Publica as mensagens recebidas em um tópico do Google Cloud Pub/Sub (
example-topic3
).
- Consome mensagens do tópico do Google Cloud Pub/Sub (
example-subscription3
). - Realiza um POST das mensagens consumidas para o endpoint
http://localhost:3000/func2
.
# Executando a function1
cd /path/to/directory
go run func1.go
# Executando a function2
cd /path/to/directory
go run function2.go