Azure Uygulaması Hizmetine yerel Git dağıtımı
Bu nasıl yapılır kılavuzu, uygulamanızı yerel bilgisayarınızdaki bir Git deposundan Azure Uygulaması Hizmetine nasıl dağıtabileceğinizi gösterir.
Not
SCM temel kimlik doğrulaması devre dışı bırakıldığında Yerel Git dağıtımı çalışmaz ve uygulamanın Dağıtım Merkezi'nde Yerel Git dağıtımını yapılandıramazsınız.
Önkoşullar
Bu nasıl yapılır kılavuzundaki adımları izlemek için:
-
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Dağıtmak istediğiniz kodu içeren yerel bir Git deposuna sahip olun. Örnek bir depo indirmek için yerel terminal pencerenizde aşağıdaki komutu çalıştırın:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Deponuzu hazırlama
Azure Uygulaması Service derleme sunucusundan otomatik derlemeler almak için depo kökünüzün projenizde doğru dosyalara sahip olduğundan emin olun.
Çalışma Zamanı | Kök dizin dosyaları |
---|---|
ASP.NET (yalnızca Windows) | *.sln , *.csproj veya default.aspx |
ASP.NET Core | *.sln veya *.csproj |
PHP | index.php |
Ruby (yalnızca Linux) | Gemfile |
Node.js | server.js , app.js veya package.json başlangıç betiği ile |
Python | *.py , requirements.txt veya runtime.txt |
HTML | default.htm , default.html , default.asp , index.htm , , index.html veya 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üne bir .deployment dosyası ekleyin. Daha fazla bilgi için bkz . Dağıtımları özelleştirme ve Özel dağıtım betiği.
Not
Visual Studio kullanıyorsanız, Visual Studio'nın sizin için bir depo oluşturmasına izin verin. Projeniz Git aracılığıyla dağıtıma hemen hazır olur.
Dağıtım kullanıcısı yapılandırma
Bkz. Azure Uygulaması Hizmeti için dağıtım kimlik bilgilerini yapılandırma. Kullanıcı kapsamı kimlik bilgilerini veya uygulama kapsamı kimlik bilgilerini kullanabilirsiniz.
Git özellikli uygulama oluşturma
Zaten bir App Service uygulamanız varsa ve bunun için yerel Git dağıtımını yapılandırmak istiyorsanız, bkz . Bunun yerine var olan bir uygulamayı yapılandırma.
seçeneğiyle --deployment-local-git
çalıştırınaz webapp create
. Örneğin:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
Çıktı şu URL'yi içerir: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Sonraki adımda uygulamanızı dağıtmak için bu URL'yi kullanın.
Mevcut bir uygulamayı yapılandırma
Henüz bir uygulamanız yoksa bkz . Git özellikli uygulama oluşturma.
az webapp deployment source config-local-git
'i çalıştırın. Örneğin:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
Çıktı şu URL'yi içerir: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Sonraki adımda uygulamanızı dağıtmak için bu URL'yi kullanın.
İpucu
Bu URL, kullanıcı kapsamı dağıtım kullanıcı adını içerir. İsterseniz, bunun yerine uygulama kapsamı kimlik bilgilerini kullanabilirsiniz.
Web uygulamasını dağıtma
Yerel terminal penceresinde dizini Git deponuzun köküne değiştirin ve uygulamanızdan aldığınız URL'yi kullanarak bir Git uzak konumu ekleyin. Seçtiğiniz yöntem size url vermiyorsa içinde uygulama adınızla
<app-name>
kullanınhttps://<app-name>.scm.azurewebsites.net/<app-name>.git
.git remote add azure <url>
Not
PowerShell'de New-AzWebApp kullanarak Git özellikli bir uygulama oluşturduysanız, uzak sunucu sizin için zaten oluşturulmuştur.
ile
git push azure master
Azure uzak sunucusuna gönderme (bkz . Dağıtım dalını değiştirme).Git Kimlik Bilgileri Yöneticisi penceresinde Azure oturum açma kimlik bilgilerinizi değil kullanıcı kapsamı veya uygulama kapsamı kimlik bilgilerinizi girin.
Git uzak URL'niz kullanıcı adı ve parolayı zaten içeriyorsa, sizden istenmez.
Çıktıyı gözden geçirin. ASP.NET için MSBuild, Node.js
npm install
vepip install
Python gibi çalışma zamanına özgü otomasyon görebilirsiniz.İçeriğin dağıtıldığını doğrulamak için Azure portalında uygulamanıza göz atın.
Dağıtım dallarını değiştirme
İşlemeleri App Service deponuza gönderdiğinizde App Service, daldaki master
dosyaları varsayılan olarak dağıtır. Birçok Git deposu uygulamasından 'a main
taşındığındanmaster
, App Service deposundaki doğru dala iki yoldan biriyle gönderim yaptığınızdan emin olmanız gerekir:
Şunun gibi bir komutla açıkça dağıtın
master
:git push azure main:master
Uygulama ayarını ayarlayarak dağıtım dalını
DEPLOYMENT_BRANCH
değiştirin ve ardından işlemeleri özel dala gönderin. Bunu Azure CLI ile yapmak için:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Ayrıca, Ayarlar'ın altında Ortam değişkenleri'ni seçip adı ve değeri olan yeni bir Uygulama ayarı ekleyerek Azure portalında
main
DEPLOYMENT_BRANCH
uygulama ayarını değiştirebilirsinizDEPLOYMENT_BRANCH
.
Dağıtım sorunlarını giderme
Azure'da App Service uygulamasında yayımlamak için Git'i kullandığınızda aşağıdaki yaygın hata iletilerini görebilirsiniz:
İleti | Nedeni | Çözüm |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
Uygulama çalışır durumda değil. | Uygulamayı Azure portalında 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ış. |
git remote -v komutunu kullanarak ilişkili URL ile birlikte tüm uzakları listeleyin. Uzak url'nin azure doğru olduğunu doğrulayın. Gerekirse, doğru URL'yi kullanarak bu uzaktan kumandayı kaldırın ve yeniden oluşturun. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
sırasında git push bir dal belirtmediyseniz veya değerini içinde .gitconfig ayarlamadınızpush.default . |
Ana dalı belirterek yeniden çalıştırın git push : git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
üzerindeki azure uygulama dağıtım dalı ile eşleşmeyen bir yerel dal gönderdiyseniz. |
Geçerli dal'ın olduğunu master doğrulayın. Varsayılan dalı değiştirmek için uygulama ayarını kullanın DEPLOYMENT_BRANCH (bkz . Dağıtım dalını değiştirme). |
src refspec [branchname] does not match any. |
Uzak taraftaki main dışında bir dala göndermeye çalıştınız azure . |
Ana dalı belirterek yeniden çalıştırın git push : git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
HTTPS üzerinden büyük bir git deposu göndermeye çalıştığınızda bu hata oluşabilir. | Daha büyük hale getirmek için yerel makinedeki postBuffer 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. |
Ek gerekli modülleri belirten bir package.json dosyasıyla bir Node.js uygulaması dağıttınız. | Hatayla ilgili npm ERR! daha fazla bağlam için bu hatadan önceki hata iletilerini gözden geçirin. Bu hatanın bilinen nedenleri ve buna karşılık gelen npm ERR! iletiler şunlardır: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 1 veya npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |