Azure App Service için sürekli dağıtım

Azure App Service , en son güncelleştirmeleri çekerek GitHub, bitbucketve Azure Repos depolarından sürekli dağıtım yapılmasını mümkün.

Not

Dağıtım işlevinin önceki bir sürümü olan Azure portal Geliştirme Merkezi (klasik) sayfasında Mart 2021 ' de kullanım dışı bırakılmıştır. Bu değişiklik uygulamanızdaki mevcut dağıtım ayarlarını etkilemez ve portaldaki Dağıtım Merkezi sayfasından uygulama dağıtımını yönetmeye devam edebilirsiniz.

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 kaynağını yapılandırma

  1. Azure Portal, App Service uygulamanızın yönetim sayfasına gidin.

  2. Sol bölmede Dağıtım Merkezi' ni seçin. Ayarlar öğesini seçin.

  3. Kaynak kutusunda, CI/CD seçeneklerinden birini seçin:

    Dağıtım kaynağının nasıl seçdiğinin gösterildiği ekran görüntüsü.

Devam etmek için yapı sağlayıcınıza karşılık gelen sekmeyi seçin.

  1. GitHub eylemler varsayılan yapı sağlayıcıdır. Sağlayıcıyı değiştirmek için, sağlayıcıyı Değiştir > App Service derleme hizmeti (kudu) > Tamam' ı seçin.

    Not

    App Service uygulamanızın yapı sağlayıcısı olarak Azure Pipelines kullanmak için cı/CD 'yi doğrudan Azure Pipelines ' den yapılandırın. App Service ' de yapılandırmayın. Azure Pipelines seçeneği yalnızca doğru yönde işaret eder.

  2. GitHub ilk kez dağıtıyorsanız, yetkilendir ' i seçin ve yetkilendirme istemlerini izleyin. Farklı bir kullanıcının deposundan dağıtmak istiyorsanız, hesabı Değiştir' i seçin.

  3. Azure hesabınıza GitHub yetkilendirdikten sonra cı/CD 'yi yapılandırmak için kuruluş, depo ve dalı seçin. Bir kuruluş veya depo bulamazsanız, GitHub üzerinde daha fazla izin etkinleştirmeniz gerekebilir. Daha fazla bilgi için bkz. kuruluşunuzun depolarına erişimi yönetme.

  4. yapı sağlayıcısı olarak GitHub eylemler seçildiğinde, çalışma zamanı yığınını ve sürüm açılan listesini kullanarak istediğiniz iş akışı dosyasını seçebilirsiniz. Azure, bu iş akışı dosyasını, derleme ve dağıtım görevlerini işleyecek şekilde seçtiğiniz GitHub deposuna kaydeder. Değişikliklerinizi kaydetmeden önce dosyayı görmek için Önizleme dosyası' nı seçin.

    Not

    App Service uygulamanızın dil yığın ayarını algılar ve en uygun iş akışı şablonunu seçer. Farklı bir şablon seçerseniz, düzgün şekilde çalıştırılmamış bir uygulama dağıtabilir. daha fazla bilgi için bkz. GitHub eylemleri oluşturma sağlayıcısı 'nın çalışması.

  5. Kaydet’i seçin.

    Seçili depodaki ve daldaki yeni işlemeler artık App Service uygulamanıza sürekli olarak dağıtılır. İşlemeler ve dağıtımları Günlükler sekmesinde izleyebilirsiniz.

Sürekli dağıtımı devre dışı bırakma

  1. Azure Portal, App Service uygulamanızın yönetim sayfasına gidin.

  2. Sol bölmede Dağıtım Merkezi' ni seçin. sonra Ayarlar > bağlantıyı kes' i seçin:

    Bulut klasörünüzün Azure portal App Service uygulamanızın bağlantısının nasıl yapılacağını gösteren ekran görüntüsü.

  3. varsayılan olarak, GitHub Actions iş akışı dosyası deponuzda korunur, ancak uygulamanıza dağıtımı tetiklemeye devam eder. Dosyayı deponuzdan silmek için iş akışı dosyasını Sil' i seçin.

  4. Tamam’ı seçin.

Dağıtım sırasında uygulamama ne olur?

