Deployment di un'app PHP 5

Esegui il deployment dell'app per caricarla ed eseguirla su App Engine. Quando esegui il deployment app, crei le versioni di tali app e le relative app servizi in App Engine. Puoi eseguire il deployment di intere app, inclusi tutto il codice sorgente e i file di configurazione, oppure puoi eseguire il deployment e l'aggiornamento di singole versioni o di file di configurazione.

Per eseguire il deployment delle app in modo programmatico, utilizzare l'API Admin.

Prima di iniziare

Prima di poter eseguire il deployment dell'app:

Installazione dell'interfaccia a riga di comando gcloud

Per eseguire il deployment dell'app con gcloud CLI, devi scaricare, installare e inizializzare gcloud CLI.

Scarica l'SDK

Se hai già installato gcloud CLI e vuoi per configurarlo in modo che utilizzi un ID progetto Google Cloud diverso da quello l'hai inizializzato, vedi Gestione gcloud CLI di comando gcloud.

Utilizzo di un proxy

Se esegui il comando di deployment da un sistema che utilizza un protocollo HTTP o Proxy HTTPS, devi configurare lo strumento in modo che possa comunicare tramite proxy.

Esegui i seguenti comandi per configurare l'interfaccia a riga di comando gcloud:

gcloud config set proxy/type [PROXY_TYPE]
gcloud config set proxy/address [PROXY_ADDRESS]
gcloud config set proxy/port [PROXY_PORT]

Puoi anche impostare username e password per il proxy. Per maggiori informazioni consulta gcloud config.

Deployment di un'app

Per eseguire il deployment dell'app in App Engine, utilizza il comando gcloud app deploy dalla posizione in cui si trovano i file di configurazione, ad esempio app.yaml.

Scelta di ID versione univoci

Per le istanze con scalabilità manuale, l'ID della versione deve iniziare con una lettera per distinguerli dagli ID numerici delle istanze. Ciò garantisce che le richieste vengono indirizzati alla destinazione corretta ed evita l'ambiguità con i pattern URL come 123-dot-my-service.[REGION_ID].r.appspot.com, che può essere interpretato in due modi:

  • Se esiste la versione 123, la richiesta viene instradata alla versione 123 del servizio my-service.
  • Se la versione 123 non esiste, la richiesta viene instradata a ID istanza 123 in cui le versioni del servizio my-service sono in esecuzione.

Puoi assegnare alle versioni il nome che preferisci per le istanze configurate per la scalabilità automatica o di base, il targeting di queste istanze non è supportato.

gcloud app deploy [CONFIGURATION_FILES]

Per impostazione predefinita, il comando esegue il deployment del file di configurazione app.yaml dalla directory corrente. Se esegui il comando da una directory che non contiene app.yaml della tua app o, se vuoi implementare più app, sostituisci [CONFIGURATION_FILES] con il percorso di uno o più file di configurazione. Utilizza un singolo spazio per separare i percorsi.

Flag facoltativi:

  • --version: specifica una versione personalizzata ID. Per impostazione predefinita, App Engine genera un ID versione.
  • --no-promote: esegui il deployment dell'app senza inoltrare automaticamente tutto il traffico a quella versione. Per impostazione predefinita, ogni versione di cui esegui il deployment viene configurata automaticamente ricevono il 100% del traffico.
  • --project: specifica un ID progetto Google Cloud alternativo a quello che inizializzato come predefinito in gcloud CLI.

Per ulteriori informazioni, consulta la documentazione di riferimento di gcloud app deploy o esegui gcloud help dalla riga di comando.

Esempi:

gcloud app deploy
gcloud app deploy app.yaml dos.yaml index.yaml
gcloud app deploy --version [YOUR_VERSION_ID] --no-promote --project [YOUR_PROJECT_ID]

Se esegui il deployment di una versione che specifica lo stesso ID versione di una versione che esiste già su App Engine, i file di cui esegui il deployment sovrascriveranno la versione esistente. Questo può essere problematico se la versione gestisce traffico perché il traffico verso la tua applicazione potrebbe subire interruzioni. Puoi evitare di interrompere il traffico se esegui il deployment della nuova versione con un ID versione diverso e poi sposti il traffico su quella versione.

Deployment di più applicazioni di servizio

Quando la tua applicazione viene presa in considerazione servizi, puoi eseguire il deployment e aggiornare servizi o tutti i servizi scelti come target singolarmente contemporaneamente. Il deployment degli aggiornamenti ai servizi può includere l'aggiornamento di singole di configurazione file o aggiornare il codice sorgente nelle versioni corrispondenti.

