Este guia compara as opções mais recentes e originais Google Cloud para implementar funções. Esta página ajuda as pessoas que criaram anteriormente funções com a API Cloud Functions e estão a fazer a transição para a API Cloud Run Admin. Esta página descreve as principais diferenças em várias áreas, como conceitos, configuração, implementação e acionadores e novas tentativas.
Comparação
Existem duas versões das funções do Cloud Run:
As funções do Cloud Run são a versão mais recente das funções, implementadas como um serviço no Cloud Run. Podem ser criados de uma das seguintes formas:
- Cloud Run Admin API
(Recomendado): as funções criadas com esta API (por exemplo, através da
Google Cloud consola,
gcloud run, da API REST ou do Terraform) podem ser geridas exclusivamente através da Cloud Run Admin API. - API Cloud Functions v2: as funções criadas com esta API (por exemplo, através de
gcloud functions, da API REST ou do Terraform) podem ser geridas com a API Cloud Run Admin, bem como com a API Cloud Functions v2. Quando usa esta API, especifica o acionador quando implementa a sua função. Saiba como desassociar uma função da API v2 para que possa ser gerida exclusivamente através da API Cloud Run Admin.
- Cloud Run Admin API
(Recomendado): as funções criadas com esta API (por exemplo, através da
Google Cloud consola,
As funções do Cloud Run (1.ª geração), anteriormente conhecidas como Cloud Functions (1.ª geração), são a versão original das funções com acionadores de eventos, tempos de execução e capacidade de configuração limitados. Saiba como atualizar as funções de 1.ª geração para o Cloud Run.
Ao implementar funções diretamente no Cloud Run, as suas funções são criadas automaticamente como contentores e implementadas como um serviço do Cloud Run.
Conceitos
A tabela seguinte resume as diferenças conceptuais das funções.
| Funções do Cloud Run | Funções do Cloud Run (1.ª geração) | |
|---|---|---|
| Nome anterior do produto | Cloud Functions (2.ª geração) | Cloud Functions (1.ª geração) |
| Modelo de recurso | Uma função é um serviço do Cloud Run implementado a partir de código-fonte | Uma função é implementada a partir 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 ponto final cloudfunctions.net. |
cloudfunctions.net |
| Registo de imagens | Apenas Artifact Registry | Artifact Registry ou Container Registry (descontinuado) |
| Funções de IAM para implementação |
|
|
| Infraestrutura interna | Cloud Run | Interno do Google |
| Modelo de preços | Preços do Cloud Run | Preços das funções do Cloud Run (1.ª geração) |
Configuração
O Cloud Run cria funções em contentores e implementa-as como serviços. Quando implementa uma função no Cloud Run, tem acesso e controlo completos sobre o comportamento da função. Por exemplo, pode ativar o VPC direto, configurar GPUs, usar montagens de volumes e muito mais.
A tabela seguinte resume as diferenças de configuração para funções:
| Funções do Cloud Run | Funções do Cloud Run (1.ª geração) | |
|---|---|---|
| Tempo limite de pedido |
|
|
| Tamanho da instância | Até 16 GiB de RAM com 4 vCPU | Até 8 GB de RAM com 2 vCPU |
| Simultaneidade | Até 1000 pedidos simultâneos por instância de função | 1 pedido simultâneo por instância de função |
| Divisão de tráfego | Suportado | Não suportado |
Implementação
Desde agosto de 2024, pode usar o Cloud Run para implementar e gerir funções criadas com a API Cloud Functions v2. Como resultado desta alteração:
- Os metadados das funções, como o ID do tempo de execução e as configurações de compilação, são armazenados na definição do serviço do Cloud Run.
- Pode editar a sua função em segurança através da API Cloud Run Admin.
- Pode confiar na definição do serviço do Cloud Run como a fonte de verdade para a sua função.
No entanto, tenha em atenção que as funções criadas com a API Admin do Cloud Run não podem ser modificadas com a API Cloud Functions.
A tabela seguinte resume as diferenças na forma como cria, implementa, edita e gere funções:
| Funções do Cloud Run | Funções do Cloud Run (1.ª geração) | |
|---|---|---|
| Google Cloud consola | Cloud Run | Funções do Cloud Run (1.ª geração) |
| SDK Cloud |
|
|
| API REST |
|
|
| Terraform |
|
Acionadores e novas tentativas
A tabela seguinte compara os acionadores e as novas tentativas para funções:
| Funções do Cloud Run | Funções do Cloud Run (1.ª geração) | |
|---|---|---|
| Acione e invoque uma função | Para funções criadas com a API Cloud Run Admin, pode
especificar acionadores como parte da implementação da função
na Google Cloud consola ou após a implementação da função quando usar a
CLI gcloud. Para funções criadas com a API Cloud Functions v2, especifica acionadores como parte da implementação da função. |
Especifica acionadores como parte da implementação de funções. |
| Tipos de eventos | Suporte para qualquer tipo de evento suportado pelo Eventarc, incluindo mais de 90 origens de eventos através dos registos de auditoria do Google Cloud. | Apoio técnico direto para eventos de 7 origens. |
| Novas tentativas | Para funções criadas com a API Cloud Run Admin, atualize a
política de repetição
no Eventarc e configure o
tópico de mensagens não entregues
no Pub/Sub. Para funções criadas com a API Cloud Functions v2, especifica as novas tentativas como parte da implementação da função com a flag --retry.
|
Especifica as novas tentativas como parte da implementação da função com a flag --retry. |
Desassocie a sua função
As funções criadas com a API Cloud Functions v2
(por exemplo, através de gcloud functions, da API REST ou do Terraform) podem ser
separadas do respetivo ambiente de API existente. Depois de desanexar uma função, só a pode gerir através da API Cloud Run Admin. Pode querer fazê-lo se as suas cargas de trabalho tiverem de permanecer dentro do limite da API para as Assured Workloads ou para garantir que as suas cargas de trabalho usam a SKU do Cloud Run.run.googleapis.com
Consulte o artigo Faça a gestão das funções para saber mais.
O que se segue?
- Experimente o guia de introdução para implementar uma função do Cloud Run.