Desenvolvimento local
O Cloud Functions é compatível com vários métodos de execução de funções fora do ambiente de implantação padrão. Isso é especialmente útil para o desenvolvimento iterativo e em situações em que você quer testar a função antes da implantação.
Casos de uso
A capacidade de executar suas funções sem implantá-las pode simplificar os testes locais, a conformidade com as restrições de localidade de dados e as implantações de várias nuvens.
Teste local
O teste de uma função por meio da reimplantação dela após cada alteração exige que você aguarde sempre a conclusão da implantação. Por outro lado, testar a função diretamente no ambiente de desenvolvimento pode reduzir o ciclo de teste iterativo.
Para mais informações sobre testes, consulte a página Testar uma função do Cloud antes da implantação.
Restrições de localidade dos dados
Em alguns casos, regulamentos ou políticas podem exigir que os dados sejam mantidos dentro de um determinado limite geográfico, organizacional e/ou de rede que não possa ser acessado pelo próprio Cloud Functions.
Se uma plataforma que estiver em conformidade com as restrições de localidade dos dados for compatível com uma das camadas de abstração do Cloud Functions, será possível executar as funções diretamente nessa plataforma sobre uma dessas camadas.
Implantações em várias nuvens
As implantações de funções em várias nuvens são um padrão estabelecido para reduzir o risco de inatividade em ambientes críticos de confiabilidade. A implantação de funções em ambientes diferentes do Cloud Functions reduz o risco de seu aplicativo sofrer tempo de inatividade não planejado.
Opções de implementação
Antes de configurar seu próprio ambiente de hospedagem de função, há duas opções principais que precisam ser feitas:
- Qual camada de abstração você quer usar.
- Que tipo de função você executará.
Camadas de abstração
O Cloud Functions tem uma arquitetura de várias camadas, e a maioria delas tem código aberto. Esses componentes de código aberto permitem executar código projetado para o Cloud Functions em outras plataformas.
Dois componentes dessa arquitetura que podem ser executados fora da infraestrutura do Cloud Functions são o Functions Framework e o emulador de funções da CLI do Google Cloud. Neste documento, explicamos a finalidade de cada uma dessas camadas e como elas se encaixam.
O diagrama abaixo mostra o layout típico de implantações de função sobre o Cloud Functions, Cloud Run e outras plataformas baseadas em contêiner:
Tipos de evento
O Cloud Functions tem dois tipos principais de funções:
As funções HTTP podem ser acionadas por solicitações HTTP arbitrárias, como webhooks, enquanto as funções baseadas em eventos recebem eventos produzidos por outros produtos do Google Cloud Platform.
Como escolher uma camada de abstração
É possível executar funções localmente usando o Function Framework ou o emulador do Functions.
O Functions Framework é um conjunto de bibliotecas de código aberto usado no Cloud Functions para desempacotar as solicitações HTTP recebidas em invocações de função específicas da linguagem. É possível usá-las para converter sua função em um serviço HTTP executado localmente.
O emulador do Functions usa buildpacks nativos do Cloud e o Docker para encapsular serviços HTTP criados pelo Functions Framework e criá-los em contêineres executáveis, que, em seguida, são executados na arquitetura baseada em contêiner do Cloud Functions.
Ambas as opções têm vantagens e desvantagens:
- Ambientes baseados no Functions Framework geralmente têm menos necessidade de recursos
- O Functions Framework não requer um software de conteinerização subjacente (como o Docker).
- Os ambientes baseados no Functions Framework exigem uma infraestrutura de linguagem subjacente, como gerenciadores de pacotes e ambientes de execução de linguagem.
- O emulador do Functions espelha comandos de produção, como chamadas e implantações.
- Ele oferece alta fidelidade na execução das funções quando implantado na produção.
Executar funções localmente
Tanto o Functions Framework quanto o Functions Emulator funcionam encaminhando solicitações HTTP para sua função.
Consulte Como executar o Functions Framework para mais informações sobre como executar funções localmente usando o Functions Framework.
Consulte Executar o Functions usando o emulador do Functions para mais informações sobre como executar funções localmente usando o emulador do Functions.