Créer une application Ruby on Rails dans App Service sur LinuxCreate a Ruby on Rails App in App Service on Linux

App Service sur Linux fournit un service d’hébergement web hautement scalable appliquant des mises à jour correctives automatiques à l’aide du système d’exploitation Linux.App Service on Linux provides a highly scalable, self-patching web hosting service using the Linux operating system. Ce didacticiel de démarrage rapide montre comment déployer une application Ruby on Rails sur Azure App Service sur Linux à l’aide de Cloud Shell.This quickstart tutorial shows how to deploy a Ruby on Rails app to Azure App Service on Linux using the Cloud Shell.

Notes

La pile de développement Ruby ne prend en charge que Ruby on Rails pour l’instant.The Ruby development stack only supports Ruby on Rails at this time. Si vous souhaitez utiliser une autre plateforme telle que Sinatra, ou si vous souhaitez utiliser une version non prise en charge de Ruby, vous devez l’exécuter dans un conteneur personnalisé.If you want to use a different platform, such as Sinatra, or if you want to use an unsupported Ruby version, you need to run it in a custom container.

Hello-world

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Conditions préalablesPrerequisites

Télécharger l’exempleDownload the sample

Dans une fenêtre de terminal, exécutez la commande ci-après pour cloner le référentiel de l’exemple d’application sur votre ordinateur local :In a terminal window, run the following command to clone the sample app repository to your local machine:

git clone https://github.com/Azure-Samples/ruby-docs-hello-world

Exécuter l’application localementRun the application locally

Exécutez l’application localement pour voir à quoi elle devrait ressembler lorsque vous la déploierez sur Azure.Run the application locally so that you see how it should look when you deploy it to Azure. Ouvrez une fenêtre de terminal, accédez au répertoire hello-world et utilisez la commande rails server pour démarrer le serveur.Open a terminal window, change to the hello-world directory, and use the rails server command to start the server.

La première étape consiste à installer les gems nécessaires.The first step is to install the required gems. L’exemple contenant un Gemfile, il vous suffit d’exécuter la commande suivante :There's a Gemfile included in the sample, so just run the following command:

bundle install

Une fois les gems installés, nous utilisons bundler pour démarrer l’application :Once the gems are installed, we'll use bundler to start the app:

bundle exec rails server

À l’aide de votre navigateur web, accédez à http://localhost:3000 pour tester l’application en local.Using your web browser, navigate to http://localhost:3000 to test the app locally.

Hello World configurée

Utiliser Azure Cloud ShellUse Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell vous permet d’utiliser bash ou PowerShell pour travailler avec les services Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Pour lancer Azure Cloud Shell :To launch Azure Cloud Shell:

OptionOption Exemple/LienExample/Link
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code.Select Try It in the upper-right corner of a code block. La sélection de Essayer ne copie pas automatiquement le code dans Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemple Essayer pour Azure Cloud Shell
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Bouton Cloud Shell du portail Azure

Pour exécuter le code de cet article dans Azure Cloud Shell :To run the code in this article in Azure Cloud Shell:

  1. Ouvrez Cloud Shell.Open Cloud Shell.
  2. Sélectionnez le bouton Copier dans un bloc de code pour copier le code.Select the Copy button on a code block to copy the code.
  3. Collez le code dans la session Cloud Shell avec Ctrl+Maj+V sur Windows et Linux, ou Cmd+ Maj+V sur macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Appuyez sur Entrée pour exécuter le code.Press Enter to run the code.

Configuration d’un utilisateur de déploiementConfigure a deployment user

Vous pouvez déployer le protocole FTP et Git local sur une application web Azure en faisant appel à un utilisateur de déploiement.FTP and local Git can deploy to an Azure web app by using a deployment user. Une fois que vous avez créé votre utilisateur de déploiement, vous pouvez l’utiliser pour tous vos déploiements Azure.Once you configure your deployment user, you can use it for all your Azure deployments. Votre nom d’utilisateur et votre mot de passe de déploiement au niveau du compte sont différents de vos informations d’identification de l’abonnement Azure.Your account-level deployment username and password are different from your Azure subscription credentials.

Pour configurer l’utilisateur de déploiement, exécutez la commande az webapp deployment user set dans Azure Cloud Shell.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Remplacez <username> et <password> par un nom d’utilisateur et un mot de passe de déploiement.Replace <username> and <password> with a deployment user username and password.

  • Le nom d’utilisateur doit être unique dans Azure et, pour les push Git locaux, ne doit pas contenir le symbole « @ ».The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • Le mot de passe doit comporter au moins huit caractères et inclure deux des trois éléments suivants : lettres, chiffres et symboles.The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.
az webapp deployment user set --user-name <username> --password <password>

La sortie JSON affiche le mot de passe comme étant null.The JSON output shows the password as null. Si vous obtenez une erreur 'Conflict'. Details: 409, modifiez le nom d’utilisateur.If you get a 'Conflict'. Details: 409 error, change the username. Si vous obtenez une erreur 'Bad Request'. Details: 400, utilisez un mot de passe plus fort.If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Enregistrez le nom d’utilisateur et le mot de passe à utiliser pour déployer vos applications web.Record your username and password to use to deploy your web apps.

Créer un groupe de ressourcesCreate a resource group

