Guide de démarrage rapide des environnements d'exécution personnalisés dans l'environnement flexible App Engine

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. L'ajout de REGION_ID.r dans les URL App Engine est facultatif pour les applications existantes. Il sera bientôt obligatoire pour toutes les applications nouvelles.

Pour assurer une transition en douceur, nous mettons lentement à jour App Engine afin d'utiliser les ID de région. Si nous n'avons pas encore mis à jour votre projet Google Cloud, vous ne verrez pas d'ID de région pour votre application. Étant donné que l'ID est facultatif pour les applications existantes, vous n'avez pas besoin de mettre à jour les URL ni d'effectuer d'autres modifications une fois l'ID de région disponible pour vos applications existantes.

Les environnements d'exécution personnalisés vous permettent de créer des applications qui s'exécutent dans un environnement défini par un fichier Dockerfile. Grâce à ce fichier, vous pouvez employer des langages et des packages qui ne font pas partie de Google Cloud, et exploiter les mêmes ressources et outils que ceux utilisés dans l'environnement flexible App Engine.

Dans ce guide de démarrage rapide, un serveur Web nginx est lancé sur App Engine à l'aide d'un environnement d'exécution personnalisé.

Avant de commencer

Avant d'exécuter l'exemple d'application de ce guide de démarrage rapide, vous devez configurer votre environnement et créer un projet Cloud pour App Engine :

  1. Créez un projet Cloud à l'aide de Cloud Console :

    1. Ouvrez Cloud Console :

      Accéder à la page Projets

    2. Cliquez sur Créer un projet, puis nommez votre nouveau projet Cloud.

    3. Créez ou sélectionnez un compte de facturation pour activer la facturation dans votre projet Cloud :

      Accéder à la page "Facturation"

  2. Téléchargez et installez le SDK Google Cloud, puis initialisez l'outil gcloud :

    Télécharger le SDK

  3. Exécutez la commande gcloud suivante pour créer une application App Engine et spécifier la région géographique dans laquelle vous souhaitez l'exécuter :

    gcloud app create
    

Zones App Engine

App Engine est régional, ce qui signifie que l'infrastructure qui exécute vos applications est située dans une région spécifique, et que Google la gère de sorte qu'elle soit disponible de manière redondante dans toutes les zones de cette région.

Lors de la sélection d'une région dans laquelle exécuter vos applications, vous devez tout d'abord considérer vos exigences en matière de latence, de disponibilité et de durabilité. Vous pouvez généralement sélectionner la région la plus proche des utilisateurs de votre application, mais pensez aussi aux emplacements où App Engine est disponible ainsi qu'aux emplacements des autres produits et services Google Cloud que votre application utilise. L'utilisation de services dans plusieurs emplacements peut avoir des répercussions sur la latence de votre application, ainsi que sur les tarifs.

Une fois définie, vous ne pouvez plus modifier la région d'une application.

Si vous avez déjà créé une application App Engine, vous pouvez afficher sa région en effectuant l'une des opérations suivantes :

Télécharger l'application Hello World

  1. Choisissez l'une des options suivantes pour télécharger l'exemple d'application Hello World de GitHub sur votre ordinateur local :

    • Clonez l'exemple d'application Hello World à partir du dépôt suivant :

      git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samples
      
    • Téléchargez l'exemple sous forme de fichier .zip, puis extrayez-le dans un répertoire local.

  2. Accédez au répertoire nginx où se trouve l'exemple de code. Par exemple :

    cd appengine-custom-runtimes-samples/nginx
    

Exécuter Hello World sur un ordinateur local

Vous pouvez tester l'exemple d'application en téléchargeant et en installant Docker, puis en exécutant le conteneur Hello World sur votre ordinateur local.

Il n'existe pas de démarche spécifique à App Engine ici. Vous pouvez simplement tester l'application en utilisant les outils et l'approche de votre choix.

Déployer Hello World sur App Engine

