Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kod dağıtmanın en basit yollarından biri yerel bilgisayarınızdandır. Bu makalede, uygulamanızı yerel bilgisayarınızdaki bir Git deposundan Azure App Service dağıtma adımları gösterilmektedir.
Uyarı
Yerel Git dağıtımı, diğer dağıtım yöntemlerine göre daha az güvenli olan Kaynak Denetim Yöneticisi (SCM) temel kimlik doğrulaması gerektirir. Temel kimlik doğrulaması devre dışı bırakılırsa, uygulamanın Dağıtım Merkezi'nde yerel Git dağıtımını yapılandıramazsınız.
Önkoşullar
Bu makaledeki adımları tamamlamak için şunlar gerekir:
App Services kaynakları oluşturma iznine sahip bir Azure hesabı ve aboneliği. Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.
Git yüklendi ve dağıtılacak uygulama kodunu içeren yerel bir Git deposu.
Yerel Bash terminal pencerenizde aşağıdaki komutu çalıştırarak örnek bir Node.js uygulama deposunu kopyalayabilirsiniz:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.gitAzure CLI komutlarını kullanmak istiyorsanız, yerel makinenizde azure CLI'nın en son sürümü yüklüdür. az login kullanarak Azure'da oturum açın.
Azure PowerShell komutlarını çalıştırmak istiyorsanız, Azure PowerShell'in en son sürümü yüklüdür. Connect-AzAccount kullanarak Azure'da oturum açın.
Deponuzu hazırlama
Otomatik derlemeleri App Service derleme sunucusundan almak için, proje dosyalarınızın depo kökünde doğru dosyaların bulunduğundan emin olun.
| Çalışma Zamanı | Kök dizin dosyaları |
|---|---|
| ASP.NET (yalnızca Windows) |
*.sln, *.csprojveya default.aspx. |
| ASP.NET Çekirdeği |
*.sln veya *.csproj. |
| PHP |
index.php. |
| Ruby (yalnızca Linux) |
Gemfile. |
| Node.js |
server.js, app.js, veya package.json başlatma betiği ile. |
| Piton |
*.py, requirements.txtveya runtime.txt. |
| HTML |
default.htm, default.html, default.asp, index.htm, index.htmlveya iisstart.htm. |
| Web İşleri |
<job_name>/run.<extension> altında App_Data/jobs/continuous sürekli Web İşleri veya App_Data/jobs/triggered tetiklenen Web İşleri için. Daha fazla bilgi için Kudu Web İşleri belgelerine bakın. |
| İşlevler | bkz. Azure İşlevleri için sürekli dağıtım. |
Dağıtımınızı özelleştirmek için, depo kök dizinine bir .deployment dosyası ekleyin. Daha fazla bilgi için Dağıtımları Özelleştir ve Özel Dağıtım Betiği bölümüne bakın.
Tavsiye
Visual Studio sizin için bir depo oluşturabilir. Bu yöntemle, projeniz Git aracılığıyla dağıtım için hemen hazır.
Dağıtım kullanıcı kimlik bilgileri
Uygulamanızın kimliğini doğrulamak ve dağıtmak için dağıtım kullanıcı kimlik bilgilerine ihtiyacınız vardır. Bunlar Azure aboneliği kimlik bilgilerinizden farklıdır ve kullanıcı kapsamı veya uygulama kapsamı kimlik bilgilerini kullanabilirsiniz.
Yerel Git dağıtımı için kullanıcı kapsamındaki bir kullanıcının, parola yerine yalnızca kullanıcı adına ihtiyacı vardır. Kullanıcı kapsamı kullanıcı adını, Azure CLI komutunu az webapp deployment user set --user-name <username>çalıştırarak veya bir uygulamanın Dağıtım Merkezi'ninYerel Git/FTPS kimlik bilgileri sekmesindeki Kullanıcı kapsamı altında ayarlayabilirsiniz.
Kullanıcı kapsamı dağıtım kullanıcınızı oluşturduktan sonra, erişiminiz olan tüm App Service uygulamaları için kullanabilirsiniz. Daha fazla bilgi için bkz . Kullanıcı kapsamı kimlik bilgilerini yapılandırma.
Uygulama kapsamı dağıtım kullanıcısı uygulamaya özgüdür ve bir uygulama oluşturduğunuzda otomatik olarak oluşturulur. Dağıtım için kullanılacak uygulama kapsamı kullanıcı kimlik bilgilerini, uygulamanın Dağıtım Merkezi'ndekiYerel Git/FTPS kimlik bilgileri sekmesinden alabilirsiniz.
Git özellikli uygulama oluşturma ve yapılandırma
Azure CLI, Azure PowerShell veya Azure portalını kullanarak Git özellikli bir uygulama oluşturup yapılandırabilir veya önceden var olan bir uygulama için yerel Git dağıtımını yapılandırabilirsiniz.
Yerel Git dağıtımı için yapılandırılmış yeni bir web uygulaması oluşturmak için az webapp create komutunu seçeneğiyle
--deployment-local-gitçalıştırın. Örneğin:az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:24-lts" --deployment-local-gitZaten var olan bir uygulama için yerel Git dağıtımını yapılandırmak için az webapp deployment source config-local-git komutunu çalıştırın. Örneğin:
az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
Her iki komut da url içeren bir çıkış oluşturur, örneğin:
Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'
Yukarıdaki URL , kullanıcı kapsamı dağıtımı kullanıcı adınıcontoso-user içerir. Kullanıcı kapsamı dağıtım kullanıcı adınız yoksa, URL uygulama kapsamı kullanıcı adını kullanır, örneğin https://$myApp@myApp.scm.azurewebsites.net/myApp.git.
Sonraki adımda uygulamanızı dağıtmak için bu Git kopyası URL'sini kullanın.
Web uygulamasını dağıtma
Uygulamayı Azure'a dağıtmak için gerekirse bir uzak dal oluşturun, doğru dala dağıttığınızdan emin olun ve kodunuzu uzak dala gönderin.
Yeni uzak dal oluştur
Örnek koddan uygulamayı oluşturmak için Azure PowerShell New-AzWebApp kullandıysanız uzak azure sunucu zaten oluşturulmuştur. Aksi takdirde, uzaktan kumandayı oluşturmak için şu yönergeleri izleyin:
Yerel terminalde dizini kopyalanmış Git deponuzun köküne değiştirin.
Git kopya URL'nizi kullanarak
azureadlı bir Git uzak deposu ekleyin. Git kopya URL'nizi bilmiyorsanız kullanınhttps://<app-name>.scm.azurewebsites.net/<app-name>.git.git remote add azure <git-clone-url>
Doğru branşa gönder
App Service depoları dosyaları varsayılan olarak master dalına dağıtır. Önceden var olan yerel dosyalarınız master deponuzun dalındaysa, artık git push azure master komutunu çalıştırarak uygulamanızı dağıtabilirsiniz.
Ancak, bu makalenin örnek kod deposu da dahil olmak üzere birçok Git deposu, main veya başka bir varsayılan dal adını kullanır. Doğru dala dağıtmak için, ya uzak master dalına açıkça dağıtmanız ya da dağıtım dalını main veya başka bir dal olarak değiştirip bu dala dağıtmanız gerekir.
Aşağıdaki master komutu kullanarak dalınızdan main 'a push açıkça dağıtın:
git push azure main:master
İsterseniz uygulamanızın DEPLOYMENT_BRANCH ayarını main olarak değiştirin ve ardından aşağıdaki gibi doğrudan main öğesine gönderebilirsiniz.
Azure CLI:
az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure mainAzure portalı:
- Uygulamanızın portal sayfasında, sol gezinti menüsündeki Ayarlar'ın altında Ortam değişkenleri'ni seçin.
- Ekle'yi seçin, DEPLOYMENT_BRANCH adı ve değeri main olan bir uygulama ayarı ekleyin ve Uygula'yı seçin.
- Terminal penceresinde komutunu çalıştırın
git push azure main.
Dağıtımı tamamlayın ve doğrulayın
Kodunuzu gönderdikten sonra Git Kimlik Bilgileri Yöneticisi iletişim kutusu görüntülenirse, kullanıcı kapsamı dağıtımı kullanıcı adınızı veya uygulama kapsamı kullanıcı adınızı ve parolanızı girin. Git uzak URL'niz zaten oturum açma bilgilerini içeriyorsa, girmeniz istenmez.
Komutun çıkışını push gözden geçirin.
npm install Node.js, MSBuild ASP.NET veya pip install Python gibi çalışma zamanına özgü otomasyon görebilirsiniz. Hata alırsanız bkz. Dağıtım sorunlarını giderme.
Azure portalına gidin ve uygulamanın Genel Bakış sayfasında Varsayılan etki alanı bağlantısını seçerek uygulamanın başarıyla dağıtıldığını doğrulayın. Uygulamanın bir tarayıcı sekmesinde açılması ve Hello World! görüntülenmesi gerekir.
Dağıtım sorunlarını giderme
Azure'da bir App Service uygulamasında yayımlamak için yerel Git kullandığınızda aşağıdaki yaygın hatalar oluşabilir:
| İleti | Nedeni | Çözüm |
|---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
Uygulama çalışmıyor. | Azure portalında uygulamayı başlatın. Web uygulaması durdurulduğunda Git dağıtımı kullanılamaz. |
Couldn't resolve host 'hostname' |
Uzaktan kumandanın azure adres bilgileri yanlış. |
Tüm uzakları ve ilişkili URL'leri listelemek için git remote -v komutunu kullanın. Uzak url'nin azure doğru olduğunu doğrulayın. Gerekirse, git remote remove kullanarak yanlış URL'yi kaldırın ve ardından uzak URL'yi doğru URL ile yeniden oluşturun. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
git push çalıştırdığınızda bir dal belirtmediniz veya push.default değerini .gitconfig içinde ayarlamadınız. |
git push yeniden çalıştırın ve git push azure <branch> ile doğru dalı belirtin. |
Error - Changes committed to remote repository but deployment to website failed. |
Bir yerel dalı, azure üzerindeki uygulama dağıtım dalıyla eşleşmeyen bir şekilde gönderdiniz. |
Geçerli dalın master olduğunu doğrulayın veya doğru dala gönderme talimatlarını izleyerek dağıtım dalını değiştirin. |
src refspec [branchname] does not match any. |
main uzak deposunda azure dışında bir dalı göndermeye çalıştınız. |
Yeniden git push çalıştırın ve main dalını git push azure main ile belirtin. |
RPC failed; result=22, HTTP code = 5xx. |
HTTPS üzerinden büyük bir Git deposu göndermeye çalıştınız. |
postBufferiçin daha yüksek bir değer ayarlamak için yerel bilgisayardaki git yapılandırmasını değiştirin. Örneğin: git config --global http.postBuffer 524288000. |
Error - Changes committed to remote repository but your web app not updated. |
Eklenen gerekli modülleri belirten birpackage.jsondosyasıyla bir Node.js uygulaması dağıttınız. | Daha fazla bağlam için bu hatadan önce görüntülenen npm ERR! hata iletilerini gözden geçirin. Bu hatanın aşağıdaki bilinen nedenleri ilgili npm ERR! iletileri oluşturur:Hatalı biçimlendirilmiş package.json dosyası: npm ERR! Couldn't read dependencies.Yerel modülün Windows için ikili dağıtımı yoktur: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1veya npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |