Criar uma aplicação Ruby on Rails com o Serviço de Aplicações no LinuxCreate a Ruby on Rails App in App Service on Linux

O Serviço de Aplicações no Linux fornece um serviço de hospedagem web altamente escalável e auto-remendado utilizando o sistema operativo Linux.App Service on Linux provides a highly scalable, self-patching web hosting service using the Linux operating system. Este tutorial de arranque rápido mostra como implementar uma aplicação Ruby on Rails para o Azure App Service em Linux usando a Cloud Shell.This quickstart tutorial shows how to deploy a Ruby on Rails app to Azure App Service on Linux using the Cloud Shell.

Nota

A pilha de desenvolvimento Ruby só suporta o Ruby on Rails neste momento.The Ruby development stack only supports Ruby on Rails at this time. Se quiser utilizar uma plataforma diferente, como o Sinatra, ou se quiser utilizar uma versão Ruby não suportada,tem de a executar num recipiente personalizado.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

Se não tiver uma subscrição do Azure,crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Pré-requisitosPrerequisites

Transferir o exemploDownload the sample

Numa janela do terminal, execute o seguinte comando para clonar o repositório da aplicação de exemplo para o seu computador 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

Executar a aplicação localmenteRun the application locally

Execute a aplicação localmente, para ver que aspeto deveria ter quando a implemente no Azure.Run the application locally so that you see how it should look when you deploy it to Azure. Abra uma janela de terminal, mude para o diretório hello-world e utilize o comando rails server para iniciar o servidor.Open a terminal window, change to the hello-world directory, and use the rails server command to start the server.

O primeiro passo é instalar os gems necessários.The first step is to install the required gems. Há uma Gemfile incluída na amostra, então basta executar o seguinte comando:There's a Gemfile included in the sample, so just run the following command:

bundle install

Quando os gems estiverem instalados, vamos utilizar o bundler para iniciar a aplicação:Once the gems are installed, we'll use bundler to start the app:

bundle exec rails server

Com o seu browser, navegue para http://localhost:3000 para testar a aplicação localmente.Using your web browser, navigate to http://localhost:3000 to test the app locally.

Hello World configurado

Utilizar o Azure Cloud ShellUse Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Pode utilizar os comandos pré-instalados do Cloud Shell para executar o código neste artigo sem ter de instalar nada no ambiente local.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Para iniciar o Azure Cloud Shell:To start Azure Cloud Shell:

OpçãoOption Exemplo/LigaçãoExample/Link
Selecione Experimentar no canto superior direito de um bloco de código.Select Try It in the upper-right corner of a code block. A seleção de Experimente não copia automaticamente o código para o Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemplo da opção Experimente para o Azure Cloud Shell
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell numa nova janelaLaunch Cloud Shell in a new window
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Botão Cloud Shell no portal do Azure

Para executar o código neste artigo no Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie o Cloud Shell.Start Cloud Shell.

  2. Selecione o botão Copiar num bloco de código para copiar o código.Select the Copy button on a code block to copy the code.

  3. Cole o código na sessão do Cloud Shell ao selecionar Ctrl+Shift+V no Windows e Linux ou Cmd+Shift+V no macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Selecione Introduzir para executar o código.Select Enter to run the code.

Configurar um utilizador de implementaçãoConfigure a deployment user

A FTP e o Git local podem implementar para uma aplicação web Azure utilizando um utilizador de implementação.FTP and local Git can deploy to an Azure web app by using a deployment user. Uma vez configurar o utilizador de implementação, pode usá-lo para todas as suas implementações Azure.Once you configure your deployment user, you can use it for all your Azure deployments. O nome de utilizador e palavra-passe de implementação ao nível da sua conta são diferentes das suas credenciais de subscrição Azure.Your account-level deployment username and password are different from your Azure subscription credentials.

Para configurar o utilizador de implementação, executar o comando de configuração de implementação az webapp em Azure Cloud Shell.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Substitua <username> e por um nome de utilizador de <password> implementação e senha.Replace <username> and <password> with a deployment user username and password.

  • O nome de utilizador deve ser único dentro do Azure, e para os pushes git locais, não deve conter o símbolo '@'.The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • A palavra-passe deve ter pelo menos oito caracteres, com dois dos seguintes três elementos: letras, números e símbolos.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>

