Comparar funções do Cloud Run

Este guia compara as opções mais recentes e originais de Google Cloud para implantação de funções. Esta página ajuda quem criou funções com a API Cloud Functions e está fazendo 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, implantação, acionadores e novas tentativas.

Comparação

Há duas versões do Cloud Run functions:

  • O Cloud Run functions é a versão mais recente das 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 consoleGoogle Cloud , gcloud run, a API REST ou o Terraform) podem ser gerenciadas exclusivamente usando 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.
  • 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 da 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 para funções.

Cloud Run functions Cloud Run functions (1ª geração)
Nome anterior do produto Cloud Functions (2ª geração) Cloud Functions (1a geração)
Modelo de recurso Uma função é um serviço do Cloud Run implantado do código-fonte. Uma função é implantada do código-fonte
Terminologia dos tipos de funções
  • Funções HTTP
  • As funções do CloudEvents, também chamadas de funções orientadas a eventos, são compatíveis com todos os ambientes de execução de linguagem.
  • Funções HTTP
  • Somente os ambientes de execução Ruby, .NET e PHP são compatíveis com o CloudEvents. Para Node.js, Go, Python e Java, crie funções orientadas a eventos usando funções em segundo plano.
URL HTTPS atribuído run.app

As 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 Uso 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 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 para funções:

Cloud Run functions Cloud Run functions (1ª geração)
Tempo limite da solicitação
  • Até 60 minutos para funções acionadas por HTTP
  • Até 9 minutos para funções acionadas por eventos criadas com a API Cloud Functions v2
  • Até 9 minutos
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 ID do ambiente de execução e configurações de build, são armazenados na definição do serviço do Cloud Run.
  • É possível editar sua função com segurança usando a API Cloud Run Admin.
  • Você pode 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 forma de criar, implantar, editar e gerenciar funções:

Cloud Run functions Cloud Run functions (1ª geração)
Console doGoogle Cloud Cloud Run Cloud Run functions (1ª geração)
SDK Cloud
API REST
  • run.googleapis.com (v1 e v2) para funções criadas com a API Cloud Run Admin ou a API Cloud Functions.
Terraform

Gatilhos e novas tentativas

A tabela a seguir compara gatilhos e novas tentativas para funções:

Cloud Run functions Cloud Run functions (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 Google Cloud ou depois de implantar a 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 um tópico de mensagens inativas no Pub/Sub.

Para funções criadas com a API Cloud Functions v2, especifique as repetições como parte da implantação da função com a flag --retry.
Você especifica novas tentativas como parte da implantação da função com a flag --retry.

Desvincular a função

As funções criadas usando a API Cloud Functions v2 (por exemplo, usando gcloud functions, a API REST ou o Terraform) podem ser separadas do ambiente de API atual. Depois de separar 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 Assured Workloads ou para garantir que elas usem a SKU do Cloud Run. Consulte Gerenciar funções para saber mais.

A seguir