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.

  • Git 'ı yükler.

  • 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
    

Deponuzu hazırlayın

Azure App Service yapı sunucusundan otomatik derlemeler almak için, depo köklerinizin 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 Bir başlangıç betiğine server.js, app.js veya package.js
Python * . kopyala, 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şleri/ sürekli Web işleri için sürekli veya tetiklenen Web işleri için uygulama _ verileri/işleri /işleri. Daha fazla bilgi için bkz. kudu WebJobs belgeleri.
İşlevler Bkz. Azure iş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ı ve özel dağıtım betiğini Özelleştirme .

Not

Visual Studio 'da geliştirirseniz, Visual Studio 'nun sizin için bir depo oluşturmasınaizin verin. Proje git kullanılarak dağıtılmaya hemen hazırlanın.

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

  1. 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>.git uygulamasındaki uygulama adınızla kullanın <app-name> .

    git remote add azure <url>
    
  2. İle Azure 'a gönderin git push azure master .

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

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

  5. İçeriğin dağıtıldığını doğrulamak için Azure portal uygulamanıza gidin.

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 uygulama ayarı ' nı kullanın DEPLOYMENT_BRANCH .
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\

Ek kaynaklar