Avviso: nei prossimi mesi, stiamo riorganizzando il sito della documentazione di App Engine per semplificare la ricerca di contenuti e l'allineamento con il resto dei prodotti Google Cloud. Saranno disponibili gli stessi contenuti, ma ora la navigazione corrisponderà al resto dei prodotti Cloud. Se hai feedback o domande durante la navigazione nel sito, fai clic su Invia feedback.

Poiché la versione 5.5 di PHP non è più supportata dalla community, consigliamo vivamente alle nuove app di utilizzare il runtime PHP 7 e versioni successive.

Deployment di un'app PHP 5

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Esegui il deployment della tua app per caricarla ed eseguirla su App Engine. Quando esegui il deployment delle tue app, crei le relative versioni e i relativi servizi corrispondenti 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 di singole versioni o di file di configurazione.

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

Prima di iniziare

Prima di poter eseguire il deployment della tua app:

  • Il proprietario del progetto Cloud deve creare l'applicazione App Engine.

  • Verifica che il tuo account utente includa i privilegi necessari.

  • Autorizza Cloud Build a eseguire il deployment delle app nel tuo progetto. Quando esegui il deployment dell'app, App Engine utilizza Cloud Build per creare l'app in un container ed eseguirne il deployment nel runtime nella regione dell'app. Cloud Build non dispone dell'autorizzazione per eseguire il deployment delle app PHP 5 per impostazione predefinita, quindi devi concedere l'autorizzazione prima di poter eseguire il deployment delle 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 configurarlo per l'utilizzo di un ID progetto Cloud diverso da quello per cui lo hai inizializzato, consulta Gestione delle configurazioni dell'interfaccia a riga di comando gcloud.

Utilizzo di un proxy

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

Esegui questi 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 un username e un password per il proxy. Per ulteriori informazioni, consulta gcloud config.

Deployment di un'app

Per eseguire il deployment della tua applicazione in App Engine, utilizza il comando gcloud app deploy da dove si trovano i file di configurazione, ad esempio app.yaml.

Scegliere gli ID versione univoci

Per le istanze con scalabilità manuale, l'ID della versione deve iniziare con una lettera per distinguerle dagli ID numerici delle istanze. In questo modo le richieste vengono instradate alla destinazione corretta ed evita l'ambiguità con pattern URL come 123-dot-my-service.[REGION_ID].r.appspot.com, che possono essere interpretati 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 all'ID istanza 123 in cui sono in esecuzione le versioni del servizio my-service.

Puoi assegnare un nome alle versioni a tua scelta per le istanze configurate per la scalabilità automatica o la scalabilità di base, perché 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 attuale. Se esegui il comando da una directory che non contiene app.yaml della tua app o se vuoi eseguire il deployment di più app, sostituisci [CONFIGURATION_FILES] con il percorso di uno o più file di configurazione. Utilizza un unico spazio vuoto per separare i nomi dei percorsi.

Contrassegni facoltativi:

  • --version: specifica un ID versione personalizzata. Per impostazione predefinita, App Engine genera un ID versione.
  • --no-promote: esegue il deployment dell'app senza instradare automaticamente tutto il traffico a quella versione. Per impostazione predefinita, ogni versione di cui esegui il deployment viene configurata automaticamente per ricevere il 100% del traffico.
  • --project: specifica un ID progetto cloud alternativo a quello che hai inizializzato come predefinito nell'interfaccia a riga di comando gcloud.

Per ulteriori informazioni, consulta il riferimento 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 già esistente in App Engine, i file di cui eseguirai la sovrascrittura sovrascriveranno la versione esistente. Questo può causare problemi se la versione gestisce il traffico perché il traffico verso la tua applicazione potrebbe essere interrotto. 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 in più servizi, puoi eseguire il deployment e aggiornare contemporaneamente servizi mirati o tutti i servizi. Il deployment degli aggiornamenti ai servizi può includere l'aggiornamento di singoli file di configurazione o di aggiornamento del codice sorgente nelle versioni corrispondenti.

