Comprendere il confronto tra le opzioni di deployment delle funzioni di Google Cloudti aiuta a eseguire la transizione dei workload dall'API Cloud Functions all'API Cloud Run Admin. Questo documento descrive in dettaglio le principali differenze tra concetti, configurazione, deployment, trigger e nuovi tentativi.
Confronto
Esistono due versioni di Cloud Run Functions:
Cloud Run Functions è l'ultima versione di Functions, di cui viene 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 sia con l'API Cloud Run Admin che 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.
- API Cloud Run Admin (consigliata): le funzioni create con questa API (ad esempio utilizzando la consoleGoogle Cloud ,
Cloud Run Functions (1ª generazione.), precedentemente noto 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.
Eseguendo il deployment delle funzioni direttamente in Cloud Run, le funzioni vengono create automaticamente come container e viene eseguito il deployment come servizio Cloud Run.
Concetti
La seguente tabella riassume le differenze concettuali per le funzioni.
| Cloud Run Functions | Cloud Run Functions (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 | Viene eseguito il deployment di una funzione dal codice sorgente |
| Terminologia dei tipi di funzioni |
|
|
| URL HTTPS assegnato | run.appLe 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 ed esegue il deployment 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 montaggi dei volumi e altro ancora.
La tabella seguente riassume le differenze di configurazione per le funzioni:
| Cloud Run Functions | Cloud Run Functions (1ª generazione.) | |
|---|---|---|
| Timeout richiesta |
|
|
| Dimensione istanza | Fino a 16 GiB di RAM con 4 vCPU | Fino a 8 GB di RAM con 2 vCPU |
| Concorrenza | 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. In seguito a questa modifica:
- I metadati della funzione, come l'ID runtime e le configurazioni di compilazione, vengono archiviati nella definizione del servizio Cloud Run.
- Puoi modificare la funzione in sicurezza 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, esegui il deployment, modifichi e gestisci le funzioni:
| Cloud Run Functions | Cloud Run Functions (1ª generazione.) | |
|---|---|---|
| ConsoleGoogle Cloud | Cloud Run | Cloud Run Functions (1ª generazione.) |
| Cloud SDK |
|
|
| API REST |
|
|
| Terraform |
|
Esegui il deployment delle funzioni create con l'API Cloud Functions v2
Come descritto in precedenza, puoi utilizzare gli strumenti di Cloud Run per eseguire il deployment e gestire le funzioni create con l'API Cloud Functions v2. Se devi eseguire il deployment della funzione utilizzando l'API Cloud Functions v2 (ad esempio per la compatibilità con le versioni precedenti), puoi farlo nel seguente modo:
Assicurati di disporre del ruolo IAM Cloud Functions Developer o di un ruolo che includa le stesse autorizzazioni. Consulta anche Configurazione aggiuntiva per il deployment.
Utilizza il comando
gcloud functions deployper eseguire il deployment di una funzione:gcloud functions deploy YOUR_FUNCTION_NAME \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS...
Sostituisci quanto segue:
YOUR_FUNCTION_NAME: il nome della funzione di cui vuoi eseguire il deployment. Il nome della funzione deve iniziare con una lettera seguita da un massimo di 62 lettere, numeri, trattini o trattini bassi e deve terminare con una lettera o un numero. Nel nome del servizio Cloud Run creato per la tua funzione, i trattini bassi vengono sostituiti con trattini e le lettere maiuscole vengono convertite in minuscole. Ad esempio, il nome assegnato a
Function_1in Cloud Run saràfunction-1.YOUR_REGION: la regione Google Cloud in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.YOUR_RUNTIME: il linguaggio utilizzato dalla funzione. Per un elenco dei runtime supportati, consulta Supporto del runtime.
YOUR_SOURCE_LOCATION: la posizione del codice sorgente della funzione.
YOUR_CODE_ENTRYPOINT: l'entry point della funzione nel codice sorgente. Questo è il codice che verrà eseguito quando viene eseguita la funzione. Il valore di questo flag deve essere un nome di funzione o un nome di classe completo esistente nel codice sorgente.
Per un riferimento completo per il comando functions deploy e i relativi flag, consulta la documentazione gcloud functions deploy.
Trigger e nuovi tentativi
La tabella seguente mette a confronto i trigger e i nuovi tentativi per le funzioni:
| Cloud Run Functions | Cloud Run Functions (1ª generazione.) | |
|---|---|---|
| Attiva e richiama una funzione | Per la funzione creata con l'API Cloud Run Admin, specifica i trigger nell'ambito del 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, i trigger vengono specificati come parte del deployment della funzione. |
I trigger vengono specificati come parte del deployment della funzione. |
| Tipi di evento | Supporto per qualsiasi tipo di evento supportato da Eventarc, tra cui oltre 90 origini eventi tramite Cloud Audit Logs. | Supporto diretto per gli eventi da 7 origini. |
| Nuovi tentativi | Per le funzioni create con l'API Cloud Run Admin, aggiorna la
policy di ripetizione
in Eventarc e configura l'argomento messaggi non recapitabili
in Pub/Sub. Per le funzioni create con l'API Cloud Functions v2, i nuovi tentativi vengono specificati come parte del deployment della funzione con il flag --retry.
|
I nuovi tentativi vengono specificati 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 scollegate dall'ambiente API esistente. Dopo aver scollegato una funzione, puoi gestirla solo utilizzando l'API Cloud Run Admin. Questo può essere utile se i tuoi workload devono rimanere all'interno del confine 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 Gestisci le funzioni.
Passaggi successivi
- Prova la guida introduttiva per eseguire il deployment di una funzione Cloud Run.