Entender como as opções de implantação de funções do Google Cloudse comparam ajuda você a fazer a transição de cargas de trabalho da API Cloud Functions para a API Cloud Run Admin. Neste documento, detalhamos as principais diferenças entre conceitos, configuração, implantação, gatilhos e novas tentativas.
Comparação
Há duas versões do Cloud Run functions:
O Cloud Run functions é a versão mais recente de funções, implantadas como um serviço no Cloud Run. Eles podem ser criados de uma das seguintes maneiras:
- API Cloud Run Admin
(recomendado): as funções criadas com essa API (por exemplo, usando o console doGoogle Cloud , o
gcloud run, a API REST ou o Terraform) podem ser gerenciadas exclusivamente com a API Cloud Run Admin. - API Cloud Functions v2: as funções
criadas com essa API (por exemplo, usando
gcloud functions, a API REST ou o Terraform) podem ser gerenciadas com a API Cloud Run Admin e a API Cloud Functions v2. Ao usar essa API, você especifica o gatilho ao implantar a função. Saiba como desvincular uma função da API v2 para que ela possa ser gerenciada exclusivamente usando a API Cloud Run Admin.
- API Cloud Run Admin
(recomendado): as funções criadas com essa API (por exemplo, usando o console doGoogle Cloud , o
Cloud Run functions (1ª geração), anteriormente conhecido como Cloud Functions (1ª geração), é a versão original das funções com gatilhos de eventos, ambientes de execução e capacidade de configuração limitados. Saiba como fazer upgrade das funções de 1ª geração para o Cloud Run.
Ao implantar funções diretamente no Cloud Run, elas são criadas automaticamente como contêineres e implantadas como um serviço do Cloud Run.
Conceitos
A tabela a seguir resume as diferenças conceituais das funções.
| Cloud Run functions | Funções do Cloud Run (1ª geração) | |
|---|---|---|
| Nome anterior do produto | Cloud Functions (2ª geração) | Cloud Functions (1a geração) |
| Modelo de recursos | Uma função é um serviço do Cloud Run implantado com base no código-fonte | Uma função é implantada do código-fonte |
| Terminologia dos tipos de funções |
|
|
| URL HTTPS atribuído | run.appAs funções criadas com a API Cloud Functions v2 também têm um endpoint cloudfunctions.net. |
cloudfunctions.net |
| Registro de imagens | Apenas o Artifact Registry | Artifact Registry ou Container Registry (descontinuado) |
| Papéis do IAM para implantação |
|
|
| Infraestrutura interna | Cloud Run | Interno do Google |
| Modelo de preços | Preços do Cloud Run | Preços do Cloud Run functions (1ª geração) |
Configuração
O Cloud Run cria funções em contêineres e as implanta como serviços. Ao implantar uma função no Cloud Run, você tem acesso e controle total sobre o comportamento dela. Por exemplo, é possível ativar a VPC direta, configurar GPUs, usar montagens de volume e muito mais.
A tabela a seguir resume as diferenças de configuração das funções:
| Cloud Run functions | Funções do Cloud Run (1ª geração) | |
|---|---|---|
| Tempo limite da solicitação |
|
|
| Tamanho da instância | Até 16 GiB de RAM com 4 vCPUs | Até 8 GB de RAM com 2 vCPUs |
| Simultaneidade | Até 1.000 solicitações simultâneas por instância de função. | 1 solicitação simultânea por instância de função |
| Divisão de tráfego | Com suporte | Sem suporte |
Implantação
Desde agosto de 2024, é possível usar o Cloud Run para implantar e gerenciar funções criadas com a API Cloud Functions v2. Como resultado dessa mudança:
- Os metadados da função, como o ID do ambiente de execução e as configurações de build, são armazenados na definição do serviço do Cloud Run.
- É possível editar a função com segurança usando a API Cloud Run Admin.
- É possível confiar na definição do serviço do Cloud Run como a fonte de verdade para sua função.
No entanto, as funções criadas com a API Cloud Run Admin não podem ser modificadas com a API Cloud Functions.
A tabela a seguir resume as diferenças na criação, implantação, edição e gerenciamento de funções:
| Cloud Run functions | Funções do Cloud Run (1ª geração) | |
|---|---|---|
| Console doGoogle Cloud | Cloud Run | Funções do Cloud Run (1ª geração) |
| SDK Cloud |
|
|
| API REST |
|
|
| Terraform |
|
Implantar funções criadas com a API Cloud Functions v2
Como descrito anteriormente, é possível usar as ferramentas do Cloud Run para implantar e gerenciar funções criadas com a API Cloud Functions v2. Se você precisar implantar sua função usando a API Cloud Functions v2 (por exemplo, para compatibilidade com versões anteriores), faça o seguinte:
Verifique se você tem o papel do IAM de Desenvolvedor do Cloud Functions ou um papel que inclua as mesmas permissões. Consulte também Outras configurações para implantação.
Use o comando
gcloud functions deploypara implantar uma função:gcloud functions deploy YOUR_FUNCTION_NAME \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS...
Substitua:
YOUR_FUNCTION_NAME: o nome da função em que você quer fazer a implantação. O nome da função precisa começar com uma letra seguida por até 62 letras, números, hifens ou sublinhados e terminar com uma letra ou um número. O nome do serviço do Cloud Run que é criado para a função substitui os sublinhados por hífens, e as letras maiúsculas são convertidas em minúsculas. Por exemplo,
Function_1vai receber o nomefunction-1no Cloud Run.YOUR_REGION: a região do Google Cloud em que você quer implantar a função. Por exemplo,
europe-west1.YOUR_RUNTIME: a linguagem usada pela função. Para ver uma lista de ambientes de execução compatíveis, consulte Suporte ao ambiente de execução.
YOUR_SOURCE_LOCATION: o local do código-fonte da função.
YOUR_CODE_ENTRYPOINT: o ponto de entrada da função no código-fonte. Este é o código que será executado quando a função for executada. O valor dessa sinalização precisa ser um nome de função ou de classe totalmente qualificada no código-fonte.
Para uma referência completa sobre o comando functions deploy e as sinalizações dele, consulte a documentação gcloud functions deploy.
Gatilhos e novas tentativas
A tabela a seguir compara gatilhos e novas tentativas para funções:
| Cloud Run functions | Funções do Cloud Run (1ª geração) | |
|---|---|---|
| Acionar e invocar uma função | Para funções criadas com a API Cloud Run Admin, você
especifica gatilhos como parte da implantação da função
no console do Google Cloud ou após a implantação da função ao usar a
CLI gcloud. Para funções criadas com a API Cloud Functions v2, especifique gatilhos como parte da implantação da função. |
Especifique gatilhos como parte da implantação da função. |
| Tipos de evento | Suporte para qualquer tipo de evento compatível com o Eventarc, incluindo mais de 90 origens de eventos pelos Registros de auditoria do Cloud. | Suporte direto para eventos de sete fontes. |
| Novas tentativas | Para funções criadas com a API Cloud Run Admin, atualize a
política de nova tentativa
no Eventarc e configure o
tópico de mensagens inativas
no Pub/Sub. Para funções criadas com a API Cloud Functions v2, especifique as novas tentativas como parte da implantação da função com a flag --retry.
|
Especifique novas tentativas como parte da implantação da função com a
flag --retry. |
Remover a função
As funções criadas com a API Cloud Functions v2
(por exemplo, usando gcloud functions, a API REST ou o Terraform) podem ser
desvinculadas do ambiente de API atual. Depois de remover uma função, só é possível
gerenciá-la usando a
API Cloud Run Admin. Isso pode ser útil se as cargas de trabalho precisarem permanecer dentro do limite da API run.googleapis.com para o Assured Workloads ou para garantir que as cargas de trabalho usem a SKU do Cloud Run.
Consulte Gerenciar funções para saber mais.
A seguir
- Consulte o guia de iniciação para implantar uma função do Cloud Run.