Ad esempio, puoi eseguire il deployment e creare due versioni in App Engine, in cui ogni versione viene eseguita nel proprio servizio. La prima versione funge da frontend e l'altro come backend dell'app. Puoi quindi eseguire il deployment singoli file di configurazione per aggiornare solo le impostazioni di un servizio. Puoi anche scegliere di eseguire il deployment di una nuova versione in un servizio per aggiornare il codice sorgente del frontend, del backend o di entrambi contemporaneamente.

Requisiti per più servizi

Utilizzi gli stessi comandi di deployment per eseguire il deployment e l'aggiornamento dei vari servizi della tua applicazione con i seguenti requisiti:

  • Devi inizialmente eseguire il deployment di una versione della tua app nel servizio default prima di poter creare ed eseguire il deployment di servizi successivi.

  • Devi specificare l'ID del servizio nel campo app.yaml di configurazione del deployment della versione corrispondente. Per specificare l'ID servizio, includi la definizione dell'elemento service: [YOUR_SERVICE_ID] in ogni file di configurazione. Per impostazione predefinita, l'esclusione di questa definizione di elemento dal file di configurazione esegue il deployment della versione nel servizio default.

  • Per eseguire il deployment di più servizi contemporaneamente, devi specificare tutti i file di configurazione app.yaml corrispondenti nel comando di deployment.

Per eseguire il deployment di più servizi

Dalla directory principale dell'applicazione in cui si trovano i file di configurazione, esegui il comando di deployment e specifica i percorsi relativi e i nomi dei file per il file app.yaml di ciascun servizio.

gcloud app deploy [CONFIGURATION_FILES]

dove [CONFIGURATION_FILES] è il percorso e il nome di uno o più file di configurazione separati da un singolo spazio.

Esempio
gcloud app deploy main/app.yaml service1/app.yaml service2/app.yaml

Riceverai la verifica dalla riga di comando man mano che ogni servizio deployment eseguito correttamente.

Visualizzazione dei log di build

Cloud Build esegue lo streaming dei log di compilazione e deployment che sono visualizzabili nella sezione Cronologia di Cloud Build della console Google Cloud. Per visualizzare le build nella regione dell'app, utilizza il menu a discesa Regione nella parte superiore della pagina per scegliere la regione in base alla quale applicare il filtro.

Risoluzione dei problemi

Di seguito sono riportati i messaggi di errore comuni che potresti visualizzare:

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
Se il progetto Google Cloud non include la richiesta App Engine dell'applicazione, Il comando gcloud app deploy può non riuscire quando tenta di eseguire gcloud app create. Solo gli account con il ruolo Proprietario delle autorizzazioni necessarie per creare applicazioni App Engine.
Command not found
Consulta Utilizzare il server di sviluppo locale per istruzioni su come configurare lo strumento del server di sviluppo locale.
Import Error
Se hai installato sia l'interfaccia a riga di comando gcloud sia l'SDK App Engine originale, le voci del PATH potrebbero entrare in conflitto tra loro e causare errori di importazione. Se hai ricevuto errori durante l'esecuzione di gcloud CLI segui le istruzioni per l'esecuzione server di sviluppo locale.
[400] The first service (module) you upload to a new application must be the 'default' service (module)
Prima di poter eseguire il deployment e creare i vari servizi della tua applicazione, devi prima eseguire il deployment e creare default . Per dettagli su come eseguire il deployment di una versione nel servizio default, consulta Deployment per più applicazioni di servizio.
Too Many Versions (403)
App Engine ha un limite al numero di versioni di cui è stato eseguito il deployment di un'applicazione. Questi valori sono diversi per le applicazioni gratuite e quelle di cui è stato eseguito il deployment. Puoi utilizzare la console Google Cloud per eliminare una versione precedente e caricare il codice più recente.
[13] An internal error occurred while creating a Cloud Storage bucket.

App Engine crea un bucket Cloud Storage multiregionale predefinito per tuo conto nella stessa regione in cui è stata creata l'applicazione. Questo per archiviare i contenuti della tua applicazione. Questo errore viene visualizzato quando non è possibile creare il bucket nei seguenti scenari:

[13] An internal error occurred

Questo errore può verificarsi se il file di configurazione app.yaml di App Engine contiene una risorsa name non valida sotto la chiave vpc_access_connector. Assicurati che il campo name contenga il progetto e la regione corretti in cui è stato creato il connettore di accesso VPC serverless.

Se il problema persiste dopo aver verificato che la configurazione di app.yaml sia valida, utilizza il kit SDK Google Cloud per eseguire nuovamente il deployment del servizio, aggiungendo il --verbosity=debug flag e contatta l'assistenza Cloud fornendo l'output del comando.

Altro errore di deployment

Se il deployment non riesce, assicurati che l'API Cloud Build sia abilitata nel tuo progetto. App Engine abilita automaticamente questa API il primo quando esegui il deployment di un'app, ma se qualcuno ha disabilitato l'API, i deployment non riuscirà.

Passaggi successivi