Un groupe de ressources est un conteneur logique dans lequel les ressources Azure comme les applications web, les bases de données et les comptes de stockage sont déployés et gérés.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.For example, you can choose to delete the entire resource group in one simple step later.

Dans Cloud Shell, créez un groupe de ressources avec la commande az group create.In the Cloud Shell, create a resource group with the az group create command. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement Europe Ouest.The following example creates a resource group named myResourceGroup in the West Europe location. Pour afficher tous les emplacements pris en charge pour App Service sous Linux au niveau De base, exécutez la commande az appservice list-locations --sku B1 --linux-workers-enabled.To see all supported locations for App Service on Linux in Basic tier, run the az appservice list-locations --sku B1 --linux-workers-enabled command.

az group create --name myResourceGroup --location "West Europe"

Vous créez généralement votre groupe de ressources et les ressources dans une région proche de chez vous.You generally create your resource group and the resources in a region near you.

Une fois la commande terminée, une sortie JSON affiche les propriétés du groupe de ressources.When the command finishes, a JSON output shows you the resource group properties.

Créer un plan Azure App ServiceCreate an Azure App Service plan

Dans Cloud Shell, créez un plan App Service dans le groupe de ressources avec la commande az appservice plan create.In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

L’exemple suivant crée un plan App Service nommé myAppServicePlan dans le niveau tarifaire De base (--sku B1) et un conteneur Linux (--is-linux).The following example creates an App Service plan named myAppServicePlan in the Basic pricing tier (--sku B1) and in a Linux container (--is-linux).

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku B1 --is-linux

Lorsque le plan App Service est créé, l’interface Azure CLI affiche des informations similaires à l’exemple suivant :When the App Service plan has been created, the Azure CLI shows information similar to the following example:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Créer une application webCreate a web app

Créer une application web dans le plan App Service myAppServicePlan.Create a web app in the myAppServicePlan App Service plan.

Dans Cloud Shell, vous pouvez utiliser la commande az webapp create.In the Cloud Shell, you can use the az webapp create command. Dans l’exemple suivant, remplacez <app-name> par un nom d’application unique (les caractères autorisés sont a-z, 0-9 et -).In the following example, replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). Le runtime est défini sur RUBY|2.3.The runtime is set to RUBY|2.3. Pour voir tous les runtimes, exécutez az webapp list-runtimes --linux.To see all supported runtimes, run az webapp list-runtimes --linux.

# Bash
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "RUBY|2.6.2" --deployment-local-git
# PowerShell
az --% webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "RUBY|2.6.2" --deployment-local-git

Une fois l’application web créée, Azure CLI affiche une sortie similaire à l’exemple suivant :When the web app has been created, the Azure CLI shows output similar to the following example:

Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Vous avez créé une application web vide, avec le déploiement Git activé.You’ve created an empty new web app, with git deployment enabled.

Notes

L’URL du Git distant est indiquée dans la propriété deploymentLocalGitUrl, avec le format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git.The URL of the Git remote is shown in the deploymentLocalGitUrl property, with the format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Enregistrez cette URL, car vous en aurez besoin ultérieurement.Save this URL as you need it later.

Accédez à l’application pour voir votre nouvelle application web avec une image intégrée.Browse to the app to see your newly created web app with built-in image. Remplacez <nom de l’application> par le nom de votre application web.Replace <app name> with your web app name.

http://<app_name>.azurewebsites.net

Voici à quoi doit ressembler votre nouvelle application web :Here is what your new web app should look like:

Page de démarrage

Déployer votre applicationDeploy your application

Exécutez les commandes suivantes pour déployer l’application locale sur votre application web Azure :Run the following commands to deploy the local application to your Azure web app:

git remote add azure <Git deployment URL from above>
git push azure master

Vérifiez que les opérations de déploiement à distance réussissent.Confirm that the remote deployment operations report success. Les commandes produisent une sortie semblable au texte suivant :The commands produce output similar to the following text:

remote: Using turbolinks 5.2.0
remote: Using uglifier 4.1.20
remote: Using web-console 3.7.0
remote: Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
remote: Bundled gems are installed into `/tmp/bundle`
remote: Zipping up bundle contents
remote: .......
remote: ~/site/repository
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Deployment successful.
remote: App container will begin restart within 10 seconds.
To https://<app-name>.scm.azurewebsites.net/<app-name>.git
   a6e73a2..ae34be9  master -> master

Une fois le déploiement terminé, attendez environ 10 secondes que l’application web redémarre, puis accédez-y pour vérifiez les résultats.Once the deployment has completed, wait about 10 seconds for the web app to restart, and then navigate to the web app and verify the results.

http://<app-name>.azurewebsites.net

application web mise à jour

Notes

Pendant le redémarrage de l’application, vous pouvez observer le code d’état HTTP Error 503 Server unavailable dans le navigateur ou la page par défaut Hey, Ruby developers!.While the app is restarting, you may observe the HTTP status code Error 503 Server unavailable in the browser, or the Hey, Ruby developers! default page. Le redémarrage complet de l’application peut prendre quelques minutes.It may take a few minutes for the app to fully restart.

Nettoyer le déploiementClean up deployment

Une fois l’exemple de script exécuté, la commande suivante permet de supprimer le groupe de ressources et toutes les ressources associées.After the sample script has been run, the following command can be used to remove the resource group and all resources associated with it.

az group delete --name myResourceGroup

Étapes suivantesNext steps