Resmi olarak desteklenen tüm dağıtım yöntemleri, uygulamanın /home/site/wwwroot klasöründeki dosyalarda değişiklik yapın. Bu dosyalar, uygulamalarınızı çalıştırmak için kullanılır. Bu nedenle, kilitli dosyalar nedeniyle dağıtım başarısız olabilir. Dosyaların hepsi aynı anda güncelleştirilmez olduğundan, uygulama dağıtım sırasında tahmin edilemez şekilde davranabilirsiniz. Bu davranış, müşteriye yönelik bir uygulama için istenmeyen bir davranıştır. Bu sorunlardan kaçınmanın birkaç yolu vardır:

GitHub eylemleri derleme sağlayıcısı nasıl kullanılır

GitHub eylemleri derleme sağlayıcısı, GitHub cı/CDiçin bir seçenektir. CI/CD 'yi ayarlamak için bu işlemleri tamamlar:

  • derleme ve dağıtım görevlerini App Service için GitHub deponuza bir GitHub eylemleri iş akışı dosyası mevduın.
  • uygulamanız için yayımlama profilini GitHub gizli dizi olarak ekler. İş akışı dosyası App Service kimlik doğrulaması için bu parolayı kullanır.
  • İş akışı çalıştırma günlüklerinden bilgileri yakalar ve uygulamanızın dağıtım merkezindeki Günlükler sekmesinde görüntüler.

GitHub eylemleri yapı sağlayıcısını şu yollarla özelleştirebilirsiniz:

  • GitHub deponuzda oluşturulduktan sonra iş akışı dosyasını özelleştirin. daha fazla bilgi için bkz. GitHub eylemler için iş akışı sözdizimi. İş akışının Azure/webapps-Deploy eylemiyle App Service için dağıttığınızdan emin olun.
  • Seçilen dal korunuyorsa, yapılandırma kaydedilmeden iş akışı dosyasının önizlemesini devam edebilir ve sonra depoya el ile ekleyebilirsiniz. Bu yöntem, Azure portal günlük tümleştirmesi vermez.
  • Yayımlama profili kullanmak yerine, Azure Active Directory bir hizmet sorumlusu kullanarak dağıtın.

Hizmet sorumlusu kullanarak kimlik doğrulama

Bu isteğe bağlı yapılandırma, varsayılan kimlik doğrulamanın oluşturulan iş akışı dosyasındaki yayımlama profilleriyle yerini alır.

  1. Azure CLI'de az ad SP Create-for-RBAC komutunu kullanarak bir hizmet sorumlusu oluşturun. Aşağıdaki örnekte, <subscription-id> <group-name> ve <app-name> değerlerini kendi değerlerinizle değiştirin:

    az ad sp create-for-rbac --name "myAppDeployAuth" --role contributor \
                                --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name> \
                                --sdk-auth
    

    Önemli

    Güvenlik için, hizmet sorumlusu için gereken en düşük erişimi verin. Önceki örnekteki kapsam, kaynak grubunun tamamı değil, belirli App Service uygulamasıyla sınırlandırılmıştır.

  2. Sonraki adımda, en üst düzey dahil olmak üzere tüm JSON çıkışını kaydedin {} .

  3. GitHub, deponuzda Ayarlar > gizli dizileri > yeni bir gizli dizi ekle' yi seçin.

  4. Azure CLı komutundan tüm JSON çıkışını gizli dizi değeri alanına yapıştırın. Gizli dizi gibi bir ad verin AZURE_CREDENTIALS .

  5. Dağıtım Merkezi tarafından oluşturulan iş akışı dosyasında, azure/webapps-deploy aşağıdaki örneğe benzer şekilde (bir Node.js iş akışı dosyasından değiştirilir), adımı gözden geçirin:

    - name: Sign in to Azure 
    # Use the GitHub secret you added.
    - uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
    - name: Deploy to Azure Web App
    # Remove publish-profile.
    - uses: azure/webapps-deploy@v2
      with:
        app-name: '<app-name>'
        slot-name: 'production'
        package: .
    - name: Sign out of Azure.
      run: |
        az logout
    

Diğer depolardan dağıtma

Windows uygulamalar için, Mercurial gibi portalın doğrudan desteklemediği bir bulut Git veya deposundan sürekli dağıtımı el ile yapılandırabilirsiniz. Kaynak açılan listesinde dış git ' i seçerek bunu yapabilirsiniz. Daha fazla bilgi için bkz. el ile adımları kullanarak sürekli dağıtımı ayarlama.

Diğer kaynaklar