ID de la région
Le REGION_ID
est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r
est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.
En savoir plus sur les ID de région
Découvrez comment créer une application dans App Engine à l'aide de la version 7.4 ou 8.1 de PHP. L'exemple d'application permet aux utilisateurs de publier sur une page Web les titres, les auteurs, les descriptions, la date de publication ainsi que des images de leurs livres préférés. L'application stocke les données de texte dans une base de données Cloud SQL et les images dans un bucket Cloud Storage.
Structure du guide
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Installez Composer, l'outil de gestion des dépendances PHP. Vous devez installer Composer de manière globale sur les systèmes Linux et Mac OS X.
Téléchargez l'exemple d'application
Explorez le code sur GitHub.
Téléchargez ou clonez l'application.
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
Ou téléchargez l'exemple sous forme de fichier zip, puis extrayez-le.
Accédez au répertoire
getting-started
:cd php-docs-samples/appengine/standard/getting-started
Spécifier des dépendances avec composer.json
L'application achemine les requêtes à l'aide d'un contrôleur frontal. L'exemple de code présenté dans ce guide utilise le framework Slim, mais vous êtes libre d'utiliser le framework Web de votre choix.
Ouvrez le fichier
composer.json
pour examiner toutes les dépendances directes :Pour installer vos dépendances et générer un fichier
composer.lock
, exécutez la commande suivante :composer install
Le fichier
composer.lock
permet à votre application de récupérer les mêmes versions des packages que celle que vous utilisez dans plusieurs builds et environnements.
Initialiser l'application et définir des contrôleurs frontaux
Le fichier index.php
initialise l'application et transmet toutes les requêtes aux contrôleurs définis dans le fichier ./src/controllers.php
.
Pour en savoir plus sur la gestion des requêtes, consultez les sections Démarrage de l'application et Traiter des requêtes.
Intégrer les services Google Cloud
App Engine requiert que les applications intègrent des systèmes externes de stockage de données. L'exemple d'application stocke les données textuelles sur Cloud SQL et les images sur Cloud Storage.
Pour en savoir plus sur toutes les options de stockage de Google Cloud, consultez la page Choisir une option de stockage.
Utiliser Cloud SQL
Dans cet exemple d'application, les utilisateurs publient des informations relatives à des livres sur une page Web. L'application stocke les titres, les auteurs, la date de publication et les descriptions des livres à l'aide d'une base de données Cloud SQL.
Vous devrez créer une instance Cloud SQL pour pouvoir ajouter du contenu à la base de données de l'application.
Créer une instance Cloud SQL
Utilisez gcloud CLI pour créer une instance Cloud SQL :
gcloud sql instances create INSTANCE_NAME --tier=MACHINE_TYPE --region=REGION
Par exemple, si vous souhaitez nommer votre instance bookshelf
et utiliser le type de machine db-n1-standard-2
dans la région centrale des États-Unis :
gcloud sql instances create bookshelf --tier=db-n1-standard-2 --region=us-central1
Configurer l'utilisateur racine MySQL
Vous pouvez utiliser gcloud CLI pour définir le mot de passe de l'utilisateur racine de votre instance Cloud SQL :
gcloud sql users set-password USER --host=HOST --instance=INSTANCE_NAME --password=PASSWORD
Par exemple, si vous souhaitez définir le mot de passe de l'utilisateur racine pour l'instance Cloud SQL bookshelf
sur passw0rd!
:
gcloud sql users set-password root --host=% --instance=bookshelf --password=passw0rd!
Configurer une base de données sur l'instance Cloud SQL
Pour stocker les auteurs, les titres, la date de publication et les descriptions des livres, créez une base de données MySQL :
gcloud sql databases create DATABASE_NAME --instance=INSTANCE_NAME
Par exemple, si vous souhaitez créer une base de données appelée book-data
sur l'instance Cloud SQL bookshelf
:
gcloud sql databases create book-data --instance=bookshelf
Se connecter à la base de données Cloud SQL
L'exemple d'application utilise l'extension PDO de PHP pour interagir avec la base de données MySQL.
Dans ce tutoriel, ces paramètres sont spécifiés en tant que variables d'environnement dans la section Configurer l'application ci-dessous.
Envoyer une requête correspondant à une seule ligne
Lorsque l'utilisateur clique sur un livre, l'application interroge la base de données et renvoie une seule ligne comprenant le titre, l'auteur, la date de publication et la description de ce livre.
Utiliser Cloud Storage
L'exemple d'application fait appel à Cloud Storage pour stocker les images, qui sont des fichiers binaires, importées par les utilisateurs.
Créer un bucket Cloud Storage
Cloud Storage se sert de buckets pour organiser vos données et en contrôler l'accès.
Utilisez gcloud CLI pour créer un bucket Cloud Storage :
gcloud storage buckets create gs://BUCKET_NAME/ --location=BUCKET_REGION
Par exemple, si vous souhaitez créer un bucket appelé picture-storage
dans la région us-central1
:
gcloud storage buckets create gs://picture-storage/ --location=us-central1
Si l'opération réussit, vous obtenez le résultat suivant :
Creating gs://BUCKET_NAME/
En cas d'échec, le résultat suivant peut s'afficher :
ServiceException: 409 Bucket BUCKET_NAME already exists
Réessayez en donnant un autre nom au bucket.
Associer un projet à un bucket Cloud Storage
Pour utiliser Cloud Storage, vous devez spécifier la bibliothèque Cloud Storage.
Stocker les images
Maintenant que vous avez créé un bucket Cloud Storage et configuré une connexion, vous pouvez stocker des images. Vous pouvez en importer à l'aide des listes de contrôle d'accès prédéfinies (LCA) afin d'en contrôler l'accès.
Dans cet exemple d'application, les images importées sont associées à la LCA public-read
prédéfinie. L'URL publique est accessible via la propriété mediaLink
de votre objet Cloud Storage. Vous pouvez utiliser cette URL dans une balise d'image HTML.
Si vous souhaitez connaître la procédure à suivre pour lire un objet Cloud Storage privé, consultez la page Télécharger des objets.
Supprimer des images
Lorsqu'un utilisateur supprime un livre de l'application, le code suivant supprime l'image du bucket Cloud Storage.
Configurer l'application
Pour configurer les applications afin qu'elles s'exécutent sur App Engine, vous devez utiliser un fichier app.yaml. Celui-ci spécifie l'environnement d'exécution, les variables d'environnement ainsi que d'autres paramètres de l'application.
Le fichier app.yaml
d'une application dont la configuration est minimale peut comporter une seule ligne :
PHP 8.1
runtime: php81
PHP 7.4
runtime: php74
Vous pouvez ajouter davantage d'options de configuration et de variables d'environnement spécifiques à l'application dans le fichier de configuration app.yaml
.
Ajouter des variables d'environnement
Le fichier app.yaml
est l'endroit où la configuration de l'environnement est fournie à l'application. L'exemple "bookshelf" utilisé dans ce guide requiert une configuration fournie en tant que variables d'environnement pour savoir comment se connecter à l'instance Cloud SQL et au bucket Cloud Storage appropriés.
Pour déployer votre application, vous devez modifier le fichier de configuration app.yaml
:
Définissez la variable
GOOGLE_STORAGE_BUCKET
sur le nom du bucket Cloud Storage.Définissez la variable
CLOUDSQL_CONNECTION_NAME
sur app-name:region:instance-name. Vous pouvez récupérer les informations nécessaires à l'aide de la commandegcloud
suivante :gcloud sql instances describe INSTANCE
Pour une instance Cloud SQL de deuxième génération, la variable
CLOUDSQL_CONNECTION_NAME
sera au format suivant :your_project_name:your_region:your_instance
Annulez la mise en commentaire, puis définissez la variable
CLOUD_SQL_DATABASE_NAME
si la base de données que vous avez créée a un nom différent debookshelf
. Dans cet exemple, la base de données a été créée avec le nombook-data
.Examinez votre fichier
app.yaml
, qui doit ressembler à ceci :
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
Déployer l'application
Pour déployer l'application, accédez au répertoire
getting-started
et exécutez la commande suivante :gcloud app deploy
Lorsque l'invite d'emplacement s'affiche, choisissez un emplacement situé à proximité des utilisateurs de votre application. App Engine est régional, ce qui signifie que l'infrastructure qui exécute votre application est située dans une zone géographique spécifique. Par exemple, ce tutoriel déploie les ressources de stockage dans la région
us-central1
. Déployez l'application dans la même région pour réduire la latence et améliorer les performances.En général, il est recommandé de choisir un emplacement proche de vos utilisateurs. Dans d'autres cas, en revanche, il peut être recommandé de déployer votre application à proximité de l'emplacement de ses ressources. Consultez les listes des emplacements disponibles pour App Engine et des emplacements disponibles pour les ressources.
Affichez l'application :
gcloud app browse
Nettoyer
Supprimez votre projet Google Cloud pour interrompre la facturation des ressources utilisées dans le projet.
Pour supprimer votre projet, exécutez la commande suivante :
gcloud projects delete PROJECT_ID
Pour vérifier que le projet a bien été supprimé, répertoriez l'ensemble de vos projets :
gcloud projects list
Étapes suivantes
- Découvrez comment authentifier les utilisateurs.
- Pour en savoir plus sur l'écriture des journaux d'application et l'interprétation des journaux système, consultez la page Lire et écrire des journaux d'application.
- Découvrez comment effectuer des tâches en arrière-plan de manière asynchrone après l'envoi de votre requête à l'aide de Cloud Tasks.
- Documentez-vous sur la gestion des requêtes et le routage des requêtes.
- Pour en savoir plus sur le fonctionnement d'App Engine, consultez la page sur l'environnement d'exécution PHP.