ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Il codice non corrisponde a un paese o provincia, anche se alcuni ID regione possono essere simili ai codici paese e provincia 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.
Scopri di più sugli ID regione.
Scopri come creare un'app in App Engine utilizzando PHP versione 7.4 o 8.1. L'app di esempio consente agli utenti di pubblicare titoli, autori, descrizioni, data di pubblicazione e immagini dei loro libri preferiti su una pagina web. L'app archivia i dati di testo in un database Cloud SQL e le immagini in un bucket Cloud Storage.
Struttura della guida
Creazione di un progetto Google Cloud utilizzando Google Cloud CLI
Inizializzazione dell'app e definizione dei controller frontali
Prima di iniziare
- Accedi al tuo account Google Cloud. 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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto.
-
Attiva Cloud Build API.
- Installa Google Cloud CLI.
-
Per inizializzare l'interfaccia a riga di comando gcloud, esegui il comando seguente:
gcloud init
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto.
-
Attiva Cloud Build API.
- Installa Google Cloud CLI.
-
Per inizializzare l'interfaccia a riga di comando gcloud, esegui il comando seguente:
gcloud init
- Installare Composer, lo strumento di gestione delle dipendenze PHP. Devi installare Composer a livello globale sui sistemi Linux e Mac OS X.
Download dell'app di esempio
Esplora il codice su GitHub
Scarica o clona l'app.
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
In alternativa, scarica l'esempio come file ZIP ed estrailo.
Vai alla directory
getting-started
.cd appengine/standard/getting-started
Specificare dipendenze con composer.json
L'app utilizza un controller anteriore per instradare le richieste. Il codice campione di questa guida utilizza Slim Framework, ma puoi usare un framework web a tua scelta.
Apri il file
composer.json
per esaminare tutte le dipendenze dirette:Per installare le dipendenze e produrre un file
composer.lock
, esegui il comando seguente:composer install
Il file
composer.lock
consente all'app di recuperare le stesse versioni dei pacchetti che utilizzi in più build e ambienti.
Inizializzazione dell'app e definizione dei controller frontali
Il file index.php
inizializza l'app e inoltra tutte le richieste ai controller definiti nel file ./src/controllers.php
.
Per ulteriori informazioni sulla gestione delle richieste, leggi informazioni sull'avvio di applicazioni e sulla gestione delle richieste.
Integrazione con i servizi Google Cloud
App Engine richiede l'integrazione delle app con sistemi esterni per l'archiviazione dei dati. L'app di esempio archivia i dati di testo su Cloud SQL e le immagini su Cloud Storage.
Consulta la pagina Scelta di un'opzione di archiviazione per tutte le opzioni di archiviazione di Google Cloud.
Utilizzo di Cloud SQL
Nell'app di esempio, gli utenti pubblicano libri in una pagina web. L'app utilizza un database Cloud SQL per archiviare i titoli, gli autori, la data di pubblicazione e le descrizioni dei libri.
Dovrai creare un'istanza Cloud SQL prima di aggiungere i contenuti al database dell'app.
Creazione di un'istanza Cloud SQL
Utilizza l'interfaccia a riga di comando gcloud per creare un'istanza Cloud SQL:
gcloud sql instances create INSTANCE_NAME --tier=MACHINE_TYPE --region=REGION
Ad esempio, se vuoi assegnare un nome all'istanza bookshelf
e utilizzare il tipo di macchina db-n1-standard-2
nella regione centrale degli Stati Uniti:
gcloud sql instances create bookshelf --tier=db-n1-standard-2 --region=us-central1
Configurare l'utente root di MySQL
Puoi utilizzare l'interfaccia a riga di comando gcloud per impostare la password dell'utente root della tua istanza Cloud SQL:
gcloud sql users set-password USER --host=HOST --instance=INSTANCE_NAME --password=PASSWORD
Ad esempio, se vuoi impostare la password dell'utente root per l'istanza Cloud SQL bookshelf
su passw0rd!
:
gcloud sql users set-password root --host=% --instance=bookshelf --password=passw0rd!
Configurazione di un database sull'istanza Cloud SQL
Per archiviare gli autori, i titoli, la data di pubblicazione e le descrizioni dei libri, crea un database MySQL:
gcloud sql databases create DATABASE_NAME --instance=INSTANCE_NAME
Ad esempio, se vuoi creare un database chiamato book-data
nell'istanza Cloud SQL bookshelf
:
gcloud sql databases create book-data --instance=bookshelf
Connessione al database Cloud SQL
L'app di esempio utilizza la tecnologia PDO di PHP per interagire con il database MySQL.
Per questo tutorial, questi parametri sono specificati come variabili di ambiente di seguito nella sezione Configurare l'app.
Esecuzione di query su una singola riga
Quando l'utente fa clic su un libro, l'app esegue una query sul database e restituisce una singola riga che include il titolo, l'autore, la data di pubblicazione e la descrizione del libro.
Utilizzo di Cloud Storage
L'app di esempio utilizza Cloud Storage per archiviare le immagini, ovvero i file binari, caricati dagli utenti.
Creazione di un bucket Cloud Storage
Cloud Storage utilizza i bucket per organizzare e controllare l'accesso ai dati.
Utilizza l'interfaccia a riga di comando gcloud per creare un bucket Cloud Storage:
gsutil mb -l BUCKET_REGION gs://BUCKET_NAME/
Ad esempio, se vuoi creare un bucket denominato picture-storage
nella regione us-central1
:
gsutil mb -l us-central1 gs://picture-storage/
Se l'operazione ha esito positivo, visualizzerai il seguente output:
Creating gs://BUCKET_NAME/
In caso contrario, potresti visualizzare il seguente output:
ServiceException: 409 Bucket BUCKET_NAME already exists
Riprova utilizzando un altro nome per il bucket.
Connessione di un progetto a un bucket Cloud Storage
Per utilizzare Cloud Storage, devi specificare la libreria Cloud Storage.
Archiviazione di immagini
Ora che hai creato un bucket Cloud Storage e configurato una connessione, puoi archiviare le immagini. Le immagini possono essere caricate con elenchi di controllo dell'accesso (ACL) predefiniti per controllare l'accesso alle immagini.
In questa app di esempio, le immagini caricate avranno l'ACL predefinito
public-read
. L'URL pubblico è accessibile tramite la proprietà mediaLink
dell'oggetto Cloud Storage. Puoi utilizzare questo URL in un tag immagine HTML.
Per istruzioni su come leggere un oggetto Cloud Storage privato, consulta Download della pagina Oggetti.
Eliminazione delle immagini
Quando un utente elimina un libro dall'app, questo codice rimuove l'immagine dal bucket Cloud Storage.
Configurazione dell'applicazione
Configura le applicazioni per l'esecuzione su App Engine utilizzando un file app.yaml, che specifica il runtime dell'applicazione, le variabili di ambiente e altre impostazioni.
Per un'app con requisiti di configurazione minimi, il file app.yaml
può essere una singola riga:
PHP 8.1
runtime: php81
PHP 7.4
runtime: php74
Puoi aggiungere ulteriori opzioni di configurazione e variabili di ambiente specifiche per l'applicazione nel file di configurazione app.yaml
.
Aggiungere variabili di ambiente
Nel file app.yaml
viene fornita la configurazione dell'ambiente per l'app. L'esempio di libreria utilizzato in questa guida richiede la configurazione come variabili di ambiente per sapere come connettersi all'istanza Cloud SQL corretta e al bucket Cloud Storage.
Per eseguire il deployment dell'app, devi modificare il file di configurazione app.yaml
:
Imposta la variabile
GOOGLE_STORAGE_BUCKET
sul nome del bucket Cloud Storage.Imposta la variabile
CLOUDSQL_CONNECTION_NAME
su app-name:region:instance-name Puoi recuperare i dettagli necessari utilizzando il seguente comandogcloud
:gcloud sql instances describe INSTANCE
Per un'istanza Cloud SQL di seconda generazione,
CLOUDSQL_CONNECTION_NAME
sarà nel seguente formato:your_project_name:your_region:your_instance
Rimuovi il commento e imposta la variabile
CLOUD_SQL_DATABASE_NAME
se il database che hai creato ha un nome diverso dabookshelf
. In questo esempio, il database è stato creato con il nomebook-data
.Rivedi il file
app.yaml
, che dovrebbe avere un aspetto simile a questo:
PHP 8.1
runtime: php81
env_variables:
GOOGLE_STORAGE_BUCKET: picture-storage
CLOUDSQL_CONNECTION_NAME: sample-application:us-central1:bookshelf
CLOUDSQL_USER: root
CLOUDSQL_PASSWORD: passw0rd!
CLOUDSQL_DATABASE_NAME: book-data
PHP 7.4
runtime: php74
env_variables:
GOOGLE_STORAGE_BUCKET: picture-storage
CLOUDSQL_CONNECTION_NAME: sample-application:us-central1:bookshelf
CLOUDSQL_USER: root
CLOUDSQL_PASSWORD: passw0rd!
CLOUDSQL_DATABASE_NAME: book-data
Implementazione dell'applicazione
Per il deployment dell'applicazione, vai alla directory
getting-started
ed esegui questo comando:gcloud app deploy
Quando viene visualizzato il messaggio relativo alla posizione, scegli una posizione vicina agli utenti dell'app. App Engine è a livello di regione, ovvero l'infrastruttura che esegue la tua app si trova in una regione specifica. Ad esempio, questo tutorial ha utilizzato la regione
us-central1
per il deployment delle risorse di archiviazione. Esegui il deployment dell'app nella stessa area geografica per ridurre la latenza e migliorare le prestazioni.In generale, scegliere una località vicina agli utenti è una buona idea, ma in alcuni casi è consigliabile eseguire il deployment dell'applicazione. Scopri di più sulle località di App Engine e sulle località delle risorse disponibili.
Visualizza l'applicazione:
gcloud app browse
Eseguire la pulizia
Eliminare il progetto Google Cloud per interrompere la fatturazione per le risorse utilizzate all'interno del progetto.
Per eliminare il progetto utilizzando il comando seguente:
gcloud projects delete PROJECT_ID
Per verificare che il progetto sia stato eliminato, elenca i progetti:
gcloud projects list
Passaggi successivi
- Scopri come autenticare gli utenti.
- Per ulteriori informazioni su come scrivere i log delle applicazioni e interpretare i log di sistema, consulta Lettura e scrittura dei log delle applicazioni.
- Scopri come eseguire le operazioni in background in modo asincrono dopo la richiesta utilizzando Cloud Tasks.
- Ulteriori informazioni sulla gestione delle richieste e sul routing delle richieste.
- Per un approfondimento del funzionamento di App Engine, consulta l'articolo sull'ambiente di runtime PHP 7/8.