Creare un'app di runtime personalizzata nell'ambiente flessibile di App Engine
ID regione
L'REGION_ID è un codice abbreviato che Google assegna
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 utilizzare le stesse risorse e gli stessi strumenti utilizzati nell' ambiente flessibile di App Engine.
In questa guida rapida, un server web nginx viene avviato in 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 Google Cloud progetto per App Engine:
Crea un nuovo Google Cloud progetto utilizzando la Google Cloud console:
Apri la Google Cloud console:
Fai clic su Crea progetto e poi assegna un nome al nuovo Google Cloud progetto.
Abilita la fatturazione nel nuovo Google Cloud progetto creando un nuovo account di fatturazione o impostandone uno esistente:
Scarica e installa Google Cloud CLI, quindi inizializza gcloud CLI:
Esegui il seguente
gcloudcomando per creare un'applicazione App Engine e specificare in quale regione geografica vuoi che venga eseguita l'app:gcloud app create- A causa delle modifiche al comportamento predefinito di utilizzo dei service account di Cloud Build nei nuovi progetti e delle modifiche alle policy dell'organizzazione secure-by-default, potresti dover concedere ruoli aggiuntivi al account di servizio di deployment. Per ulteriori informazioni sulla concessione di ruoli specifici, consulta la guida alla risoluzione dei problemi.
Località App Engine
App Engine è regionale, il che significa che l'infrastruttura che esegue le tue app si trova in una regione specifica ed è gestita da Google in modo che sia disponibile in modo ridondante in tutte le zone all'interno di quella regione.
Soddisfare i requisiti di latenza, disponibilità o durabilità sono fattori primari per la selezione della regione in cui vengono eseguite le tue app. In genere puoi selezionare la regione più vicina agli utenti della tua app, ma devi considerare le località in cui App Engine è disponibile nonché le località degli altri Google Cloud prodotti e servizi utilizzati dalla tua app. L'utilizzo di servizi in più località può influire sulla latenza dell'app, nonché sui prezzi.
Non puoi modificare la regione di un'app dopo averla impostata.
Se hai già creato un'applicazione App Engine, puoi visualizzarne la regione in uno dei seguenti modi:
Esegui il comando
gcloud app describe.Apri la dashboard di App Engine nella Google Cloud console. 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-samplesScarica l' esempio come file .zip ed estrailo in una directory locale.
Vai alla directory
nginxin cui si trova il codice campione, 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 previsti passaggi specifici di 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, segui questi passaggi:
Dalla directory in cui si trovano
app.yamleDockerfile, esegui il seguente comando:gcloud app deployScopri di più sui flag facoltativi.
Per visualizzare l'app in esecuzione all'indirizzo
https://PROJECT_ID.REGION_ID.r.appspot.com, esegui il seguente comando per avviare il browser:gcloud app browse
Flag comuni dei comandi gcloud
-
Includi il flag
--versionper specificare un ID che identifica in modo univoco la versione dell'app. In caso contrario, ne viene generato uno automaticamente. Esempio:--version [YOUR_VERSION_ID] -
Includi il flag
--projectper specificare un ID progetto alternativo Google Cloud a quello inizializzato come predefinito nello strumentogcloudEsempio:--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 ed eseguire il deployment dell'app
. Per un elenco di tutti i flag dei comandi, consulta il riferimento gcloud app deploy.
Libera spazio
Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
- 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, quindi fai clic su Chiudi per eliminare il progetto.
Passaggi successivi
Scopri di più sui Dockerfile nel riferimento a 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 container che esegue un solo servizio e una sola versione. Questa sezione descrive in dettaglio ciascuno dei file dell'app.
app.yamlSpecifica la configurazione dell'app. Il file
app.yamldeve risiedere nella stessa directory del fileDockerfile.La voce
runtime: customindica ad App Engine di cercare unDockerfileche definirà l'immagine del runtime eenv: flexspecifica che stai eseguendo il deployment nell'ambiente flessibile.Per ulteriori informazioni, consulta il
app.yamlriferimento.DockerfileDefinisce l'insieme di istruzioni utilizzate per creare l'immagine Docker per il container dell'app di esempio. Il file
Dockerfiledeve risiedere nella stessa directory del fileapp.yaml. QuestoDockerfileinstalla 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 l'applicazione.
L'app di esempio Hello World 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 root per il server web nginx.