Confrontare le funzioni Cloud Run

Questa guida mette a confronto le scelte Google Cloud più recenti e originali per il deployment delle funzioni. Questa pagina è rivolta a 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 differenze chiave in diverse aree, come concetti, configurazione, implementazione, attivatori e tentativi di nuovo invio.

Confronto

Esistono due versioni di Cloud Run Functions:

  • Cloud Run Functions, precedentemente nota come Cloud Functions (2ª gen.), è la versione più recente delle funzioni che puoi eseguire il deployment come servizio su Cloud Run. La funzione può reagire alle richieste HTTP(S) o rispondere agli eventi propagati dagli attivatori basati su Eventarc, come Pub/Sub.

  • Cloud Run Functions (1ª gen.), in precedenza nota come Cloud Functions (1ª gen.), è la versione originale delle funzioni con attivatori di eventi e configurabilità limitati.

Ti consigliamo di utilizzare la versione corrente di Cloud Run Functions perché offre maggiore flessibilità e controllo sul runtime delle funzioni. Se esegui il deployment delle funzioni direttamente su Cloud Run, queste verranno costruite automaticamente come container e implementate come servizio Cloud Run.

Concetti

La seguente tabella riassume le differenze concettuali per le funzioni.

Funzioni Cloud Run Funzioni Cloud Run (1ª gen.)
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 Viene eseguito il deployment di una funzione 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
Registry 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ª gen.)

Configurazione

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

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

Funzioni Cloud Run Funzioni Cloud Run (1ª gen.)
Timeout richiesta
  • Fino a 60 minuti per le funzioni attivate da HTTP
  • Fino a 9 minuti per le funzioni CloudEvents create con l'API Cloud Functions (v2)
  • Fino a 9 minuti
Dimensione istanza Fino a 16 GB di RAM con 4 vCPU Fino a 8 GB di RAM con 2 vCPU
Contemporaneità Fino a 1000 richieste in parallelo 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 delle funzioni, come l'ID runtime e le configurazioni di build, vengono memorizzati 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 nella creazione, nell'implementazione, nella modifica e nella gestione delle funzioni:

Funzioni Cloud Run Funzioni Cloud Run (1ª gen.)
Console Google Cloud Cloud Run Funzioni Cloud Run (1ª gen.)
Cloud SDK
API REST
  • run.googleapis.com (versioni 1 e 2) per le funzioni create con l'API Cloud Run Admin o l'API Cloud Functions.
Terraform

Trigger e ripetizioni

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

Funzioni Cloud Run Funzioni Cloud Run (1ª gen.)
Attivare e richiamare una funzione Per la funzione creata con l'API Cloud Run Admin, specifica gli attivatori 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), specifichi gli attivatori come parte del deployment delle funzioni.
Specifichi gli attivatori durante il deployment delle funzioni.
Tipi di evento Supporto di qualsiasi tipo di evento supportato da Eventarc, incluse oltre 90 origini evento tramite gli audit log di Cloud. Supporto diretto per gli eventi provenienti da 7 origini.
Nuovi tentativi Per le funzioni create con l'API Cloud Run Admin, aggiorna la norma di ripetizione in Eventarc e configura l'argomento per le email in arrivo non recapitate in Pub/Sub.

Per le funzioni create con la versione 2 dell'API Cloud Functions, specifica i tentativi di nuovo invio come parte del deployment della funzione con il flag --retry.
Specifica i tentativi di nuovo invio come parte del deployment della funzione con il --retry flag.

Passaggi successivi