Questo tutorial mostra come iniziare a utilizzare Compute Engine. Segui questo tutorial eseguendo il deployment di un'app web Hello World Node.js in Compute Engine. Per assistenza su come iniziare a utilizzare App Engine, consulta l'ambiente standard di App Engine.
Obiettivi
- Utilizzare Cloud Shell per scaricare ed eseguire il deployment di un'app di esempio Hello World.
- Eseguire il deployment di un'app di esempio Hello World in una singola istanza Compute Engine.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il calcolatore prezzi.
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create 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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
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.-
In the Google Cloud console, on the project selector page, select or create 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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
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.-
Nella Google Cloud console, apri l'app in Cloud Shell.
Cloud Shell fornisce l'accesso da riga di comando alle risorse cloud direttamente dal browser.
-
Se accetti di clonare il repository, fai clic su Conferma per scaricare il codice campione e modificare la directory dell'app.
-
In Cloud Shell, configura gcloud CLI in modo da utilizzare
il nuovo Google Cloud progetto:
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Eseguire l'app in Cloud Shell
Se hai fatto clic su Vai a Cloud Shell nella sezione precedente, Cloud Shell ha clonato il repository nodejs-getting-started nella tua istanza. Dopo l'avvio dell'istanza, la directory di lavoro è ~/cloudshell_open/nodejs-getting-started/gce. Se non ti trovi in questa
directory, consulta i passaggi in Prima di iniziare.
Installa le dipendenze:
npm installEseguire l'applicazione:
npm startIn Cloud Shell, fai clic su Anteprima web , e seleziona Anteprima sulla porta 8080. Compare una nuova finestra in cui viene eseguita l'app.
Per arrestare il server web locale premi CTRL+C.
Configurare Cloud Source Repositories
Abilita l'API Cloud Source Repositories.
Nella Google Cloud console, vai a Cloud Source Repositories.
Seleziona Aggiungi repository.

Seleziona Crea nuovo repository, quindi fai clic su Continua.
Nel campo Nome repository, inserisci
new-repo.Nel campo Progetto, inserisci l'ID progetto del progetto che hai creato o selezionato per questo tutorial, quindi fai clic su Continua.
Seleziona Clona il repository in un repository Git locale.
In Cloud Shell, torna alla directory principale e clona il repository seguendo le istruzioni nella scheda Google Cloud SDK e mantieni aperta questa scheda.

Prima di completare il passaggio finale delle istruzioni, copia l'app nel nuovo repository in Cloud Shell:
cd new-repo cp ../cloudshell_open/nodejs-getting-started/gce/app.js app.js cp ../cloudshell_open/nodejs-getting-started/gce/package.json package.json
Segui le istruzioni rimanenti nella scheda Google Cloud SDK per eseguire il commit delle modifiche nel repository. Verifica di aver aggiunto il codice al repository aggiornando il browser e controllando che il codice sia stato aggiunto al repository
new-repo.
Eseguire il deployment in una singola istanza
Questa sezione ti guida nell'esecuzione di una singola istanza dell'app su Compute Engine.
Da Cloud Shell, puoi eseguire il deployment in una singola macchina virtuale (VM) dell'istanza Compute Engine che esegue l'app.
Utilizzare uno script di avvio per inizializzare un'istanza
Devi trovare un modo per indicare all'istanza di scaricare ed eseguire il codice. Un'istanza può avere uno script di avvio che viene eseguito ogni volta che l'istanza viene avviata o riavviata.
Di seguito è riportato lo script di avvio incluso nell'app di esempio Hello World:
Lo script di avvio esegue queste attività:
Installa l'agente Cloud Logging. L'agente raccoglie automaticamente i log da syslog.
Installa Supervisor per eseguire l'app come daemon.
Clona il codice sorgente dell'app da Cloud Source Repositories e installa le dipendenze.
Configura Supervisor per l'esecuzione dell'app. Supervisor assicura che l'app venga riavviata se si chiude inaspettatamente o se viene terminata da un amministratore o da un altro processo. Inoltre, invia lo
stdoute lostderrdell'app al syslog perché siano raccolti dall'agente Logging.
Creare e configurare un'istanza Compute Engine
Crea un'istanza Compute Engine:
Linux/macOS
gcloud compute instances create my-app-instance \ --image-family=debian-9 \ --image-project=debian-cloud \ --machine-type=g1-small \ --scopes userinfo-email,cloud-platform \ --metadata app-location=us-central1-f \ --metadata-from-file startup-script=gce/startup-script.sh \ --zone us-central1-f \ --tags http-serverWindows
gcloud compute instances create my-app-instance ^ --image-family=debian-9 ^ --image-project=debian-cloud ^ --machine-type=g1-small ^ --scopes userinfo-email,cloud-platform ^ --metadata-from-file startup-script=gce/startup-script.sh ^ --zone us-central1-f ^ --tags http-serverSostituisci la zona con una zona di sviluppo, ad esempio
us-central1-a. Per saperne di più su regioni e zone, consulta Area geografica e regioni.Viene creata una nuova istanza, che può accedere ai Google Cloud servizi ed eseguire lo script di avvio. Il nome dell'istanza è
my-app-instance.Verifica lo stato di avanzamento della creazione dell'istanza:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
Sostituisci
YOUR_ZONEcon la zona in cui hai eseguito il deployment dell'istanza.Al termine dello script di avvio, viene visualizzato il seguente messaggio:
startup-script: INFO Finished running startup scripts.
Crea una regola firewall per consentire il traffico nell'istanza:
gcloud compute firewall-rules create default-allow-http-8080 \ --allow tcp:8080 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 8080 access to http-server"Ottieni l'indirizzo IP esterno dell'istanza:
gcloud compute instances listPer visualizzare l'app in esecuzione, inserisci questo URL nel browser:
http://YOUR_INSTANCE_IP:8080
Sostituisci
YOUR_INSTANCE_IPcon l'indirizzo IP esterno dell'istanza.
Gestire e monitorare un'istanza
Puoi utilizzare la Google Cloud console per monitorare e gestire l'istanza.
- Nella Google Cloud console, vai alla pagina Istanze VM.
- Nell'elenco delle istanze della macchina virtuale, fai clic su SSH nella riga di l'istanza a cui vuoi connetterti.
-
Per visualizzare tutti i log generati dalle risorse di Compute Engine, vai alla pagina Esplora log.
Vai a Esplora logCloud Logging è configurato automaticamente per raccogliere i log di vari servizi comuni, incluso
syslog.
Libera spazio
Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
- Nella Google Cloud console, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.
Elimina le singole risorse
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-8080
Passaggi successivi
Esplora architetture di riferimento, diagrammi e best practice su Google Cloud. Consulta il nostro Cloud Architecture Center.
Per altre risorse Node.js per la creazione di app, consulta quanto segue:
- Gestisci e monitora il deployment del gruppo di istanze in Compute Engine > Gruppi di istanze.
- Gestisci la configurazione del bilanciamento del carico, inclusi le mappe URL e i servizi di backend, in Servizi di rete > Bilanciamento del carico.
- Gestione delle sessioni con Firestore
- Autenticare gli utenti con Identity-Aware Proxy
- Deployment di un'app in Google Kubernetes Engine
- Esplora altri Google Cloud servizi.