Azure App Service için yerel git dağıtımı
Bu nasıl yapılır Kılavuzu, uygulamanızı yerel bilgisayarınızdaki bir git deposundan Azure App Service için nasıl dağıtacağınızı gösterir.
Önkoşullar
Bu nasıl yapılır kılavuzundaki adımları takip etmek için:
-
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Dağıtmak istediğiniz koda sahip yerel bir git deposuna sahip olabilirsiniz. Örnek bir depoyu 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
Depoyu hazırlama
Derleme sunucusundan otomatik derlemeleri Azure App Service için depo kök dizinde projenize doğru dosyaların olduğundan emin olun.
| Çalışma Zamanı | Kök dizin dosyaları |
|---|---|
| ASP.NET (Windows) | *.sln, *.csproj, veya default.aspx |
| ASP.NET Core | *.sln veya *.csproj |
| PHP | Index.php |
| Ruby (yalnızca Linux) | Gemfile |
| Node.js | server.js betiğiyleapp.js, package.jsveya yeniden başlatma |
| 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> Uygulama _ Verileri/işler/sürekli Web İşleri için sürekli veya Uygulama _ Verileri/işler/tetiklenen Web İşleri için tetiklenen altında. Daha fazla bilgi için Kudu WebJobs belgelerine bakın. |
| İşlevler | Bkz. sürekli dağıtım Azure İşlevleri. |
Dağıtımınızı özelleştirmek için depo köküne bir .deployment dosyası dahil olun. 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 depo oluşturmanızı sağlar. Projeniz hemen Git aracılığıyla dağıtım için hazır olur.
Dağıtım kullanıcısı yapılandırma
Bkz. Azure App Service için dağıtım kimlik bilgilerini yapılandırma. Kullanıcı kapsamı kimlik bilgilerini ya da uygulama kapsamı kimlik bilgilerini kullanabilirsiniz.
Git etkin bir uygulama oluşturma
Zaten bir App Service uygulamanız varsa ve yerel git dağıtımını yapılandırmak istiyorsanız, bunun yerine mevcut bir uygulamayı yapılandırma konusuna bakın.
az webapp create --deployment-local-git Seçeneğiyle çalıştırın. Örnek:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
Çıktı, şunun gibi bir URL içerir: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git . Uygulamanızı bir sonraki adımda dağıtmak için bu URL 'YI kullanın.
Mevcut bir uygulamayı yapılandırma
Henüz bir uygulama oluşturmadıysanız bunun yerine Git etkin bir uygulama oluşturma bölümüne bakın.
Öğesini çalıştırın az webapp deployment source config-local-git . Örnek:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
Çıktı, şunun gibi bir URL içerir: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git . Uygulamanızı bir sonraki adımda 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 bir Terminal penceresinde, git deponuzun kök dizinine geçin ve uygulamanızdan aldığınız URL 'YI kullanarak bir git uzak ekleyin. Seçtiğiniz yöntem size bir URL sunmazsa,
https://<app-name>.scm.azurewebsites.net/<app-name>.gituygulamasındaki uygulama adınızla kullanın<app-name>.git remote add azure <url>Not
PowerShell 'de New-AzWebApp kullanarak git özellikli bir uygulama oluşturduysanız, uzak, sizin için zaten oluşturulur.
İle Azure uzak uygulamasına gönderin
git push azure master(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ınızı veya uygulama kapsamı kimlik bilgilerinizigirin.
Git uzak URL 'niz zaten Kullanıcı adı ve parola içeriyorsa sizden uyarılmayacaksınız.
Çıktıyı gözden geçirin. Node.js ve Python için MSBuild ASP.NET gibi çalışma zamanına özgü otomasyon görebilirsiniz
npm installpip install.İçeriğin dağıtıldığını doğrulamak için Azure portal uygulamanıza gidin.
Dağıtım dalını Değiştir
Yürütmeleri App Service deponuza gönderdiğinizde, App Service dosyaları master Varsayılan olarak dala dağıtır. Birçok git master main deposu ' dan ' a geçiş yaptığından, App Service deposundaki doğru dala iki şekilde gönderdiğinizden emin olmanız gerekir:
masterŞunun gibi bir komutla açık olarak dağıtın:git push azure main:masterUygulama ayarını ayarlayarak dağıtım dalını değiştirin
DEPLOYMENT_BRANCH, ardından işlemeleri özel dala gönderin. Azure CLı ile yapmak için:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Dağıtım sorunlarını giderme
Azure 'da bir App Service uygulamasına yayımlamak için git kullandığınızda aşağıdaki genel 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 başlatın. Web uygulaması durdurulduğunda git dağıtımı kullanılamaz. |
Couldn't resolve host 'hostname' |
' Azure ' uzak için adres bilgileri yanlış. | git remote -vILIŞKILI URL ile birlikte tüm uzaktan kumandalar listelemek için komutunu kullanın. ' Azure ' uzak için URL 'nin doğru olduğundan emin olun. Gerekirse, doğru URL 'YI kullanarak bu uzak kopyayı 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 bir dal belirtmediniz veya ' git push push.default de değer ayarlamadıysanız .gitconfig . |
git pushAna dalı belirterek yeniden çalıştırın: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
' Azure ' üzerinde uygulama dağıtım dalında eşleşmeyen bir yerel dal gönderdiniz. | Geçerli dalın olduğunu doğrulayın master . Varsayılan dalı değiştirmek için DEPLOYMENT_BRANCH uygulama ayarını kullanın (bkz. dağıtım dalını değiştirme). |
src refspec [branchname] does not match any. |
' Azure ' uzak üzerinde ana dışında bir dala gönderim çalıştınız. | git pushAna dalı belirterek yeniden çalıştırın: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
HTTPS üzerinden büyük bir git deposu göndermeye çalışırsanız bu hata oluşabilir. | Daha büyük olması için yerel makinedeki git yapılandırmasını değiştirin postBuffer . Örneğin: git config --global http.postBuffer 524288000. |
Error - Changes committed to remote repository but your web app not updated. |
Bir Node.js uygulamasını, ek gerekli modülleri belirten package.js bir dosya ile dağıttınız. | Hatada npm ERR! daha fazla bağlam için bu hatadan önce hata iletilerini gözden geçirin. Aşağıda bu hatanın bilinen nedenleri ve ilgili npm ERR! iletiler verilmiştir:Dosyada hatalı biçimlendirilmiş package.js: npm ERR! Couldn't read dependencies.Yerel modülün Windows için ikili bir dağıtımı yok: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 veya npm ERR! [modulename@version] preinstall: \make || gmake\ |
