Azure App Service için sürekli dağıtım
Not
1 Haziran 2024'den itibaren, yeni oluşturulan tüm App Service uygulamaları adlandırma kuralını <app-name>-<random-hash>.<region>.azurewebsites.net
kullanarak benzersiz bir varsayılan ana bilgisayar adı oluşturma seçeneğine sahip olacaktır. Mevcut uygulama adları değişmeden kalır.
Örnek: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Diğer ayrıntılar için App Service Kaynağı için Benzersiz Varsayılan Ana Bilgisayar Adı'na bakın.
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 | server.js , app.js veya package.json başlangıç betiği ile |
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> 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 kaynağını yapılandırma
Azure portalında App Service uygulamanızın yönetim sayfasına gidin.
Sol bölmede Dağıtım Merkezi'ni seçin. Ardından Ayarlar'ı seçin.
Kaynak kutusunda CI/CD seçeneklerinden birini seçin:
Devam etmek için derleme sağlayıcınıza karşılık gelen sekmeyi seçin.
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.
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.
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.
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.
(İ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.
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
Azure portalında App Service uygulamanızın yönetim sayfasına gidin.
Sol bölmede Dağıtım Merkezi'ni seçin. Ardından Ayarlar>Bağlantısını Kes'i seçin:
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.
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:
- Paketten çıkarma adımını atlayarak uygulamanızı doğrudan ZIP'ten çalıştırın.
- Dağıtım sırasında uygulamanızı durdurun veya çevrimdışı modu etkinleştirin. Daha fazla bilgi için bkz. Dağıtım sırasında kilitli dosya sorunlarını çözme.
- Otomatik değiştirme açıkken bir hazırlama yuvasına dağıtın.
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ı?
- Kullanıcı tarafından atanan kimlik seçeneği GitHub Actions için ne yapar?
- 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"?
- 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"?
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 Connect 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:
- Azure'da kullanıcı tarafından atanan yönetilen kimlik ile GitHub'daki seçtiğiniz depo ve dal arasında federasyon kimlik bilgileri oluşturur.
- Seçili GitHub deponuzdaki federasyon kimlik bilgilerindeki ,
AZURE_TENANT_ID
veAZURE_SUBSCRIPTION_ID
gizli dizileriniAZURE_CLIENT_ID
oluşturur. - Kimliği uygulamanıza atar.
GitHub deponuzdaki bir GitHub Actions iş akışında, OpenID Connect 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öneticisi 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 Connect'i 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.