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

Azure Uygulaması Hizmeti, en son güncelleştirmeleri çekerek GitHub, Bitbucket ve Azure Depoları depolarından sürekli dağıtıma olanak tanır.

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 Başlangıç betiğiyle server.js, app.js veya package.json
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/çalıştır.<sürekli Web İşleri için App_Data/jobs/continuous altında uzantı> veya tetiklenen Web İşleri için tetiklenen App_Data/işler/tetiklenenler. 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 kaynağını yapılandırma

  1. Azure portalında App Service uygulamanızın yönetim sayfasına gidin.

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

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

    Screenshot that shows how to choose the deployment source.

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

  1. GitHub Actions varsayılan derleme sağlayıcısıdır. Sağlayıcıyı değiştirmek için Sağlayıcıyı>değiştir App Service Derleme Hizmeti>Tamam'ı seçin.

  2. GitHub'dan ilk kez dağıtıyorsanız Yetkile'yi 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ızı GitHub ile yetkilendirildikten sonra istediğiniz Kuruluş, Depo ve Dal'ı seçin.

    Bir kuruluş veya depo bulamazsanız GitHub'da daha fazla izni etkinleştirmeniz gerekebilir. Daha fazla bilgi için bkz . Kuruluşunuzun depolarına erişimi yönetme.

  4. Daha iyi güvenlik için Kimlik doğrulama türü altında Kullanıcı tarafından atanan kimlik'i seçin. Daha fazla bilgi için bkz . Sık sorulan sorular.

    Not

    Azure hesabınız Kullanıcı tarafından atanan kimlik seçeneği için gerekli izinlere sahipse, Azure sizin için kullanıcı tarafından atanan bir yönetilen kimlik oluşturur. Aksi takdirde Azure yöneticinizle birlikte çalışarak uygulamanızda gerekli role sahip bir kimlik oluşturun ve açılan listeden bu kimliği seçin.

  5. (İsteğe bağlı) Değişikliklerinizi kaydetmeden önce dosyayı görmek için Dosya önizleme'yi seçin. App Service, uygulamanızın dil yığını ayarına göre bir iş akışı şablonu seçer ve bunu seçtiğiniz GitHub deponuza işler.

  6. 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. İşlemeleri ve dağıtımları Günlükler sekmesinden izleyebilirsiniz.

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

  1. Azure portalında App Service uygulamanızın yönetim sayfasına gidin.

  2. Sol bölmede Dağıtım Merkezi'ni seçin. Ardından Ayarlar> Disconnect'i seçin:

    Screenshot that shows how to disconnect your cloud folder sync with your App Service app in the Azure portal.

  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 İş akışı dosyasını sil'i seçin.

  4. Tamam'ı seçin.

Derleme sağlayıcıları nelerdir?

Dağıtım Merkezi'ndeki dağıtım kaynağınıza bağlı olarak, derleme sağlayıcıları için birkaç seçenek görebilirsiniz. Derleme sağlayıcıları derleme, test ve dağıtımı otomatikleştirerek Azure Uygulaması Hizmeti ile bir CI/CD çözümü oluşturmanıza yardımcı olur.

Dağıtım Merkezi'nde bulunan derleme sağlayıcısı seçenekleriyle sınırlı değilsiniz, ancak App Service bunları hızlı bir şekilde ayarlamanıza olanak tanır ve bazı tümleşik dağıtım günlüğü deneyimi sunar.

GitHub Actions derleme sağlayıcısı yalnızca GitHub dağıtımı için kullanılabilir. Uygulamanın Dağıtım Merkezi'nden yapılandırıldığında, CI/CD'yi ayarlamak için şu eylemleri tamamlar:

  • Derleme ve App Service'e dağıtma görevlerini işlemek için GitHub Actions iş akışı dosyasını GitHub deponuza aktarır.
  • Temel kimlik doğrulaması için uygulamanızın yayımlama profilini GitHub gizli dizisi olarak ekler. İş akışı dosyası, App Service ile kimlik doğrulaması yapmak için bu gizli diziyi kullanır.
  • Kullanıcı tarafından atanan kimlik için bkz . Kullanıcı tarafından atanan kimlik seçeneği GitHub Actions için ne yapar?
  • İş akışı çalıştırma günlüklerindeki bilgileri yakalar ve Dağıtım Merkezi'ndeki Günlükler sekmesinde görüntüler.

GitHub Actions derleme 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 Actions için iş akışı söz dizimi. İş akışının azure/webapps-deploy eylemiyle App Service'e dağıtılacağından emin olun.
  • Seçili dal korunuyorsa, yapılandırmayı kaydetmeden iş akışı dosyasının önizlemesini görmeye devam edebilir ve ardından deponuza el ile ekleyebilirsiniz. Bu yöntem, Azure portalıyla günlük tümleştirmesi sunmaz.
  • Temel kimlik doğrulaması veya kullanıcı tarafından atanan bir kimlik kullanmak yerine, Microsoft Entra Id'de bir hizmet sorumlusu kullanarak da dağıtabilirsiniz. Bu, portalda yapılandırılamaz.

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

Resmi olarak desteklenen tüm dağıtım yöntemleri, uygulamanızın /home/site/wwwroot klasöründeki dosyalarda değişiklik yapar. Uygulamanızı çalıştırmak için bu dosyalar kullanılır. Bu dosyalar kilitliyse dağıtım başarısız olabilir. Tüm dosyalar aynı anda güncelleştirilmediğinden uygulama dağıtım sırasında tahmin edilemeyen davranışlar da gösterebilir. Müşterilere yönelik uygulamalarda bu tür davranışlar istenmez. Bu sorunlardan kaçınmanın birkaç yolu vardır:

Sık sorulan sorular

Temel kimlik doğrulaması devre dışı bırakılırsa GitHub Actions derleme sağlayıcısı temel kimlik doğrulamasıyla çalışır mı?

Hayır GitHub Actions'ı kullanıcı tarafından atanan kimlik seçeneğiyle kullanmayı deneyin.

Daha fazla bilgi için bkz . Temel kimlik doğrulaması olmadan dağıtım.

Kullanıcı tarafından atanan kimlik seçeneği GitHub Actions için ne yapar?

GitHub Actions kaynağı altında kullanıcı tarafından atanan kimliği seçtiğinizde App Service, GitHub Actions ile önerilen OpenID Bağlan kimlik doğrulamasını etkinleştirmek için Azure'da ve GitHub'da gerekli tüm kaynakları yapılandırıyor.

App Service özellikle aşağıdaki işlemleri yapar:

GitHub deponuzdaki bir GitHub Actions iş akışında, OpenID Bağlan kullanarak uygulamanızla kimlik doğrulaması yapmak için Azure/oturum açma eylemini kullanabilirsiniz. Örnekler için bkz . İş akışı dosyasını GitHub deponuza ekleme.

Azure hesabınız gerekli izinlere sahipse, App Service kullanıcı tarafından atanan bir yönetilen kimlik oluşturur ve sizin için yapılandırılır. Bu kimlik, uygulamanızın Kimlikler sayfasında gösterilmez. Azure hesabınız gerekli izinlere sahip değilse, gerekli role sahip mevcut bir kimliği seçmeniz gerekir.

"Yönetilen bir kimliğe rol tabanlı erişim atamak ve federasyon kimlik bilgilerini yapılandırmak için bu uygulamada yeterli izniniz yok" hatasını neden görüyorum?

İleti, Azure hesabınızın GitHub Actions için kullanıcı tarafından atanan yönetilen kimlik oluşturmak için gerekli izinlere sahip olmadığını gösterir. Gerekli izinler (uygulamanızın kapsamına göre belirlenmiştir) şunlardır:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

Varsayılan olarak, Kullanıcı Erişimi Yönetici istrator rolü ve Sahip rolü bu izinlere zaten sahiptir, ancak Katkıda Bulunan rolü yoktur. Gerekli izinlere sahip değilseniz, Web Sitesi Katkıda Bulunanı rolüyle kullanıcı tarafından atanan yönetilen kimlik oluşturmak için Azure yöneticinizle birlikte çalışın. Daha sonra Dağıtım Merkezi'nde GitHub>Kimliği açılan listesinden kimliği seçebilirsiniz.

Alternatif adımlar hakkında daha fazla bilgi için bkz . GitHub Actions kullanarak App Service'e dağıtma.

Neden şu hatayı görüyorum: "Bu kimliğin bu uygulamada yazma izinleri yok. Lütfen farklı bir kimlik seçin veya yöneticinizle birlikte çalışarak bu uygulamadaki kimliğinize Web Sitesi Katkıda Bulunanı rolü verin"?

İleti, seçilen kullanıcı tarafından atanan yönetilen kimliğin GitHub deposu ile App Service uygulaması arasında OpenID Bağlan etkinleştirmek için gerekli role sahip olmadığını gösterir. Kimliğin uygulamada şu rollerden birine sahip olması gerekir: Sahip, Katkıda Bulunan, Web Siteleri Katkıda Bulunanı. Kimliğin ihtiyaç duyduğu en düşük ayrıcalıklı rol Web Siteleri Katkıda Bulunanı'dır.

Diğer kaynaklar