Creare un'app di runtime personalizzata nell'ambiente flessibile di App Engine
ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base alla regione selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici di paesi e province di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r
è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
I runtime personalizzati ti consentono di creare app che vengono eseguite in un ambiente definito da un Dockerfile. Utilizzando un Dockerfile, puoi utilizzare linguaggi e pacchetti che non fanno parte del Google Cloud e le stesse risorse e gli stessi strumenti utilizzati nell' ambiente flessibile di App Engine.
In questa guida rapida, viene avviato un server web nginx su App Engine utilizzando un runtime personalizzato.
Prima di iniziare
Prima di eseguire l'app di esempio in questa guida rapida, devi configurare il tuo ambiente e creare un nuovo progetto Google Cloud per App Engine:
Crea un nuovo progetto Google Cloud utilizzando la console Google Cloud:
Apri la console Google Cloud:
Fai clic su Crea progetto e poi assegna un nome al nuovo progetto Google Cloud.
Attiva la fatturazione nel nuovo progetto Google Cloud creando un nuovo account di fatturazione o impostandone uno esistente:
Scarica e installa Google Cloud CLI, quindi inizializza l'interfaccia a riga di comando gcloud:
Esegui il seguente comando
gcloud
per creare un'applicazione App Engine e specifica in quale regione geografica vuoi che venga eseguita:gcloud app create
Località App Engine
App Engine è regionale, il che significa che l'infrastruttura che esegue le tue app si trova in una regione specifica e Google la gestisce in modo che sia disponibile in modo ridondante in tutte le zone della regione.
Soddisfare i requisiti di latenza, disponibilità o durabilità è uno dei fattori principali per selezionare la regione in cui vengono eseguite le tue app. In genere, puoi selezionare la regione più vicina agli utenti della tua app, ma devi prendere in considerazione le località in cui è disponibile App Engine, nonché le località degli altriGoogle Cloud prodotti e servizi utilizzati dalla tua app. L'utilizzo di servizi in più località può influire sulla latenza e sui prezzi della tua app.
Non puoi modificare la regione di un'app dopo averla impostata.
Se hai già creato un'applicazione App Engine, puoi visualizzarne la regione effettuando una delle seguenti operazioni:
Esegui il comando
gcloud app describe
.Apri la dashboard di App Engine nella console Google Cloud. La regione viene visualizzata nella parte superiore della pagina.
scarica l'app Hello World
Scegli una delle seguenti opzioni per scaricare l'app di esempio Hello World da GitHub sulla tua macchina locale:
Clona l'app di esempio Hello World dal seguente repository:
git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samples
Scarica il sample come file .zip ed estrailo in una directory locale.
Vai alla directory
nginx
in cui si trova il codice di esempio, ad esempio:cd appengine-custom-runtimes-samples/nginx
Eseguire Hello World sulla macchina locale
Puoi testare l'app di esempio scaricando e installando Docker, quindi eseguendo il container Hello World sulla tua macchina locale.
Non sono presenti passaggi specifici per App Engine, quindi puoi testare l'app di esempio utilizzando gli strumenti e l'approccio che preferisci.
Eseguire il deployment di Hello World in App Engine
Quando è tutto pronto per eseguire il deployment dell'app di esempio in App Engine, svolgi i seguenti passaggi:
Dalla directory in cui si trovano
app.yaml
eDockerfile
, esegui il seguente comando:gcloud app deploy
Scopri di più sui flag facoltativi.
Per vedere la tua app in esecuzione su
https://PROJECT_ID.REGION_ID.r.appspot.com
, esegui il seguente comando per avviare il browser:gcloud app browse
Flag dei comandi gcloud
comuni
-
Includi il flag
--version
per specificare un ID che identifichi in modo univoco la versione della tua app, altrimenti ne verrà generato uno per te. Esempio:--version [YOUR_VERSION_ID]
-
Includi il flag
--project
per specificare un ID progetto Google Cloud alternativo rispetto a quello inizializzato come predefinito nello strumentogcloud
. Esempio:--project [YOUR_PROJECT_ID]
Esempio:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Per scoprire di più sul deployment dell'app dalla riga di comando, consulta
Testare e eseguire il deployment dell'app.
Per un elenco di tutti i flag dei comandi, consulta la documentazione di riferimentogcloud app deploy
.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate su questa pagina, segui questi passaggi.
- 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
Scopri di più sui file Dockerfile nel riferimento Dockerfile.
Per informazioni su come creare il tuo runtime personalizzato, consulta Creare runtime personalizzati.
Revisione del codice
Hello World è l'app App Engine più semplice possibile, in quanto crea un singolo contenitore che esegue un solo servizio e una sola versione. Questa sezione descrive in dettaglio ogni file dell'app.
app.yaml
Specifica la configurazione dell'app. Il file
app.yaml
deve trovarsi nella stessa directory del fileDockerfile
.La voce
runtime: custom
indica ad App Engine di cercare unDockerfile
che definirà l'immagine del runtime eenv: flex
specifica che stai eseguendo il deployment nell'ambiente flessibile.Per ulteriori informazioni, consulta la documentazione di riferimento di
app.yaml
.Dockerfile
Definisce l'insieme di istruzioni utilizzate per creare l'immagine Docker per il container dell'app di esempio. Il file
Dockerfile
deve trovarsi nella stessa directory del fileapp.yaml
. QuestoDockerfile
installa il server web nginx e copia alcune configurazioni di base:Il comando FROM crea un'immagine di base utilizzando l'immagine Docker ufficiale per il server web nginx.
Utilizzando questo
Dockerfile
, l'immagine container conterrà nginx e tutti i contenuti della directorywww/
saranno disponibili per la tua applicazione.
L'app di esempio Ciao mondo include anche un
nginx.conf
file, che contiene le informazioni di configurazione di base di nginx, nonché il
index.html
file, che funge da pagina principale per il server web nginx.