Erstellen einer Ruby on Rails-App in App Service unter LinuxCreate a Ruby on Rails App in App Service on Linux

App Service unter Linux bietet einen hochgradig skalierbaren Webhostingdienst mit Self-Patching unter Linux-Betriebssystemen.App Service on Linux provides a highly scalable, self-patching web hosting service using the Linux operating system. In diesem Schnellstart-Tutorial wird erläutert, wie Sie mit Cloud Shell eine Ruby on Rails-App in Azure App Service für Linux bereitstellen.This quickstart tutorial shows how to deploy a Ruby on Rails app to Azure App Service on Linux using the Cloud Shell.

Hinweis

Der Ruby-Entwicklungsstapel unterstützt derzeit nur Ruby on Rails.The Ruby development stack only supports Ruby on Rails at this time. Wenn Sie eine andere Plattform, z. B. Sinatra, oder eine nicht unterstützte Ruby-Version verwenden möchten, müssen Sie diese in einem benutzerdefinierten Container ausführen.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

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

Herunterladen des BeispielsDownload the sample

Führen Sie in einem Terminalfenster den folgenden Befehl aus, um das Beispiel-App-Repository auf Ihren lokalen Computer zu klonen: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

Lokales Ausführen der AnwendungRun the application locally

Führen Sie die Anwendung lokal aus, damit Sie sehen, wie sie beim Bereitstellen in Azure aussehen sollte.Run the application locally so that you see how it should look when you deploy it to Azure. Öffnen Sie ein Terminalfenster, wechseln Sie zum Verzeichnis hello-world, und verwenden Sie den Befehl rails server zum Starten des Servers.Open a terminal window, change to the hello-world directory, and use the rails server command to start the server.

Der erste Schritt besteht in der Installation aller erforderlichen Gems.The first step is to install the required gems. Im Beispiel ist eine Gemfile enthalten, führen Sie daher einfach den folgenden Befehl aus:There's a Gemfile included in the sample, so just run the following command:

bundle install

Nachdem die Gems installiert sind, wird die App über den Bundler gestartet:Once the gems are installed, we'll use bundler to start the app:

bundle exec rails server

Navigieren Sie in Ihrem Webbrowser zu http://localhost:3000, um die App lokal zu testen.Using your web browser, navigate to http://localhost:3000 to test the app locally.

Hallo Welt (konfiguriert)

Verwenden von Azure Cloud ShellUse Azure Cloud Shell

Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell ermöglicht die Verwendung von bash oder PowerShell, um mit Azure-Diensten zu arbeiten.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.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.

Starten von Azure Cloud Shell:To launch Azure Cloud Shell:

OptionOption Beispiel/LinkExample/Link
Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Select Try It in the upper-right corner of a code block. Durch die Auswahl von Ausprobieren wird der Code nicht automatisch in Cloud Shell kopiert.Selecting Try It doesn't automatically copy the code to Cloud Shell. Beispiel für „Testen Sie es.“ für Azure Cloud Shell
Rufen Sie https://shell.azure.com auf, oder wählen Sie die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Starten von Cloud Shell in einem neuen FensterLaunch Cloud Shell in a new window
Wählen Sie im Azure-Portal oben rechts in der Menüleiste die Schaltfläche Cloud Shell.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Cloud Shell-Schaltfläche im Azure-Portal

Ausführen des Codes in diesem Artikel in Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Starten Sie Cloud Shell.Launch Cloud Shell.

  2. Wählen Sie die Schaltfläche Kopieren für einen Codeblock, um den Code zu kopieren.Select the Copy button on a code block to copy the code.

  3. Fügen Sie den Code mit STRG+UMSCHALT+V unter Windows und Linux oder Cmd+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Drücken Sie die EINGABETASTE, um den Code auszuführen.Press Enter to run the code.

Konfigurieren eines BereitstellungsbenutzersConfigure a deployment user

Für die Bereitstellung in einer Azure-Web-App über FTP oder ein lokales Git kann ein Bereitstellungsbenutzer verwendet werden.FTP and local Git can deploy to an Azure web app by using a deployment user. Nach der Konfiguration des Bereitstellungsbenutzers können Sie ihn für alle Azure-Bereitstellungen verwenden.Once you configure your deployment user, you can use it for all your Azure deployments. Der Benutzername und das Kennwort für die Bereitstellung auf Kontoebene unterscheiden sich von den Anmeldeinformationen für Ihr Azure-Abonnement.Your account-level deployment username and password are different from your Azure subscription credentials.

Führen Sie zum Konfigurieren des Bereitstellungsbenutzers den Befehl az webapp deployment user set in Azure Cloud Shell aus.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Ersetzen Sie „<username>“ und „<password>“ durch Ihren Benutzernamen und Ihr Kennwort für die Bereitstellung.Replace <username> and <password> with a deployment user username and password.

  • Der Benutzername muss in Azure eindeutig sein und darf bei lokalen Git-Pushes nicht das Symbol „@“ enthalten.The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • Das Kennwort muss mindestens acht Zeichen lang sein und zwei der folgenden drei Elemente enthalten: Buchstaben, Zahlen und Symbole.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>

