Vytvoření aplikace Ruby on Rails v App Service
Azure App Service v Linuxu poskytuje vysoce škálovatelnou službu s vlastními opravami pro hostování webu s využitím operačního systému Linux. Tento rychlý úvodní kurz ukazuje, jak nasadit aplikaci Ruby on Rails App Service v Linuxu pomocí Cloud Shell.
Poznámka
Vývojová sada Ruby podporuje v současnosti jen Ruby on Rails. Pokud chcete použít jinou platformu, například Sinatra, nebo pokud chcete použít nepodporovanou verzi Ruby, musíte ji spustit ve vlastním kontejneru.

Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.
Požadavky
Stažení ukázky
V okně terminálu naklonujte ukázkovou aplikaci do místního počítače a přejděte do adresáře, který obsahuje vzorový kód.
git clone https://github.com/Azure-Samples/ruby-docs-hello-world cd ruby-docs-hello-worldUjistěte se, že výchozí větev je
main.git branch -m mainTip
Změna názvu větve není pro uživatele App Service. Vzhledem k tomu, že mnoho úložišť mění výchozí větev na , tento kurz také ukazuje, jak
mainnasadit úložiště zmain. Další informace najdete v tématu Změna větve nasazení.
Aplikaci spustíte místně.
Nainstalujte požadované gemy. Ukázka obsahuje
Gemfilesoubor , takže stačí spustit následující příkaz:bundle installPo instalaci gemů spusťte aplikaci:
bundle exec rails serverVe webovém prohlížeči přejděte na adresu
http://localhost:3000a místně otestujte aplikaci.
Použití služby Azure Cloud Shell
Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Můžete použít předinstalované příkazy služby Cloud Shell ke spuštění kódu uvedeného v tomto článku, aniž byste museli instalovat cokoli do svého místního prostředí.
Spuštění služby Azure Cloud Shell:
| Možnost | Příklad nebo odkaz |
|---|---|
| Zvolte Vyzkoušet v pravém horním rohu bloku kódu. Výběr Vyzkoušet automaticky nekopíruje kód do služby Cloud Shell. | ![]() |
| Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. | ![]() |
| Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. | ![]() |
Pokud chcete spustit kód uvedený v tomto článku ve službě Azure Cloud Shell, postupujte takto:
Spusťte Cloud Shell.
Vyberte tlačítko Kopírovat na bloku kódu a kód zkopírujte.
Vložte kód do relace Cloud Shell pomocí kláves Ctrl+Shift+V ve Windows a Linuxu nebo pomocí kláves Cmd+Shift+V v systému macOS.
Spusťte kód stisknutím klávesy Enter.
Konfigurace uživatele nasazení
FTP a místní Git se můžou nasadit do webové aplikace Azure pomocí uživatele nasazení. Jakmile nakonfigurujete uživatele nasazení, můžete ho použít pro všechna nasazení Azure. Uživatelské jméno a heslo nasazení na úrovni účtu se liší od přihlašovacích údajů předplatného Azure.
Pokud chcete nakonfigurovat uživatele nasazení, spusťte v Azure Cloud Shell příkaz AZ WebApp Deployment User set . Nahraďte <username> a <password> pomocí uživatelského jména a hesla pro nasazení.
- Uživatelské jméno musí být v rámci Azure jedinečné a pro místní nabízená oznámení Git nesmí obsahovat @ symbol.
- Heslo musí mít délku alespoň osm znaků a dva z následujících tří prvků: písmena, číslice a symboly.
az webapp deployment user set --user-name <username> --password <password>
Výstup JSON zobrazuje heslo jako null . Pokud se zobrazí chyba 'Conflict'. Details: 409, změňte uživatelské jméno. Pokud se zobrazí chyba 'Bad Request'. Details: 400, použijte silnější heslo.
Poznamenejte si uživatelské jméno a heslo, které chcete použít k nasazení webových aplikací.
Vytvoření skupiny prostředků
Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure, jako jsou webové aplikace, databáze a účty úložiště. Později se například můžete rozhodnout odstranit celou skupinu prostředků v jednom jednoduchém kroku.
V Cloud Shell vytvořte skupinu prostředků pomocí az group create příkazu. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění Západní Evropa. Pokud chcete zobrazit všechna podporovaná umístění pro službu App Service v Linuxu na úrovni Basic, spusťte příkaz az appservice list-locations --sku B1 --linux-workers-enabled.
az group create --name myResourceGroup --location "West Europe"
Obvykle budete svoji skupinu prostředků a prostředky vytvářet v oblasti, kterou máte blízko.
Po dokončení příkazu se ve výstupu JSON zobrazí vlastnosti skupiny prostředků.
Vytvoření plánu služby Azure App Service
V Cloud Shell vytvořte App Service plán pomocí az appservice plan create příkazu.
Následující příklad vytvoří plán služby App Service s názvem myAppServicePlan v cenové úrovni Free:
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux
Po vytvoření plánu služby App Service se v rozhraní příkazového řádku Azure zobrazí podobné informace jako v následujícím příkladu:
{
"freeOfferExpirationTime": null,
"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
}
Vytvoření webové aplikace
Vytvořte webovou aplikaci v
myAppServicePlanApp Service plánu.V Cloud Shell můžete použít
az webapp createpříkaz . V následujícím příkladu nahraďte<app-name>globálně jedinečným názvem aplikace (platné znaky jsoua-z,0-9a-). Modul runtime je nastavený naRUBY|2.6. Pokud chcete zobrazit všechny podporované moduly runtime, spusťteaz webapp list-runtimes --linuxpříkaz .az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'RUBY|2.6' --deployment-local-gitPo vytvoření webové aplikace Azure CLI zobrazí výstup podobný následujícímu příkladu:
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. > }Vytvořili jste novou prázdnou webovou aplikaci s povoleným nasazením gitu.
Poznámka
Adresa URL vzdáleného úložiště Git se zobrazuje ve vlastnosti
deploymentLocalGitUrlve formátuhttps://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Tuto adresu URL si uložte, protože ji budete potřebovat později.Přejděte do aplikace a zobrazte nově vytvořenou webovou aplikaci s integrovanou i image. Nahraďte < app-name> názvem vaší webové aplikace.
http://<app_name>.azurewebsites.netVaše nová webová aplikace by měla vypadat takto:

