1. Introduzione
Panoramica
Cloud Run Functions è un nuovo modo per eseguire il deployment dei carichi di lavoro utilizzando i paradigmi di gestione degli eventi e la firma della funzione GCF. Anziché utilizzare il nostro processo di build e le nostre configurazioni di deployment, Cloud Run Functions ti offre il controllo diretto sul servizio di base creato su Cloud Run.
Con Cloud Run Functions, forniamo la semplice esperienza utente 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 Node.js riportati di seguito. Tuttavia, puoi utilizzare gli esempi di codice di Cloud Functions (2ª gen.) nella lingua che preferisci:
- Esempi di funzioni Python
- Esempi di funzioni Node.js
- Esempi di funzioni Go
- Esempi di funzioni Java
- Esempi di funzioni PHP
- Esempi di funzioni Ruby
- Esempi di funzioni.NET
Cosa imparerai a fare
- Come eseguire il deployment di una funzione Cloud Run attivata da una richiesta HTTP
2. Imposta le variabili di ambiente e abilita le API
Esegui l'upgrade di gcloud CLI
Innanzitutto, devi avere installato una versione recente di gcloud CLI. Puoi aggiornare la CLI eseguendo il seguente 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, devi abilitare diverse API. Questo codelab richiede l'utilizzo delle seguenti API. Puoi abilitare queste API eseguendo il seguente comando:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
storage.googleapis.com \
artifactregistry.googleapis.com
3. Crea una funzione HTTP
Innanzitutto, crea una directory per il codice sorgente e accedi tramite cd.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Quindi, crea un file package.json con il seguente contenuto:
{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
Successivamente, crea un file index.js con il seguente contenuto:
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 il seguente comando:
gcloud beta run deploy $SERVICE_NAME \
--source . \
--function helloHttp \
--region us-central1 \
--no-allow-unauthenticated
Questo comando utilizza i buildpack 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 (nuovo) viene utilizzato per impostare il punto di ingresso del nuovo servizio in modo che sia la firma della funzione che vuoi richiamare
- (facoltativo) –no-allow-unauthenticated per impedire che la funzione possa essere chiamata 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 ID o il token ID di un'entità che dispone del 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!
Congratulazioni per aver completato il codelab.
Ti consigliamo di consultare la documentazione su Cloud Run Functions.
Argomenti trattati
- Come eseguire il deployment di una funzione Cloud Run attivata da una richiesta HTTP
7. Esegui la pulizia
Per evitare addebiti involontari (ad esempio, se i servizi Cloud Run vengono richiamati inavvertitamente più volte rispetto all'allocazione mensile di chiamate di Cloud Run nel livello senza costi), puoi eliminare Cloud Run o il progetto che hai creato nel passaggio 2.
Per eliminare la funzione Cloud Run, vai alla console 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 alla pagina 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 cambiare progetto in Cloud SDK. Puoi visualizzare l'elenco di tutti i progetti disponibili eseguendo gcloud projects list.