Guida rapida: esegui il deployment di un servizio C++ in Cloud Run
Scopri come creare una semplice applicazione Hello World e pacchettizzarla in un'immagine container, caricare l'immagine container in Artifact Registry e poi eseguire il deployment dell'immagine container in Cloud Run.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Per impostare il progetto predefinito per il servizio Cloud Run:
Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.gcloud config set project PROJECT_ID
Se il tuo progetto è soggetto a un criterio dell'organizzazione che limita le invocazioni non autenticate, dovrai accedere al servizio di cui è stato eseguito il deployment come descritto in Testare i servizi privati.
Abilita l'API Cloud Run Admin e l'API Cloud Build:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Dopo aver attivato l'API Cloud Run Admin, l'account di servizio predefinito di Compute Engine viene creato automaticamente.
- Affinché Cloud Build possa compilare le sorgenti, concedi il ruolo Account di servizio Cloud Build all'account di servizio predefinito di Compute Engine eseguendo quanto segue:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Sostituisci
PROJECT_NUMBER
con il tuo Google Cloud il numero del progetto ePROJECT_ID
con il tuo Google Cloud dell'ID progetto. Per istruzioni dettagliate su come trovare l'ID e il numero del progetto, consulta la sezione Creazione di e gestione dei progetti.Concessione del ruolo di account di servizio Cloud Build all'account di servizio predefinito Compute Engine richiede un paio di minuti per propagare.
scrivi l'applicazione di esempio
Per scrivere un'applicazione in C++:
Crea una nuova directory denominata
helloworld-cpp
e cambia directory al suo interno:mkdir helloworld-cpp cd helloworld-cpp
Crea un nuovo file denominato
CMakeLists.txt
e incolla al suo interno il seguente codice:Crea un nuovo file denominato
vcpkg.json
e incolla il codice seguente al suo interno:Crea un nuovo file denominato
cloud_run_hello.cc
e incolla quanto segue al suo interno:Questo codice crea un server web di base in ascolto sulla porta definita dalla variabile di ambiente
PORT
.Crea un nuovo file denominato
Dockerfile
nella stessa directory dei file di origine. Il Dockerfile C++ avvia l'applicazione in ascolto sulla porta definita dalla variabile di ambientePORT
:
La tua app è completa e pronta per essere implementata.
Esegui il deployment in Cloud Run dall'origine
Importante: questa guida introduttiva presuppone che tu disponga dei ruoli di proprietario o editor nel progetto che stai utilizzando. In caso contrario, consulta il ruolo Sviluppatore di origini Cloud Run per le autorizzazioni necessarie per eseguire il deployment di una risorsa Cloud Run dall'origine.
Utilizza Cloud Build per creare un'immagine dal codice sorgente e quindi eseguirne il deployment.
Nella directory di origine, utilizza Cloud Build per creare un'immagine Docker per servizio
gcloud builds submit --machine-type=e2_highcpu_32 --tag gcr.io/PROJECT_ID/cloud-run-hello-world
Esegui il deployment dell'immagine utilizzando il comando seguente:
gcloud run deploy --image=gcr.io/PROJECT_ID/cloud-run-hello-world
Se ti viene chiesto di abilitare l'API, rispondi y per abilitarla.
Quando ti viene richiesto il nome del servizio, premi Invio per accettare nome predefinito, ad esempio
helloworld
.Se ti viene chiesto di abilitare API aggiuntive nel progetto, ad esempio l'API Artifact Registry, rispondi premendo
y
.Quando ti viene chiesto di selezionare la regione, scegli la regione di tua scelta, ad esempio
us-central1
.Se ti viene chiesto di creare un repository nella regione specificata, rispondi premendo
y
.Se ti viene chiesto di consentire le chiamate non autenticate: rispondi
y
. Potresti non visualizzare questa richiesta se è presente un criterio dell'organizzazione che limita i domini che lo impedisce. Per maggiori dettagli, consulta la sezione Prima di iniziare.
Quindi, attendi qualche istante fino al completamento del deployment. Una volta raggiunto il successo, nella riga di comando visualizza l'URL del servizio.
Visita il servizio di cui hai eseguito il deployment aprendo l'URL del servizio in un browser web.
Località Cloud Run
Cloud Run è un servizio a livello di regione, il che significa che l'infrastruttura che esegue i tuoi servizi Cloud Run si trova in una regione specifica ed è gestita da Google in modo da essere disponibile in modo ridondante in tutte le zone all'interno della regione.
Soddisfare i requisiti di latenza, disponibilità o durabilità è uno dei fattori principali per selezionare la regione in cui vengono eseguiti i servizi Cloud Run.
Generalmente puoi selezionare la regione più vicina ai tuoi utenti, ma devi considerare
la località dell'altro account Google Cloud
prodotti utilizzati dal tuo servizio Cloud Run.
L'utilizzo combinato dei prodotti Google Cloud in più località può influire sulla latenza e sul costo del servizio.
Cloud Run è disponibile nelle regioni seguenti:
Soggetto ai prezzi di Livello 1
asia-east1
(Taiwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlandia) Bassi livelli di CO2europe-southwest1
(Madrid) A basse emissioni di CO2europe-west1
(Belgio) A basse emissioni di CO2europe-west4
(Paesi Bassi) Bassi livelli di CO2europe-west8
(Milano)europe-west9
(Parigi) Bassi livelli di CO2me-west1
(Tel Aviv)us-central1
(Iowa) A basse emissioni di CO2us-east1
(Carolina del Sud)us-east4
(Virginia del Nord)us-east5
(Columbus)us-south1
(Dallas) A basse emissioni di CO2us-west1
(Oregon) Bassi livelli di CO2
Soggetto ai prezzi di Livello 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Seul, Corea del Sud)asia-southeast1
(Singapore)asia-southeast2
(Giacarta)asia-south1
(Mumbai, India)asia-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsavia, Polonia)europe-west10
(Berlino) A basse emissioni di CO2europe-west12
(Torino)europe-west2
(Londra, Regno Unito) Bassi livelli di CO2europe-west3
(Francoforte, Germania) Bassi livelli di CO2europe-west6
(Zurigo, Svizzera) Bassi livelli di CO2me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal) Bassi livelli di CO2northamerica-northeast2
(Toronto) Bassi livelli di CO2southamerica-east1
(San Paolo, Brasile) Bassi livelli di CO2southamerica-west1
(Santiago, Cile) Bassi livelli di CO2us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Se hai già creato un servizio Cloud Run, puoi visualizzare la regione nella dashboard di Cloud Run nella console Google Cloud.
Complimenti! Hai appena eseguito il deployment di un'immagine container dal codice sorgente a Cloud Run. Cloud Run automaticamente e orizzontalmente fa lo scale out dell'immagine container per gestire le richieste ricevute, poi esegue lo scale in quando la domanda diminuisce. Paghi solo per la CPU, la memoria e le risorse di rete utilizzate durante la gestione delle richieste.
Esegui la pulizia
Rimuovi il progetto di test
Sebbene non siano previsti addebiti per Cloud Run quando il servizio non è in uso, ti potrebbero comunque essere addebitati i costi di archiviazione dell'immagine container in Artifact Registry. Per evitare addebiti, puoi eliminare l'immagine del contenitore o il progetto Google Cloud. L'eliminazione del progetto Google Cloud interrompe la fatturazione per tutte le risorse utilizzate all'interno del progetto.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Passaggi successivi
Per saperne di più sulla creazione di un container dall'origine del codice e su come eseguirne il push in un repository, consulta: