Guida rapida: esegui il deployment di una funzione Cloud Run utilizzando gcloud CLI
Questa pagina mostra come eseguire il deployment di una funzione Cloud Run HTTP utilizzando gcloud CLI.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com - Per impostare il progetto predefinito per il tuo servizio Cloud Run:
Sostituisci PROJECT_ID con il nome del progetto che hai creato per questa guida rapida.gcloud config set project PROJECT_ID
Se il tuo progetto è soggetto a un criterio dell'organizzazione con restrizioni di dominio che limitano le chiamate non autenticate, devi accedere al servizio di cui è stato eseguito il deployment come descritto in Test dei servizi privati.
- Consulta i prezzi di Cloud Run o stima i costi con il Calcolatore prezzi.
-
Cloud Run Source Developer (
roles/run.sourceDeveloper) sul progetto -
Utente Service Account (
roles/iam.serviceAccountUser) sull'identità del servizio -
Visualizzatore log (
roles/logging.viewer) sul progetto Crea una nuova directory denominata
helloworlde cambia directory:mkdir helloworld cd helloworldCrea un file
package.jsonnella directoryhelloworldper specificare le dipendenze di Node.js:Crea un file
index.jsnella directoryhelloworldcon il seguente esempio Node.js:Crea una nuova directory denominata
helloworlde cambia directory:mkdir helloworld cd helloworldCrea un file
requirements.txtnella directoryhelloworldper specificare le dipendenze Python:In questo modo vengono aggiunti i pacchetti necessari per l'esempio.
Crea un file
main.pynella directoryhelloworldcon il seguente esempio di Python:Crea una nuova directory denominata
helloworlde cambia directory:mkdir helloworld cd helloworldCrea un file
go.modper dichiarare il modulo Go:Crea un file
hello_http.gonella directoryhelloworldcon il seguente esempio di codice Go:Crea una nuova directory denominata
helloworlde cambia directory:mkdir helloworld cd helloworldCrea la seguente struttura del progetto per contenere la directory di origine e il file di origine:
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.javaAggiorna il file
HelloWorld.javacon il seguente esempio di codice Java:Crea un file
pom.xmlnella directoryhelloworlde aggiungi le seguenti dipendenze Java:Crea una nuova directory denominata
helloworlde cambia directory:mkdir helloworld cd helloworldCrea un file denominato
app.rbe incolla il seguente codice:Crea un file denominato
Gemfilee copia al suo interno quanto riportato di seguito:Se non hai installato Bundler 2.0 o versioni successive, installa Bundler.
Genera un file
Gemfile.lockeseguendo:bundle installCrea una nuova directory denominata
helloworlde cambia directory:mkdir helloworld cd helloworldCrea un file denominato
index.phpe incolla il seguente codice:Se non utilizzi Cloud Shell, crea un file
composer.jsone incolla il seguente codice:Installa l'SDK.NET.
Dalla console, crea un nuovo progetto web vuoto utilizzando il comando dotnet.
dotnet new web -o helloworld-csharpPassa alla directory
helloworld-csharp:Sostituisci il codice campione nel file di progetto
helloworld-csharp.csprojcon il seguente:Sostituisci il codice campione nel file
Program.cscon il seguente:Esegui il deployment della funzione eseguendo questo comando nella directory che contiene il codice campione:
Node.js
gcloud run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs24 \ --region REGION \ --allow-unauthenticatedSostituisci REGION con la regione del servizio in cui vuoi eseguire il deployment della funzione. Google CloudAd esempio:
europe-west1.Python
gcloud run deploy python-http-function \ --source . \ --function hello_get \ --base-image python313 \ --region REGION \ --allow-unauthenticatedSostituisci REGION con la regione Google Clouddel servizio in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.Vai
gcloud run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go125 \ --region REGION \ --allow-unauthenticatedSostituisci REGION con la regione Google Clouddel servizio in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.Java
Esegui questo comando nella directory che contiene il file
pom.xml:gcloud run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java21 \ --region REGION \ --allow-unauthenticatedSostituisci REGION con la regione Google Clouddel servizio in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.Ruby
gcloud run deploy ruby-http-function \ --source . \ --function hello_get \ --base-image ruby34 \ --region REGION \ --allow-unauthenticatedSostituisci REGION con la regione Google Clouddel servizio in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.PHP
gcloud run deploy php-http-function \ --source . \ --function helloGet \ --base-image php84 \ --region REGION \ --allow-unauthenticatedSostituisci REGION con la regione Google Clouddel servizio in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1..NET
gcloud run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet8 \ --region REGION \ --allow-unauthenticatedSostituisci REGION con la regione Google Clouddel servizio in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.Al termine del deployment, Google Cloud CLI mostra un URL in cui il servizio è in esecuzione. Apri l'URL nel browser per visualizzare l'output della tua funzione.
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Individua il servizio che vuoi eliminare nell'elenco dei servizi e fai clic sulla relativa casella di controllo per selezionarlo.
Fai clic su Elimina. Vengono eliminate tutte le revisioni del servizio.
- SERVICE: il nome del tuo servizio.
- REGION: Google Cloud regione del servizio.
Per eseguire il deployment di una funzione di esempio in Cloud Run utilizzando la console Google Cloud , consulta la guida rapida: esegui il deployment di una funzione in Cloud Run utilizzando la console Google Cloud .
Per eseguire il deployment di funzioni e creare trigger utilizzando la console Google Cloud e Google Cloud CLI, consulta Esegui il deployment di funzioni.
Per visualizzare ed eliminare le funzioni esistenti, consulta Gestisci le revisioni del servizio.
Per creare container di funzioni nella tua toolchain ed eseguirne il deployment su Cloud Run, consulta Creare funzioni.
Per creare trigger con Eventarc, consulta Crea trigger con Eventarc.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare questa guida rapida, chiedi all'amministratore di concederti i seguenti ruoli IAM:
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Concedi al account di servizio Cloud Build l'accesso al tuo progetto
Cloud Build utilizza automaticamente l'account di servizio predefinito di Compute Engine come account di servizio Cloud Build predefinito per creare il codice sorgente e la risorsa Cloud Run, a meno che tu non esegua l'override di questo comportamento.
Affinché Cloud Build possa creare le tue origini, concedi all'account di servizio Cloud Build il ruolo Cloud Run Builder (roles/run.builder) nel tuo progetto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloude SERVICE_ACCOUNT_EMAIL_ADDRESS con l'indirizzo email del account di servizio Cloud Build. Se utilizzi il
account di servizio predefinito di Compute Engine come account di servizio Cloud Build, utilizza il seguente formato per l'indirizzo email del account di servizio:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sostituisci PROJECT_NUMBER con il numero del tuo progetto Google Cloud.
Per istruzioni dettagliate su come trovare l'ID progetto e il numero di progetto, vedi Creazione e gestione dei progetti.
La concessione del ruolo di builder Cloud Run richiede un paio di minuti per la propagazione.
Scrivi la funzione di esempio
Per scrivere una richiesta:
Node.js
Python
Vai
Java
Ruby
PHP
.NET
esegui il deployment della funzione
Per eseguire il deployment della funzione Cloud Run:
Esegui la pulizia
Per evitare costi aggiuntivi al tuo account Google Cloud , elimina tutte le risorse che hai eseguito il deployment con questa guida rapida.
Eliminare il repository
Cloud Run non ti addebita costi quando il servizio di cui hai eseguito il deployment non è in uso. Tuttavia, potresti comunque pagare l'archiviazione dell'immagine container in Artifact Registry. Per eliminare i repository Artifact Registry, segui i passaggi descritti in Eliminare i repository nella documentazione di Artifact Registry.
Eliminare il servizio
I servizi Cloud Run non comportano costi finché non ricevono richieste. Per eliminare il servizio Cloud Run, segui uno di questi passaggi:
Console
Per eliminare un servizio:
gcloud
Per eliminare un servizio, esegui questo comando:
gcloud run services delete SERVICE --region REGION
Sostituisci quanto segue:
Eliminare il progetto di test
L'eliminazione del progetto Google Cloud interrompe la fatturazione per tutte le risorse al suo interno. Per rilasciare tutte le Google Cloud risorse nel tuo progetto:
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID