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.

  • Git’i yükleyin.

  • 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.jsveya package.json başlangıç betiği ile
Python *.py, requirements.txt veya 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ü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

  1. 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.

  2. ile git push azure master Azure uzak sunucusuna gönderme (bkz . Dağıtım dalını değiştirme).

  3. 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.

  4. Çıktıyı gözden geçirin. ASP.NET için MSBuild, Node.js npm install ve pip install Python gibi çalışma zamanına özgü otomasyon görebilirsiniz.

  5. İç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 maintaşı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 mainDEPLOYMENT_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 pushbir dal belirtmediyseniz veya değerini içinde .gitconfigayarlamadı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 azureuygulama dağıtım dalı ile eşleşmeyen bir yerel dal gönderdiyseniz. Geçerli dal'ın olduğunu masterdoğ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\

Diğer kaynaklar