App Service bir Ruby on rayın uygulaması oluşturun
Linux üzerinde Azure App Service , Linux işletim sistemini kullanarak yüksek düzeyde ölçeklenebilir, kendini yayama bir Web barındırma hizmeti sağlar. Bu hızlı başlangıç öğreticisinde, Cloud Shellkullanılarak Linux üzerinde App Service bir Ruby on rayın uygulamasının nasıl dağıtılacağı gösterilmektedir.
Not
Ruby geliştirme yığını şu anda yalnızca Ruby on Rails'i desteklemektedir. Sinatra gibi farklı bir platform kullanmak istiyorsanız veya desteklenmeyen bir Ruby sürümü kullanmak istiyorsanız, bunu özel bir kapsayıcıda çalıştırmanızgerekir.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Örneği indirme
Bir Terminal penceresinde, örnek uygulamayı yerel makinenize kopyalayın ve örnek kodu içeren dizine gidin.
git clone https://github.com/Azure-Samples/ruby-docs-hello-world cd ruby-docs-hello-worldVarsayılan dalın olduğundan emin olun
main.git branch -m mainİpucu
Dal adı değişikliği App Service için gerekli değildir. Ancak, çoğu depo varsayılan dalını olarak değiştirdiklerinden
main, bu öğretici ' den bir depoyu nasıl dağıtacağınızı da gösterirmain. Daha fazla bilgi için bkz. dağıtım dalını değiştirme.
Uygulamayı yerel olarak çalıştırma
Gerekli Gems 'leri yükler.
GemfileÖrneğe dahil edilmiştir, bu nedenle yalnızca aşağıdaki komutu çalıştırın:bundle installGems yüklendikten sonra uygulamayı başlatın:
bundle exec rails serverWeb tarayıcınızı kullanarak uygulamayı yerel olarak test etmek için
http://localhost:3000yoluna gidin.
Azure Cloud Shell kullanma
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell’i barındırır. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell’in önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell’i başlatmak için:
| Seçenek | Örnek/Bağlantı |
|---|---|
| Kod bloğunun sağ üst köşesindeki Deneyin’i seçin. Deneyin seçeneği belirlendiğinde, kod otomatik olarak Cloud Shell’e kopyalanmaz. | ![]() |
| Cloud Shell’i tarayıcınızda açmak için https://shell.azure.com bölümüne gidin veya Cloud Shell’i Başlat düğmesini seçin. | ![]() |
| Azure portalın sağ üst köşesindeki menü çubuğunda yer alan Cloud Shell düğmesini seçin. | ![]() |
Azure Cloud Shell’de bu makaledeki kodu çalıştırmak için:
Cloud Shell’i başlatın.
Kodu kopyalamak için kod bloğunda Kopyala düğmesini seçin.
Windows ve Linux sisteminde Ctrl+Shift+V tuşlarını kullanarak veya macOS’de Cmd+Shift+V tuşlarını kullanarak kodu Cloud Shell oturumuna yapıştırın.
Kodu çalıştırmak için Enter tuşuna basın.
Dağıtım kullanıcısı yapılandırma
FTP ve yerel git, bir dağıtım kullanıcısı kullanarak bir Azure Web uygulamasına dağıtabilir. Dağıtım kullanıcısını yapılandırdıktan sonra tüm Azure dağıtımlarınız için kullanabilirsiniz. Hesap düzeyinde dağıtım Kullanıcı adınız ve parolanız, Azure aboneliği kimlik bilgilerinizden farklı.
Dağıtım kullanıcısını yapılandırmak için, Azure Cloud Shell bölümünde az WebApp Deployment User set komutunu çalıştırın. <username>Ve öğesini <password> bir dağıtım kullanıcısı Kullanıcı adı ve parolasıyla değiştirin.
- Kullanıcı adı Azure içinde benzersiz olmalıdır ve yerel git gönderimleri için ' @ ' sembolünü içermemelidir.
- Parola en az sekiz karakter uzunluğunda olmalıdır ve şu üç öğeden ikisi vardır: harfler, rakamlar ve semboller.
az webapp deployment user set --user-name <username> --password <password>
JSON çıktısı parolayı olarak gösterir null . 'Conflict'. Details: 409 hatası alırsanız kullanıcı adını değiştirin. 'Bad Request'. Details: 400 hatası alırsanız daha güçlü bir parola kullanın.
Web uygulamalarınızı dağıtmak için kullanmak üzere Kullanıcı adınızı ve parolanızı kaydedin.
Kaynak grubu oluşturma
Kaynak grubu , Web uygulamaları, veritabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Örneğin, daha sonra tek bir basit adımda kaynak grubun tamamını silmeyi seçebilirsiniz.
Cloud Shell, komutuyla bir kaynak grubu oluşturun az group create . Aşağıdaki örnek Batı Avrupa konumunda myResourceGroup adlı bir kaynak grubu oluşturur. Temel katmanda Linux üzerinde App Service için desteklenen tüm konumları görüntülemek için az appservice list-locations --sku B1 --linux-workers-enabled komutunu çalıştırın.
az group create --name myResourceGroup --location "West Europe"
Genellikle kaynak grubunuzu ve kaynakları kendinize yakın bir bölgede oluşturursunuz.
Komut tamamlandığında, bir JSON çıkışı size kaynak grubu özelliklerini gösterir.
Azure App Service planı oluşturma
Komut Cloud Shell ile bir App Service planı az appservice plan create oluşturun.
Aşağıdaki örnekte, Ücretsiz fiyatlandırma katmanı kullanılarak myAppServicePlan adlı bir App Service planı oluşturulmaktadır:
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux
App Service planı oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir:
{
"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
}
Web uygulaması oluşturma
App Service planında bir Web uygulaması oluşturun
myAppServicePlan.Cloud Shell
az webapp createkomutunu kullanabilirsiniz. Aşağıdaki örnekte<app-name>kısmını genel olarak benzersiz bir uygulama adıyla değiştirin (geçerli karakterlera-z,0-9ve-şeklindedir). Çalışma zamanıRUBY|2.6olarak ayarlanmıştır. Desteklenen tüm çalışma zamanlarını görmek için öğesini çalıştırınaz webapp list-runtimes --linux.az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'RUBY|2.6' --deployment-local-gitWeb uygulaması oluşturulduğunda Azure CLI aşağıda yer alan çıktıdaki gibi bilgiler gösterir:
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. > }Git dağıtımı etkinken boş bir yeni Web uygulaması oluşturdunuz.
Not
Git uzak URL’si
deploymentLocalGitUrlözelliği içindehttps://<username>@<app-name>.scm.azurewebsites.net/<app-name>.gitbiçiminde gösterilir. Bu URL’ye daha sonra ihtiyacınız olacağı için URL’yi kaydedin.Yeni oluşturduğunuz Web uygulamanızı yerleşik görüntüyle görmek için uygulamaya gidin. < App-name> değerini Web uygulamanızın adıyla değiştirin.
http://<app_name>.azurewebsites.netYeni web uygulamanız aşağıdaki gibi görünmelidir:

Uygulamanızı dağıtma
Dalı dağıtıyorsanız, App Service uygulamanızın varsayılan dağıtım dalını olarak
mainmainayarlamalısınız (bkz. Dağıtım dalını değiştirme). Komut Cloud Shell uygulamaDEPLOYMENT_BRANCHayarını komutuylaaz webapp config appsettings setayarlayın.az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'Yerel terminal penceresine dönüp yerel Git deponuza bir Azure uzak deposu ekleyin. yerine <deploymentLocalGitUrl-from-create-step> Web uygulaması oluşturma sayfasından kaydedilen Git uzak url'sini yazın.
git remote add azure <deploymentLocalGitUrl-from-create-step>Aşağıdaki komutla uygulamanızı dağıtmak için Azure uzak deposuna gönderin. Git Kimlik Bilgileri Yöneticisi sizden kimlik bilgileri istendiğinde, dağıtım kullanıcısını yapılandırma'da oluşturduğunuz kimlik bilgilerini, kullanıcı arabiriminde oturum a açma için değil , kimlik bilgilerini Azure portal.
git push azure mainBu komutun çalıştırılması birkaç dakika sürebilir. Çalıştırıldığında, aşağıdaki örneğe benzer bilgiler görüntüler:
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
Uygulamaya göz atma
Dağıtım tamamlandıktan sonra, Web uygulamasının yeniden başlatılması için 10 saniye bekleyin ve sonra Web uygulamasına gidip sonuçları doğrulayın.
http://<app-name>.azurewebsites.net

Not
Uygulama yeniden başlatılırken, tarayıcıda HTTP durum kodunu Error 503 Server unavailable veya Hey, Ruby developers! varsayılan sayfayı gözlemleyebilirsiniz. Uygulamanın tam olarak yeniden başlatılması birkaç dakika sürebilir.
Dağıtımı temizleme
Örnek betik çalıştırıldıktan sonra, kaynak grubunu ve onunla ilişkili tüm kaynakları kaldırmak için aşağıdaki komut kullanılabilir.
az group delete --name myResourceGroup