Ad esempio, puoi eseguire il deployment e creare due versioni in App Engine, dove ogni versione viene eseguita nel proprio servizio. La prima versione funge da servizio frontend e l'altra come backend della tua app. Puoi quindi eseguire il deployment di 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 e del backend oppure entrambi contemporaneamente.

Requisiti per più servizi

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

  • Devi eseguire il deployment iniziale di una versione dell'app nel servizio default prima di poter creare ed eseguire il deployment dei servizi successivi.

  • Devi specificare l'ID del servizio nel file di configurazione app.yaml 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 ne esegue il deployment della versione nel servizio default.

  • Devi specificare tutti i file di configurazione app.yaml corrispondenti nel comando di deployment per eseguire il deployment simultaneo di più servizi.

Per eseguire il deployment di più servizi

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

gcloud app deploy [CONFIGURATION_FILES]

Dove [CONFIGURATION_FILES] è uno o più percorsi e nomi di file di configurazione separati da uno spazio vuoto.

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

Riceverai la verifica tramite la riga di comando man mano che il deployment di ogni servizio viene eseguito correttamente.

Visualizzazione dei log di build

Cloud Build trasmette i flussi di build e il deployment dei log visualizzabili nella sezione Cronologia di Cloud Build della console Google Cloud. Per visualizzare le build nella regione dell'app, usa il menu a discesa Regione nella parte superiore della pagina per scegliere la regione in base a cui filtrare.

Risolvere i problemi

Di seguito sono riportati i messaggi di errore più comuni che potresti riscontrare:

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
Se il progetto Cloud non include l'applicazione App Engine richiesta, il comando gcloud app deploy può non riuscire quando tenta di eseguire il comando gcloud app create. Solo gli account con il ruolo Proprietario hanno le autorizzazioni necessarie per creare le applicazioni App Engine.
Command not found
Se non hai creato link simbolici per gli strumenti dev_appserver.sh quando hai installato l'SDK App Engine (deprecato), potrebbe essere necessario specificare il percorso della directory completo per eseguire lo strumento, ad esempio: [PATH_TO_CLOUD_SDK]/bin/dev_appserver.py.
Import Error
Se hai installato sia l'interfaccia a riga di comando gcloud sia l'SDK App Engine originale, le voci nel percorso PATH potrebbero essere in conflitto tra loro e causare errori di importazione. Se hai ricevuto errori durante l'esecuzione dei comandi dell'interfaccia a riga di comando gcloud, prova a utilizzare esplicitamente l'SDK App Engine originale. Puoi spostare la voce relativa all'SDK App Engine originale in una parte precedente del tuo percorso PATH, in modo che quei comandi abbiano la priorità. In alternativa, puoi eseguire il comando specificando il percorso completo della directory: [PATH_TO_APP_ENGINE_SDK]/dev_appserver.py.
[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 più servizi dell'applicazione, devi eseguire il deployment e creare il servizio default. Per maggiori dettagli su come eseguire il deployment di una versione nel servizio default, consulta Deployment di più applicazioni di servizio.
Too Many Versions (403)
App Engine ha un limite sul numero di versioni di cui è stato eseguito il deployment per la tua applicazione. Sono diversi per le applicazioni gratuite e per le applicazioni di cui è stato eseguito il deployment. Puoi utilizzare la console Google Cloud per eliminare una versione precedente e poi caricare il codice più recente.
[13] An internal error occurred while creating a Cloud Storage bucket.

App Engine crea un bucket multiregionale Cloud Storage predefinito per tuo conto, nella stessa regione in cui viene creata la tua applicazione. Questo bucket è necessario per archiviare i contenuti della tua applicazione. Questo errore viene restituito quando non è possibile creare questo 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 nella chiave vpc_access_connector. Assicurati che il campo name contenga il progetto e la regione corretti in cui viene creato il connettore di accesso VPC serverless.

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

Altro errore di deployment

Se il deployment non va a buon fine, assicurati che l'API Cloud Build sia abilitata nel progetto. App Engine abilita automaticamente questa API la prima volta che esegui il deployment di un'app, ma se qualcuno l'ha disabilitata, i deployment non andranno a buon fine.

Passaggi successivi