Confrontare le funzioni Cloud Run

Questa guida confronta le scelte più recenti e originali Google Cloud per il deployment delle funzioni. Questa pagina è utile per chi ha creato in precedenza funzioni con l'API Cloud Functions e sta eseguendo la transizione all'API Cloud Run Admin. Questa pagina descrive le principali differenze in diverse aree, come concetti, configurazione, deployment, trigger e tentativi.

Confronto

Esistono due versioni di Cloud Run Functions:

  • Cloud Run Functions è l'ultima versione delle funzioni, di cui è stato eseguito il deployment come servizio su Cloud Run. Possono essere creati in uno dei seguenti modi:

    • API Cloud Run Admin (consigliata): le funzioni create con questa API (ad esempio utilizzando la consoleGoogle Cloud , gcloud run, l'API REST o Terraform) possono essere gestite esclusivamente utilizzando l'API Cloud Run Admin.
    • API Cloud Functions v2: le funzioni create con questa API (ad esempio utilizzando gcloud functions, l'API REST o Terraform) possono essere gestite con l'API Cloud Run Admin e con l'API Cloud Functions v2. Quando utilizzi questa API, specifichi il trigger durante il deployment della funzione. Scopri come scollegare una funzione API v2 in modo che possa essere gestita esclusivamente utilizzando l'API Cloud Run Admin.
  • Cloud Run Functions (1ª generazione.), precedentemente note come Cloud Functions (1ª generazione.), è la versione originale delle funzioni con trigger di eventi, runtime e configurabilità limitati. Scopri come eseguire l'upgrade delle funzioni di 1ª generazione a Cloud Run.

Se esegui il deployment delle funzioni direttamente su Cloud Run, queste vengono create automaticamente come container ed eseguite il deployment come servizio Cloud Run.

Concetti

La seguente tabella riassume le differenze concettuali per le funzioni.

Cloud Run Functions Funzioni Cloud Run (1ª generazione.)
Nome precedente del prodotto Cloud Functions (2ª gen) Cloud Functions (1ª gen.)
Modello di risorsa Una funzione è un servizio Cloud Run di cui viene eseguito il deployment dal codice sorgente Una funzione viene sottoposta a deployment dal codice sorgente
Terminologia dei tipi di funzioni
  • Funzioni HTTP
  • Le funzioni CloudEvents, chiamate anche funzioni basate su eventi, sono supportate in tutti i runtime dei linguaggi.
  • Funzioni HTTP
  • Solo i runtime Ruby, .NET e PHP supportano CloudEvents. Per Node.js, Go, Python e Java, crea funzioni basate su eventi utilizzando le funzioni in background.
URL HTTPS assegnato run.app

Le funzioni create con l'API Cloud Functions v2 hanno anche un endpoint cloudfunctions.net.
cloudfunctions.net
Registro delle immagini Solo Artifact Registry Artifact Registry o Container Registry (deprecato)
Ruoli IAM per il deployment
Infrastruttura interna Cloud Run Interno Google
Modello di determinazione del prezzo Prezzi di Cloud Run Prezzi di Cloud Run Functions (1ª generazione.)

Configurazione

Cloud Run crea funzioni nei container e ne esegue il deployment come servizi. Quando esegui il deployment di una funzione su Cloud Run, hai accesso e controllo completi sul comportamento della funzione. Ad esempio, puoi attivare Direct VPC, configurare le GPU, utilizzare i montaggi dei volumi e altro ancora.

La seguente tabella riepiloga le differenze di configurazione per le funzioni:

Cloud Run Functions Funzioni Cloud Run (1ª generazione.)
Timeout richiesta
  • Fino a 60 minuti per le funzioni attivate da HTTP
  • Fino a 9 minuti per le funzioni basate su eventi create con l'API Cloud Functions v2
  • Fino a 9 minuti
Dimensione istanza Fino a 16 GiB di RAM con 4 vCPU Fino a 8 GB di RAM con 2 vCPU
Contemporaneità Fino a 1000 richieste simultanee per istanza di funzione 1 richiesta in parallelo per istanza di funzione
Suddivisione del traffico Supportato Non supportata

Deployment

Da agosto 2024 puoi utilizzare Cloud Run per eseguire il deployment e gestire le funzioni create con l'API Cloud Functions v2. A seguito di questa modifica:

  • I metadati della funzione, come l'ID runtime e le configurazioni di build, vengono archiviati nella definizione del servizio Cloud Run.
  • Puoi modificare in sicurezza la funzione utilizzando l'API Cloud Run Admin.
  • Puoi fare affidamento sulla definizione del servizio Cloud Run come fonte di verità per la tua funzione.

Tuttavia, tieni presente che le funzioni create con l'API Cloud Run Admin non possono essere modificate con l'API Cloud Functions.

La tabella seguente riassume le differenze nel modo in cui crei, implementi, modifichi e gestisci le funzioni:

Cloud Run Functions Funzioni Cloud Run (1ª generazione.)
ConsoleGoogle Cloud Cloud Run Funzioni Cloud Run (1ª generazione.)
Cloud SDK
API REST
  • run.googleapis.com (v1 e v2) per le funzioni create con l'API Cloud Run Admin o l'API Cloud Functions.
Terraform

Trigger e tentativi

La seguente tabella mette a confronto i trigger e i nuovi tentativi per le funzioni:

Cloud Run Functions Funzioni Cloud Run (1ª generazione.)
Attivare e richiamare una funzione Per la funzione creata con l'API Cloud Run Admin, specifica i trigger durante il deployment della funzione nella console Google Cloud o dopo il deployment della funzione quando utilizzi gcloud CLI.

Per le funzioni create con l'API Cloud Functions v2, specifica i trigger durante il deployment della funzione.
Specifichi i trigger nell'ambito del deployment della funzione.
Tipi di evento Supporto per qualsiasi tipo di evento supportato da Eventarc, incluse oltre 90 origini eventi tramite Cloud Audit Logs. Supporto diretto per gli eventi di 7 origini.
Nuovi tentativi Per le funzioni create con l'API Cloud Run Admin, aggiorna il criterio di ripetizione dei tentativi in Eventarc e configura l'argomento dead letter in Pub/Sub.

Per le funzioni create con l'API Cloud Functions v2, specifica i tentativi come parte del deployment della funzione con il flag --retry.
Specifichi i tentativi come parte del deployment della funzione con il flag --retry.

Scollega la funzione

Le funzioni create utilizzando l'API Cloud Functions v2 (ad esempio utilizzando gcloud functions, l'API REST o Terraform) possono essere separate dal relativo ambiente API esistente. Dopo aver scollegato una funzione, puoi gestirla solo utilizzando l'API Cloud Run Admin. Potresti volerlo fare se i tuoi workload devono rimanere all'interno del limite dell'API run.googleapis.com per Assured Workloads o per assicurarti che i tuoi workload utilizzino lo SKU Cloud Run. Per saperne di più, consulta Gestire le funzioni.

Passaggi successivi