A saída JSON mostra a palavra-passe como null .The JSON output shows the password as null. Se obtiver o erro 'Conflict'. Details: 409, altere o nome de utilizador.If you get a 'Conflict'. Details: 409 error, change the username. Se obtiver o 'Bad Request'. Details: 400 erro, utilize uma palavra-passe mais forte.If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Grave o seu nome de utilizador e palavra-passe para usar para implementar as suas aplicações web.Record your username and password to use to deploy your web apps.

Criar um grupo de recursosCreate a resource group

Um grupo de recursos é um contentor lógico em que os recursos do Azure, como aplicações Web, bases de dados e contas de armazenamento são implementados e geridos.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Por exemplo, pode optar por eliminar todo o grupo de recursos num único passo simples mais tarde.For example, you can choose to delete the entire resource group in one simple step later.

Na Cloud Shell, crie um az group create grupo de recursos com o comando.In the Cloud Shell, create a resource group with the az group create command. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup, na localização Europa Ocidental.The following example creates a resource group named myResourceGroup in the West Europe location. Para ver todas as localizações suportadas para o Serviço de Aplicações no Linux no escalão Básico, execute o comando 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"

Geralmente, o grupo de recursos e os recursos são criados numa região perto de si.You generally create your resource group and the resources in a region near you.

Quando o comando for concluído, uma saída JSON mostra as propriedades do grupo de recursos.When the command finishes, a JSON output shows you the resource group properties.

Criar um plano do Serviço de Aplicações do AzureCreate an Azure App Service plan

Na Cloud Shell, crie um plano de az appservice plan create Serviço de Aplicações no grupo de recursos com o comando.In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

O exemplo seguinte cria um myAppServicePlan plano de Serviço--sku F1de Aplicações denominado no--is-linuxnível de preços gratuitos () e num recipiente Linux ( ).The following example creates an App Service plan named myAppServicePlan in the Free pricing tier (--sku F1) and in a Linux container (--is-linux).

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

Quando o plano do Serviço de Aplicações tiver sido criado, a CLI do Azure mostra informações semelhantes ao seguinte exemplo: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
} 

Criar uma aplicação WebCreate a web app

Crie uma aplicação web no myAppServicePlan plano de Serviço de Aplicações.Create a web app in the myAppServicePlan App Service plan.

Na Cloud Shell, podes usar o az webapp create comando.In the Cloud Shell, you can use the az webapp create command. No exemplo a seguir, substitua <app-name> com um nome de aplicação globalmente exclusivo (os carateres válidos são a-z, 0-9 e -).In the following example, replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). O runtime está definido como RUBY|2.6.2.The runtime is set to RUBY|2.6.2. Para ver todos os tempos de execução suportados, az webapp list-runtimes --linux corra.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

Quando a aplicação Web tiver sido criada, a CLI do Azure mostra informações semelhantes ao seguinte exemplo: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. >
}

Criou uma nova aplicação Web vazia, com a implementação de git ativada.You’ve created an empty new web app, with git deployment enabled.

Nota

O URL do Git remoto é apresentado na propriedade deploymentLocalGitUrl, com o formato 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. Guarde este URL, uma vez que vai precisar dele mais tarde.Save this URL as you need it later.

Navegue na aplicação para ver a sua aplicação web recém-criada com imagem incorporada.Browse to the app to see your newly created web app with built-in image. Substitua o _ <nome da aplicação>_ pelo nome da sua aplicação web.Replace <app name> with your web app name.

http://<app_name>.azurewebsites.net

A aplicação Web deve ter o seguinte aspeto:Here is what your new web app should look like:

Página inicial

Implementar a sua aplicaçãoDeploy your application

Execute os seguintes comandos para implementar a aplicação local na sua aplicação 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

Certifique-se de que as operações de implementação remota são bem-sucedidas.Confirm that the remote deployment operations report success. Os comandos produzem um resultado semelhante ao seguinte texto: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

Uma vez concluída a implementação, aguarde cerca de 10 segundos para que a aplicação da web reinicie e, em seguida, navegue para a aplicação web e verifique os resultados.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

aplicação Web atualizada

Nota

Enquanto a aplicação está a reiniciar, Error 503 Server unavailable poderá observar o Hey, Ruby developers! código de estado HTTP no navegador ou a página predefinida.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. Pode levar alguns minutos para a aplicação reiniciar completamente.It may take a few minutes for the app to fully restart.

Limpar a implementaçãoClean up deployment

Depois de executar o script de exemplo, pode ser utilizado o seguinte comando para remover o grupo de recursos e todos os recursos associados ao mesmo.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

Passos seguintesNext steps