Lorsque vous êtes prêt à déployer l'exemple d'application sur App Engine, procédez comme suit :

  1. À partir du répertoire dans lequel se trouvent vos fichiers app.yaml et Dockerfile, exécutez la commande suivante :

    gcloud app deploy
    

    Renseignez-vous au sujet des indicateurs facultatifs.

  2. Pour afficher l'application en cours d'exécution à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com, exécutez la commande suivante pour lancer votre navigateur :

    gcloud app browse
    

Options de commande gcloud courantes

  • Incluez l'option --version pour spécifier un ID qui identifie de manière unique cette version de votre application, sans quoi un ID est généré automatiquement. Exemple : --version [YOUR_VERSION_ID]
  • Incluez l'option --project pour spécifier un ID de projet Cloud différent de celui que vous avez initialisé par défaut dans l'outil gcloud. Exemple :--project [YOUR_PROJECT_ID]

Exemple :

gcloud app deploy --version pre-prod-5 --project my-sample-app

Pour en savoir plus sur le déploiement de votre application à partir de la ligne de commande, consultez la section Tester et déployer votre application. Pour obtenir la liste de toutes les options de commande, consultez la documentation de référence gcloud app deploy.

Nettoyer

Afin d'éviter que des frais ne vous soient facturés, vous pouvez supprimer votre projet Cloud. Cette démarche interrompra la facturation de toutes les ressources utilisées dans le projet.

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer .
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Réviser le code

Hello World est l'application App Engine la plus simple qui soit. Elle crée un conteneur qui n'exécute qu'un seul service et une seule version. Cette section décrit en détail chaque fichier de l'application.

app.yaml

Spécifie la configuration de l'application. Le fichier app.yaml doit se trouver dans le même répertoire que le fichier Dockerfile.

runtime: custom
env: flex

L'entrée runtime: custom donne l'ordre à App Engine de rechercher un fichier Dockerfile qui définira l'image de votre environnement d'exécution. L'entrée env: flex indique que vous effectuez un déploiement dans l'environnement flexible.

Pour en savoir plus, consultez la documentation de référence sur app.yaml.

Dockerfile

Définit l'ensemble d'instructions permettant de créer l'image Docker pour le conteneur de l'exemple d'application. Le fichier Dockerfile doit se trouver dans le même répertoire que le fichier app.yaml. Ce fichier Dockerfile installe le serveur Web nginx et copie une configuration de base :

# The standard nginx container just runs nginx. The configuration file added
# below will be used by nginx.
FROM nginx

# Copy the nginx configuration file. This sets up the behavior of nginx, most
# importantly, it ensure nginx listens on port 8080. Google App Engine expects
# the runtime to respond to HTTP requests at port 8080.
COPY nginx.conf /etc/nginx/nginx.conf

# create log dir configured in nginx.conf
RUN mkdir -p /var/log/app_engine

# Create a simple file to handle heath checks. Health checking can be disabled
# in app.yaml, but is highly recommended. Google App Engine will send an HTTP
# request to /_ah/health and any 2xx or 404 response is considered healthy.
# Because 404 responses are considered healthy, this could actually be left
# out as nginx will return 404 if the file isn't found. However, it is better
# to be explicit.
RUN mkdir -p /usr/share/nginx/www/_ah && \
    echo "healthy" > /usr/share/nginx/www/_ah/health

# Finally, all static assets.
ADD www/ /usr/share/nginx/www/
RUN chmod -R a+r /usr/share/nginx/www

La commande FROM crée une image de base à l'aide de l'image Docker officielle du serveur Web nginx.

Grâce à ce fichier Dockerfile, votre image de conteneur comportera nginx et tout le contenu du répertoire www/ sera disponible pour votre application.

L'exemple d'application Hello World contient également un fichier nginx.conf qui inclut les informations de base sur la configuration nginx, ainsi qu'un fichier index.html, qui sert de page racine pour le serveur Web nginx.

En savoir plus

Consultez la documentation de référence sur les fichiers Dockerfile pour obtenir plus d'informations sur ces derniers.

Pour en savoir plus sur la création de votre propre environnement d'exécution personnalisé, consultez la page Créer des environnements d'exécution personnalisés.