Firebase Functions - Emulators Google Tasks

Guia para configurar e testar o emulador alternativo do Google Cloud Tasks em seu ambiente local

Firebase Functions - Emulators Google Tasks

Olá meus Unicórnios! 🦄✨

Conhecemos o Firebase Emulators no Tutorial anterior:

Firebase Functions - Emulators
Como configurar e iniciar o Firebase Emulator para testar suas funções e o Realtime Database em ambiente local

Uma das outras funções que não são suportadas é o Google Tasks (É, Infelizmente).

Configurando e Iniciando Emulador Alternativo

Iremos utilizar uma aplicação, disponível no Github, utilizando a linguagem "go":

GitHub - aertje/cloud-tasks-emulator: Google cloud tasks emulator
Google cloud tasks emulator. Contribute to aertje/cloud-tasks-emulator development by creating an account on GitHub.

Então, antes de qualquer coisa, instale o Go em seu Windows:

Download and install - The Go Programming Language

Depois de instalar o Go, execute o comando abaixo para confirmar que a instalação foi executada com sucesso:

go version

Caso esteja instalado, será exibido a versão do Go:

Agora que já temos o Go, iremos clonar o repositório para uma pasta conhecida:

C:\Testes\cloud-tasks-emulator

Abra o CMD e abra a pasta do repositório:

cd C:\Testes\cloud-tasks-emulator

Para iniciar o serviço, iremos utilizar o comando "go run ./" passando como parâmetro o Host/Porta e as filas que serão criadas:

go run ./ -host localhost -port 8000 -queue projects/testespaloma/locations/us-west1/queues/testefila1

Será exibido "Starting cloud tasks" indicando que o serviço foi iniciado:

Configurando "index.js" para Utilizar o Emulador do Google Task

Adicione a dependência "grpc":

const grpc = require("@grpc/grpc-js");

Em seguida, crie uma variável onde iremos configurar o "localhost" no host de autorização:

const grpcOptions = {
'grpc.ssl_target_name_override': 'localhost',
'grpc.default_authority': 'localhost',
};

No "CloudTasksClient" altere para o padrão abaixo:

const tasksClient = new CloudTasksClient({
apiEndpoint: "localhost",
port: 8000,
transport: "grpc",
sslCreds: grpc.credentials.createInsecure(),
clientConfig: grpcOptions   
});

Testando a Emulador Alternativo

Quando uma tarefa for executada, o CMD onde o "go run" foi executado, ira exibir "Task done":

Por hoje é só, meus unicórnios! 🦄✨

Que a magia do arco-íris continue brilhando em suas vidas! Até mais! 🌈🌟