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:

  • As funções do Cloud Run são 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, especifique 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.
  • Cloud Run functions (1ª geração), antes 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 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 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 Funções do Cloud Run (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 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
  • run.googleapis.com (v1 e v2) para funções criadas com a API Cloud Run Admin ou a API Cloud Functions.
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:

  1. 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.

  2. Use o comando gcloud functions deploy para 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 que você quer implantar em. 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_1 vai receber o nome function-1 no Cloud Run.

    • YOUR_REGION: a Google Cloud região em que você quer implantar a função. Por exemplo, europe-west1.

    • YOUR_RUNTIME: a linguagem usada pela função. Para uma lista de ambientes de execução compatíveis, consulte Suporte a ambientes de execução.

    • YOUR_SOURCE_LOCATION: a localização 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 flags 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 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 novas tentativas 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