In der JSON-Ausgabe wird das Kennwort als null angezeigt.The JSON output shows the password as null. Wenn Sie den Fehler 'Conflict'. Details: 409 erhalten, müssen Sie den Benutzernamen ändern.If you get a 'Conflict'. Details: 409 error, change the username. Wenn Sie den Fehler 'Bad Request'. Details: 400 erhalten, müssen Sie ein sichereres Kennwort verwenden.If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Notieren Sie Ihren Benutzernamen und Ihr Kennwort für die Bereitstellung Ihrer Web-Apps.Record your username and password to use to deploy your web apps.

Erstellen einer RessourcengruppeCreate a resource group

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen wie Web-Apps, Datenbanken und Speicherkonten bereitgestellt und verwaltet werden.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Sie können z.B. die gesamte Ressourcengruppe später in einem einfachen Schritt löschen.For example, you can choose to delete the entire resource group in one simple step later.

Erstellen Sie in Cloud Shell mit dem Befehl az group create eine Ressourcengruppe.In the Cloud Shell, create a resource group with the az group create command. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort Europa, Westen.The following example creates a resource group named myResourceGroup in the West Europe location. Wenn Sie alle unterstützten Standorte für App Service unter Linux im Basic-Tarif anzeigen möchten, führen Sie den Befehl az appservice list-locations --sku B1 --linux-workers-enabled aus.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"

Im Allgemeinen erstellen Sie Ressourcengruppen und Ressourcen in einer Region in Ihrer Nähe.You generally create your resource group and the resources in a region near you.

Nach Ausführung dieses Befehls werden die Ressourcengruppeneigenschaften in einer JSON-Ausgabe angezeigt.When the command finishes, a JSON output shows you the resource group properties.

Erstellen eines Azure App Service-PlansCreate an Azure App Service plan

Erstellen Sie in Cloud Shell mit dem Befehl az appservice plan create einen App Service-Plan in der Ressourcengruppe.In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

Im folgenden Beispiel wird ein App Service-Plan mit dem Namen myAppServicePlan in einem Linux-Container (--is-linux) für den Tarif Basic (--sku B1) erstellt.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

Nach Erstellung des App Service-Plans zeigt die Azure-Befehlszeilenschnittstelle Informationen wie im folgenden Beispiel an: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
} 

Erstellen einer Web-AppCreate a web app

Erstellen Sie eine Web-App im App Service-Plan myAppServicePlan.Create a web app in the myAppServicePlan App Service plan.

In Cloud Shell können Sie den Befehl az webapp create verwenden.In the Cloud Shell, you can use the az webapp create command. Ersetzen Sie im folgenden Beispiel <app-name> durch einen global eindeutigen App-Namen (gültige Zeichen sind a-z, 0-9 und -).In the following example, replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). Die Runtime ist auf RUBY|2.3 festgelegt.The runtime is set to RUBY|2.3. Führen Sie az webapp list-runtimes --linux aus, um alle unterstützten Laufzeiten anzuzeigen.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

Nach Erstellung der Web-App zeigt die Azure CLI eine Ausgabe wie im folgenden Beispiel an: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. >
}

Sie haben eine leere neue Web-App mit aktivierter Git-Bereitstellung erstellt.You’ve created an empty new web app, with git deployment enabled.

Hinweis

Die URL des Git-Remotespeicherorts wird in der deploymentLocalGitUrl-Eigenschaft im Format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git angezeigt.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. Speichern Sie diese URL, da Sie sie später noch benötigen.Save this URL as you need it later.

Navigieren Sie zu der App, um Ihre neu erstellte Web-App mit integriertem Image anzuzeigen.Browse to the app to see your newly created web app with built-in image. Ersetzen Sie <App-Name> durch Ihren Web-App-Namen.Replace <app name> with your web app name.

http://<app_name>.azurewebsites.net

Ihre neue Web-App sollte nun wie folgt aussehen:Here is what your new web app should look like:

Begrüßungsseite

Bereitstellen der AnwendungDeploy your application

Führen Sie die folgenden Befehle aus, um die lokale Anwendung für Ihre Azure-Web-App bereitzustellen: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

Vergewissern Sie sich, dass die Remotebereitstellungsvorgänge erfolgreich waren.Confirm that the remote deployment operations report success. Der Befehl erzeugt eine Ausgabe ähnlich dem folgenden Text: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

Nachdem die Bereitstellung abgeschlossen ist, warten Sie etwa 10 Sekunden, bis die Web-App neu gestartet wird. Navigieren Sie dann zur Web-App, und überprüfen Sie die Ergebnisse.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

Aktualisierte Web-App

Hinweis

Während die App neu gestartet wird, können Sie den HTTP-Statuscode Error 503 Server unavailable im Browser oder die Standardseite Hey, Ruby developers!beobachten.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. Der vollständige Neustart der App kann einige Minuten in Anspruch nehmen.It may take a few minutes for the app to fully restart.

Bereinigen der BereitstellungClean up deployment

Nach Ausführung des Beispielskripts können mit dem folgenden Befehl die Ressourcengruppe und alle damit verbundenen Ressourcen entfernt werden.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

Nächste SchritteNext steps