1. Introduzione
Panoramica
Cloud Run Functions è un nuovo modo per eseguire il deployment dei carichi di lavoro utilizzando i familiari paradigmi di eventi e la firma delle funzioni di GCF. Invece di utilizzare le nostre configurazioni guidate per il processo di compilazione e il deployment, le funzioni di Cloud Run ti offrono il controllo diretto sul servizio sottostante creato su Cloud Run.
Con le funzioni di Cloud Run, forniamo l'UX semplice del deployment dell'origine Cloud Run, offrendo agli sviluppatori il controllo completo sui loro carichi di lavoro utilizzando le configurazioni di Cloud Run.
Questo codelab utilizza gli esempi di nodejs negli esempi seguenti. Tuttavia, puoi utilizzare gli esempi di codice di Cloud Functions (2a gen.) nel linguaggio che preferisci:
- esempi di funzioni Python
- Esempi di funzioni Node
- Esempi di funzioni Go
- Esempi di funzioni Java
- Esempi di funzioni PHP
- Esempi di funzioni Ruby
- Esempi di funzioni.NET
Cosa imparerai a fare
- Eseguire il deployment di una funzione Cloud Run che viene attivata da una richiesta HTTP
2. Imposta variabili di ambiente e abilita API
Esegui l'upgrade di gcloud CLI
Innanzitutto, devi aver installato una versione recente di gcloud CLI. Puoi aggiornare l'interfaccia a riga di comando eseguendo questo comando:
gcloud components update
Configura le variabili di ambiente
Puoi impostare le variabili di ambiente che verranno utilizzate in questo codelab.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
Abilita API
Prima di poter iniziare a utilizzare questo codelab, ci sono diverse API che dovrai abilitare. Questo codelab richiede l'utilizzo delle API seguenti. Puoi abilitare queste API eseguendo questo comando:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. crea una funzione HTTP
Per prima cosa, crea una directory per il codice sorgente e accedi a quella directory.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Quindi, crea un file package.json
con i seguenti contenuti:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
A questo punto, crea un file index.js
con i seguenti contenuti:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. esegui il deployment della funzione
Ora puoi eseguire il deployment della funzione Cloud Run eseguendo questo comando:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
Questo comando utilizza buildpacks per trasformare il codice sorgente della funzione in un'immagine container pronta per la produzione.
Tieni presente quanto segue:
- il flag –source viene utilizzato per indicare a Cloud Run di creare la funzione in un servizio basato su container eseguibile
- il flag –function (new) viene utilizzato per impostare il punto di ingresso del nuovo servizio come firma della funzione che vuoi richiamare
- (facoltativo) il metodo –no-allow-unauthenticated per impedire che la tua funzione possa essere richiamata pubblicamente
5. testa la funzione
Al termine del deployment, vedrai l'URL del servizio. Per richiamare la funzione, devi inviare una richiesta autenticata con il tuo token di identità o con il token di identità di un principio con il ruolo Invoker di Cloud Run, come mostrato di seguito:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. Complimenti!
Complimenti per aver completato il codelab.
Consigliamo di consultare la documentazione sulle funzioni di Cloud Run
Argomenti trattati
- Eseguire il deployment di una funzione Cloud Run che viene attivata da una richiesta HTTP
7. Esegui la pulizia
Per evitare addebiti involontari, ad esempio se i servizi Cloud Run vengono inavvertitamente richiamati più volte rispetto all'allocazione mensile dei callout Cloud Run nel livello senza costi, puoi eliminare Cloud Run o eliminare il progetto che hai creato nel passaggio 2.
Per eliminare la funzione Cloud Run, vai alla console Cloud di Cloud Run all'indirizzo https://console.cloud.google.com/run ed elimina il servizio crf-http-codelab
.
Se scegli di eliminare l'intero progetto, puoi andare all'indirizzo https://console.cloud.google.com/cloud-resource-manager, selezionare il progetto che hai creato nel passaggio 2 e scegliere Elimina. Se elimini il progetto, dovrai modificarli in Cloud SDK. Puoi visualizzare l'elenco di tutti i progetti disponibili eseguendo gcloud projects list
.