Desenvolvimento local
As funções do Cloud Run suportam vários métodos de execução das suas funções fora do ambiente de implementação padrão. Isto é particularmente útil para o desenvolvimento iterativo e para situações em que quer testar a sua função antes da implementação.
Exemplos de utilização
A capacidade de executar as suas funções sem as implementar pode simplificar os testes locais, a conformidade com as restrições de localidade dos dados e as implementações em várias nuvens.
Testes locais
Testar uma função reimplantando-a após cada alteração requer que aguarde pela implantação de cada vez. Por outro lado, testar a função diretamente no ambiente de desenvolvimento pode encurtar o ciclo de testes iterativo.
Para mais informações sobre os testes, consulte o artigo Teste uma função do Cloud Run antes da implementação.
Restrições de localidade de dados
Em alguns casos, os regulamentos ou as políticas podem exigir que os dados sejam mantidos dentro de um limite geográfico, organizacional ou de rede específico que pode não estar acessível às próprias funções do Cloud Run.
Se uma plataforma em conformidade com as suas restrições de localidade de dados for compatível com uma das camadas de abstração das funções do Cloud Run, pode executar as suas funções diretamente nessa plataforma sobre uma destas camadas.
Implementações em várias nuvens
As implementações de funções em várias nuvens são um padrão estabelecido para mitigar o risco de tempo de inatividade em ambientes críticos para a fiabilidade. A implementação de funções em ambientes que não sejam as próprias funções do Cloud Run reduz o risco de a sua aplicação sofrer um tempo de inatividade não planeado.
Opções de implementação
Antes de poder configurar o seu próprio ambiente de alojamento de funções, tem de tomar duas decisões importantes:
- Que camada de abstração quer usar.
- Que tipo de função vai executar.
Camadas de abstração
O Cloud Run usa uma arquitetura de várias camadas, grande parte da qual é de código aberto. Estes componentes de código aberto permitem-lhe executar código concebido para funções do Cloud Run noutras plataformas.
Dois componentes desta arquitetura que pode executar fora da infraestrutura de funções do Cloud Run são o Functions Framework e o Functions Emulator. Este documento explica a finalidade de cada uma destas camadas e como se encaixam umas nas outras.
Este diagrama mostra a disposição típica das implementações de funções sobre as funções do Cloud Run, o Cloud Run e outras plataformas baseadas em contentores:
Tipos de eventos
As funções do Cloud Run têm dois tipos principais de funções:
As funções HTTP podem ser acionadas por pedidos HTTP arbitrários, como webhooks, enquanto as funções orientadas por eventos recebem eventos produzidos por outros Google Cloud produtos.
Escolher uma camada de abstração
Pode executar funções localmente através do Functions Framework ou do Functions Emulator.
O Functions Framework é um conjunto de bibliotecas de código aberto usadas nas funções do Cloud Run para anular a serialização de pedidos HTTP recebidos em invocações de funções específicas da linguagem. Pode usá-los para converter a sua função num serviço HTTP executável localmente.
O Functions Emulator usa Cloud Native Buildpacks e Docker para encapsular os serviços HTTP criados pelo Functions Framework e compilá-los em contentores executáveis, que são executados na arquitetura baseada em contentores das funções do Cloud Run.
Ambas as opções têm vantagens e desvantagens:
- Os ambientes baseados no Functions Framework têm, frequentemente, necessidades de recursos mais baixas
- O Functions Framework não requer software de contentorização subjacente (como o Docker)
- Os ambientes baseados no Functions Framework requerem uma infraestrutura de linguagem subjacente (como gestores de pacotes e tempos de execução de linguagem)
- O Functions Emulator reflete os comandos de produção, como chamar e implementar.
- O emulador de funções oferece uma elevada fidelidade à forma como as funções são executadas quando implementadas em produção.
Execute funções localmente
O Functions Framework e o Functions Emulator funcionam encaminhando pedidos HTTP para a sua função.
Consulte o artigo Executar o Functions Framework para ver mais informações sobre como executar funções localmente através do Functions Framework.
Consulte o artigo Execute funções com o emulador de funções para ver mais informações sobre como executar funções localmente com o emulador de funções.