Créer une application Ruby 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. 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
Dans ce guide de démarrage rapide, vous allez apprendre à créer et à déployer une application permettant d'afficher un court message.
Vous pouvez utiliser l'exemple d'application de ce guide de démarrage rapide pour toute version compatible de Ruby, en spécifiant la version de l'environnement d'exécution et le système d'exploitation dans votre fichier app.yaml.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init
Rôles requis
Pour obtenir les autorisations nécessaires pour suivre ce guide de démarrage rapide, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Administrateur App Engine (
roles/appengine.appAdmin) sur le projet -
Éditeur Cloud Build (
roles/cloudbuild.builds.editor) sur le projet -
Administrateur des objets de l'espace de stockage (
roles/storage.objectAdmin) sur le projet -
Lecteur des journaux (
roles/logging.viewer) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service -
Demandez à votre administrateur d'attribuer les rôles suivants au compte de service par défaut App Engine :
-
Lecteur Artifact Registry (
roles/artifactregistry.reader) sur le projet -
Compte de service Cloud Build (
roles/cloudbuild.builds.builder) sur le projet -
Lecteur des objets Storage (
roles/storage.objectViewer) sur le projet
-
Lecteur Artifact Registry (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Conditions préalables supplémentaires
Initialisez votre application App Engine avec votre projet, puis choisissez sa région :
gcloud app create --project=[YOUR_PROJECT_ID]Lorsque vous y êtes invité, sélectionnez la région dans laquelle vous souhaitez localiser votre application App Engine.
Installez les éléments suivants sur votre machine locale :
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é. En règle générale, vous pouvez sélectionner la région la plus proche des utilisateurs de votre application, mais vous devez également tenir compte des zones dans lesquelles App Engine est disponible ainsi que des zones des autres Google Cloud produits et services utilisés par votre application. L'utilisation de services situés dans des emplacements différents peut avoir des répercussions sur la latence de votre application, ainsi que sur ses tarifs.
Une fois que vous avez défini la région d'une application, vous ne pouvez plus la modifier.
Si vous avez déjà créé une application App Engine, vous pouvez afficher sa région en effectuant l'une des opérations suivantes :
Exécutez la commande
gcloud app describe.Ouvrez le tableau de bord App Engine dans la Google Cloud console. La région apparaît en haut de la page.
Télécharger l'application Hello World
Nous avons créé une application Hello World pour App Engine afin que vous puissiez rapidement vous familiariser avec le déploiement d'une application sur Google Cloud.
Clonez le dépôt de l'exemple d'application Hello World sur votre ordinateur.
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samplesVous pouvez également télécharger l'exemple en tant que fichier zip et l'extraire.
Accédez au répertoire qui contient l'exemple de code.
cd ruby-docs-samples/appengine/flexible/hello_world
Exécuter Hello World sur votre ordinateur local
Cet exemple utilise Bundler pour exécuter l'application Hello World sur votre ordinateur local :
Si le langage de programmation n'est pas déjà installé pour votre environnement d'exécution, téléchargez et installez Ruby.
Installez Bundler :
gem install bundlerInstallez les dépendances pour ce projet :
bundle installDémarrez un serveur Web local :
bundle exec ruby app.rb -p 8080Dans votre navigateur Web, saisissez l'adresse suivante :
Le message Hello World de l'exemple d'application s'affiche sur la page. Dans votre fenêtre de terminal, appuyez sur Ctrl+C pour quitter le serveur Web.
Déployer et exécuter Hello World sur App Engine
Pour déployer votre application dans l'environnement flexible App Engine :-
Déployez l'application Hello World en exécutant la commande suivante à partir du répertoire
flexible/hello_world:gcloud app deploy
Obtenez plus d'informations sur les options facultatives.
Options de commande
gcloudcourantes-
Incluez l'option
--versionpour 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
--projectpour spécifier un ID de projet différent de celui que vous avez initialisé par défaut dans l'outilgcloud. Google Cloud 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. -
Incluez l'option
-
Lancez votre navigateur et accédez à l'application à l'adresse
https://PROJECT_ID.REGION_ID.r.appspot.com oùgcloud app browse
PROJECT_IDreprésente l'ID de votre Google Cloud projet.
Cette fois, la page qui affiche le message Hello World est diffusée par un serveur Web exécuté sur une instance App Engine.
Félicitations ! Vous avez déployé votre première application App Engine dans l'environnement flexible App Engine !
Si vous rencontrez des erreurs lors du déploiement de votre application, consultez les conseils de dépannage.Consultez les sections suivantes pour en savoir plus sur le nettoyage et découvrir les prochaines étapes que vous pourriez effectuer.
Effectuer un nettoyage
Afin d'éviter que des frais ne vous soient facturés, vous pouvez supprimer votre Google Cloud projet. Cette démarche interrompra la facturation de toutes les ressources utilisées dans le projet.
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.
Étape suivante
Découvrez la plate-forme dans son ensemble
Maintenant que vous savez comment développer et déployer des applications App Engine, vous pouvez explorer le reste de Google Cloud. Google Cloud CLI est déjà installé et vous permet d'interagir avec des produits tels que Cloud SQL, Cloud Storage, Firestore, etc.
Découvrez l'environnement flexible App Engine
Voici quelques articles qui vous aideront à mieux connaître App Engine :
Examen du code Hello World
Hello World est l'application App Engine la plus simple qui soit : elle ne contient qu'un seul service, ne possède qu'une seule version, et tout le code se trouve dans le répertoire racine de l'application. Cette section décrit chacun des fichiers de l'application en détail.
app.rb
L'application Hello World est une application Sinatra basique à fichier unique :
app.yaml
Le fichier app.yaml
décrit la configuration suivante pour votre application :
- Définit
env: flex, qui indique que votre application utilise l'environnement flexible App Engine. Spécifie l'environnement d'exécution utilisé par l'application.
Pour en savoir plus sur le fonctionnement de l'environnement d'exécution Ruby, consultez la page Environnement d'exécution Ruby.
Pour apprendre à concevoir une application en tirant parti des versions et des services, consultez la page Présentation d'App Engine.
Pour en savoir plus sur les paramètres de configuration d'App Engine, consultez la page Configurer une application avec app.yaml.
Gemfile
Le fichier Gemfile permet de spécifier les dépendances RubyGem de l'application, et Bundler sert à déclarer et à installer les dépendances. L'application Hello World
nécessite un seul gem Ruby : le
Sinatra
Sinatra.