Nasazení aplikace
Vzhledem k tomu, že nasazujete větev , musíte nastavit výchozí větev nasazení pro vaši aplikaci App Service na (viz Změna
mainvětvemainnasazení). V Cloud Shell nastavte nastaveníDEPLOYMENT_BRANCHaplikace pomocíaz webapp config appsettings setpříkazu .az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'Zpět v okně místního terminálu přidejte vzdálené úložiště Azure do místního úložiště Git. Nahraďte <deploymentLocalGitUrl-from-create-step> adresou URL vzdáleného úložiště Git, kterou jste si uložili v části Vytvoření webové aplikace.
git remote add azure <deploymentLocalGitUrl-from-create-step>Nasaďte aplikaci do vzdáleného úložiště Azure pomocí následujícího příkazu. Když vás Správce přihlašovacích údajů Git vyzve k zadání přihlašovacích údajů, nezapomeňte zadat přihlašovací údaje, které jste vytvořili v části Konfigurace uživatele nasazení, a ne přihlašovací údaje, které používáte pro přihlášení k Azure Portal.
git push azure mainSpuštění tohoto příkazu může trvat několik minut. Při spuštění příkaz zobrazí podobné informace jako v následujícím příkladu:
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 main -> main
Přechod do aplikace
Po dokončení nasazení počkejte asi 10 sekund, než se webová aplikace restartuje, přejděte do webové aplikace a ověřte výsledky.
http://<app-name>.azurewebsites.net

Poznámka
Během restartování aplikace se můžete v prohlížeči nebo na výchozí stránce zobrazit stavový kód Error 503 Server unavailable Hey, Ruby developers! HTTP. Úplné restartování aplikace může trvat několik minut.
Vyčištění nasazení
Po spuštění ukázkového skriptu můžete pomocí následujícího příkazu odebrat skupinu prostředků a všechny k ní přidružené prostředky.
az group delete --name myResourceGroup


