Aracılığıyla paylaş


Azure App Service’ta hazırlık ortamları ayarlama

Web uygulamanızı, Linux'ta web uygulamasını, mobil arka ucu veya API uygulamasını Azure Uygulaması Hizmeti'ne dağıttığınızda, varsayılan üretim yuvası yerine ayrı bir dağıtım yuvası kullanabilirsiniz. Bir App Service planının Standart, Premium veya Yalıtılmış katmanında çalışıyorsanız bu yaklaşım kullanılabilir. Dağıtım yuvaları, kendi konak adlarına sahip canlı uygulamalardır. Uygulama içeriği ve yapılandırma öğeleri, üretim yuvası dahil olmak üzere iki dağıtım yuvası arasında değiştirilebilir.

Uygulamanızı üretim dışı bir yuvaya dağıtmanın aşağıdaki avantajları vardır:

  • Üretim ortamına geçirmeden önce uygulama değişikliklerini doğrulayabilirsiniz.

  • Üretimde kullanmadan önce tüm boşluk örneklerinin ısıtıldığından emin olabilirsiniz. Bu yaklaşım, uygulamanızı dağıtırken kesintiyi ortadan kaldırır. Trafik yeniden yönlendirmesi sorunsuz. Değiştirme işlemleri nedeniyle hiçbir istek ret edilmez.

    Değiştirme öncesi doğrulama gerekli olmadığında otomatik değiştirme yapılandırarak bu iş akışının tamamını otomatikleştirebilirsiniz.

  • Değiştirme işleminden sonra, önceden hazırlanmış olan uygulamanın yuvasında artık önceki üretim uygulaması bulunur. Üretim alanına aktarılan değişiklikler beklediğiniz gibi olmadıysa, bilinen son iyi sitenizi geri almak için aynı değişimi hemen gerçekleştirebilirsiniz.

Dağıtım yuvalarını kullanmak için ek ücret alınmaz. Her App Service planı katmanı farklı sayıda dağıtım yuvalarını destekler. Uygulamanızın katmanının desteklediği yuva sayısını öğrenmek için bkz. App Service sınırları.

Uygulamanızı farklı bir katmana ölçeklendirmek için hedef katmanın uygulamanızın zaten kullandığı yuva sayısını desteklediğinden emin olun. Örneğin, uygulamanızın beşten fazla yuvası varsa ölçeği Standart katmana indiremezsiniz. Standart katman yalnızca beş dağıtım yuvasını destekler.

Aşağıdaki video, Azure App Service'te hazırlama ortamlarının nasıl ayarlandığını göstererek bu makaledeki adımları tamamlar.

Önkoşullar

Slot ekle

Birden çok dağıtım yuvasını etkinleştirebilmeniz için uygulamanın Standart, Premium veya Yalıtılmış katmanında çalışıyor olması gerekir.

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

  2. Sol menüde Dağıtım>yuvalarını seçin. Ardından Ekle'yi seçin.

    Uyarı

    Uygulama henüz Standart, Premium veya Yalıtılmış katmanında değilse Yükselt'i seçin. Devam etmeden önce uygulamanızın Ölçek sekmesine gidin.

  3. Yuva Ekle iletişim kutusunda yuvaya bir ad verin ve başka bir dağıtım yuvasından uygulama yapılandırması kopyalanıp kopyalanmayacağını seçin. Devam etmek için Ekle'yi seçin.

    Portalda 'hazırlama' adlı yeni bir dağıtım yuvası yapılandırma seçimlerini gösteren ekran görüntüsü.

    Bir yapılandırmayı var olan herhangi bir yuvadan kopyalayabilirsiniz. Kopyalanabilen ayarlar arasında uygulama ayarları, bağlantı dizesi, dil çerçevesi sürümleri, web yuvaları, HTTP sürümü ve platform bitliği bulunur.

    Uyarı

    Şu anda, özel uç nokta yuvalar arasında klonlanmıyor.

  4. Ayarları girdikten sonra, iletişim kutusunu kapatmak için Kapat'ı seçin. Yeni yuva artık Dağıtım yuvaları sayfasında görünür. Varsayılan olarak, Traffic % yeni yuva için 0 olarak ayarlanır ve tüm müşteri trafiği üretim yuvasına yönlendirilir.

  5. Kaynak sayfasını açmak için yeni dağıtım yuvasını seçin.

    Portalda dağıtım yuvasının yönetim sayfasının nasıl açıldığını gösteren ekran görüntüsü.

    Hazırlık yuvası, diğer App Service uygulamalarında olduğu gibi bir yönetim sayfasına sahiptir. Yuvanın yapılandırmasını değiştirebilirsiniz. Dağıtım yuvasını görüntülediğiniz anımsatmak için uygulama adı ve yuva adı URL'de görünür. Uygulama türü App Service (Slot) şeklindedir. Kaynağınız grubunda aynı tanımlamalarla ayrı bir uygulama olarak alanı da görebilirsiniz.

  6. Slot'un kaynak sayfasında uygulama URL'sine tıklayın. Dağıtım yuvasının kendi ana bilgisayar adı vardır ve aynı zamanda canlı bir uygulamadır. Dağıtım yuvasına genel erişimi sınırlamak için bkz. Azure App Service erişim kısıtlamalarını ayarlama.

Ayarları farklı bir yuvadan kopyalasanız bile yeni dağıtım yuvasında içerik yoktur. Örneğin, Git ile bu yuvaya yayımlayabilirsiniz. Farklı bir depo dalından veya farklı bir depodan hedefe dağıtabilirsiniz. Azure App Service'ten yayımlama profili alma makalesi, slot'a dağıtım için gereken bilgileri sağlayabilir. Visual Studio, içeriği yuvaya dağıtmak için profili içeri aktarabilir.

Yuvanın URL'si biçimindedir http://sitename-slotname.azurewebsites.net. URL uzunluğunu gerekli DNS sınırları içinde tutmak için site adı 40 karakterde kesilir. Birleştirilmiş site adı ve yuva adı 59 karakterden az olmalıdır.

Değiştirme sırasında ne olduğunu anlamak

Değiştirme işlemi adımları

İki yuvayı değiştirdiğinizde App Service, hedef yuvanın kapalı kalma süresi yaşamadığından emin olmak için aşağıdakileri yapar:

  1. Hedef yuvadan (örneğin, üretim yuvası) aşağıdaki ayarları kaynak yuvanın tüm örneklerine uygulayın:

    Kaynak yuvaya herhangi bir ayar uygulandığında, değişiklik kaynak yuvadaki tüm örneklerin yeniden başlatılmasını tetikler. Önizleme ile değiştirme sırasında bu eylem, ilk aşamanın sonunu işaretler. Değiştirme işlemi duraklatıldı. Kaynak yuvanın, hedef yuva ayarlarıyla doğru şekilde çalıştığını doğrulayabilirsiniz.

  2. Kaynak yuvasındaki her örneğin yeniden başlatılmasının tamamlanmasını bekleyin. Herhangi bir örnek yeniden başlatılamazsa, değiştirme işlemi kaynak yuvadaki tüm değişiklikleri geri döndürür ve işlemi durdurur.

  3. Yerel önbellek etkinleştirildiyse, kaynak yuvanın her örneğinde uygulama köküne (/) bir HTTP isteğinde bulunarak yerel önbellek başlatmayı tetikleyin. Her örnek herhangi bir HTTP yanıtı döndürene kadar bekleyin. Yerel önbellek başlatma, her örnekte başka bir yeniden başlatmaya neden olur.

  4. Özel ısınma ile otomatik değiştirme etkinleştirildiyse, kaynak yuvanın her örneğinde özel uygulama başlatmayı tetikleyin.

    Belirtilmezse applicationInitialization, her örnekteki kaynak yuvasının uygulama köküne bir HTTP isteği gönderin.

    Bir örnek herhangi bir HTTP yanıtı döndürürse, bu yanıtın ısınmış olduğu kabul edilir.

  5. Kaynak yuvadaki tüm örnekler başarıyla ısındıysa, yönlendirme kurallarını değiştirerek iki yuvayı değiştirin. Bu adımdan sonra hedef yuvada (örneğin, üretim yuvası) önceden kaynak yuvada ısıtılmış olan uygulama yer alır.

  6. Kaynak yuvada daha önce hedef yuvada olan değiştirme öncesi uygulama olduğuna göre, tüm ayarları uygulayarak ve örnekleri yeniden başlatarak aynı işlemi gerçekleştirin.

Değiştirme işleminin herhangi bir noktasında, değiştirilen uygulamaları başlatma işleminin tüm çalışmaları kaynak yuvada gerçekleşir. Değiştirme işleminin başarılı veya başarısız olmasına bakılmaksızın kaynak yuva hazırlanırken ve ısınırken hedef yuva çevrimiçi kalır. Hazırlama yuvasını üretim yuvasıyla değiştirmek için üretim yuvasının her zaman hedef yuva olduğundan emin olun. Bu şekilde, değiştirme işlemi üretim uygulamanızı etkilemez.

Uyarı

Eski üretim örnekleriniz bu değiştirme işleminden sonra hazırlık ortamına taşındı. Bu örnekler, değiştirme işleminin son adımında geri dönüştürülür. Uygulamanızda uzun süre çalışan işlemler varsa, çalışanlar geri dönüşüme geçtiğinde bunlar terk edilmiş olur. Bu durum işlev uygulamaları için de geçerlidir. Uygulama kodunuzun hataya dayanıklı bir şekilde yazıldığını doğrulayın.

Yuvayı açılamaz hale getirme adımları

Başka bir dağıtım yuvasından bir yapılandırmayı kopyaladığınızda, kopyalanan yapılandırma düzenlenebilir. Bazı yapılandırma öğeleri, değişim sırasında içeriği devam ettirir (yuvaya özgü değildir). Diğer yapılandırma öğeleri, değiştirme işleminden sonra aynı yuvada kalır ( yuvaya özeldir).

Yuvaları değiştirdiğinizde, bu ayarlar değiştirilir:

  • Dil yığını ve sürüm, 32 bit ve 64 bit
  • Uygulama ayarları (bir bölüme veya alana bağlı kalacak şekilde yapılandırılabilir)
  • Bağlantı dizeleri (belli bir yuvaya bağlanacak şekilde yapılandırılabilir)
  • Bağlı depolama hesapları (bir yuvaya bağlı kalmak için yapılandırılabilir)
  • İşleyici eşlemeleri
  • Genel sertifikalar
  • WebJobs içeriği
  • Karma bağlantılar (şu anda)
  • Hizmet uç noktaları (şu anda)
  • Azure Content Delivery Network (şu anda)
  • Yol eşlemeleri

Yuvaları değiştirdiğinizde, bu ayarlar değiştirilmez:

  • Önceki listede belirtilmeyen genel ayarlar
  • Yayımlama uç noktaları
  • Özel alan adları
  • Abonelik dışı sertifikalar ve TLS/SSL ayarları
  • Ölçek ayarları
  • WebJobs zamanlayıcısı
  • IP kısıtlamaları
  • Her Zaman Açık
  • Tanılama ayarları
  • Kökenler arası kaynak paylaşımı (CORS)
  • Sanal ağ tümleştirmesi
  • Yönetilen kimlikler ve ilgili ayarlar
  • Sonekle biten ayarlar _EXTENSION_VERSION
  • Service Connector'ın oluşturduğu ayarlar

Uyarı

Ayarları değiştirilebilir hale getirmek için uygulamanın her yuvasına uygulama ayarını WEBSITE_OVERRIDE_PRESERVE_DEFAULT_STICKY_SLOT_SETTINGS ekleyin. Değerini 0 veya false olarak ayarlayın. Bu ayarların tümü değiştirilebilir veya tümü değiştirilebilir değildir. Yalnızca bazı ayarları değiştirilebilir yapamazsınız, diğerlerini değiştiremezsiniz. Yönetilen kimlikler hiçbir zaman değiştirilmez. Bu geçersiz kılma uygulaması ayarı bunları etkilemez.

Eşlenmemiş ayarlara uygulanan bazı uygulama ayarları da değiştirilmez. Örneğin, tanılama ayarları değiştirilemediği için, yuva ayarları olarak görünmeseler bile WEBSITE_HTTPLOGGING_RETENTION_DAYS ve DIAGNOSTICS_AZUREBLOBRETENTIONDAYS gibi ilgili uygulama ayarları da değiştirilmez.

Bir uygulama ayarını veya bağlantı dizesini değiştirilmemiş belirli bir yuvaya bağlı olacak şekilde yapılandırmak için:

  1. Bu yuva için Ayarlar>Ortam Değişkeni bölümüne gidin.

  2. Bir ayar ekleyin veya düzenleyin ve ardından Dağıtım yuvası ayarı'nu seçin. Bu onay kutusunun seçilmesi App Service'e ayarın değiştirilemez olduğunu bildirir.

  3. seçin, sonra daUygula'yı seçin.

Azure portalında bir uygulama ayarını yuva ayarı olarak yapılandırma onay kutusunu gösteren ekran görüntüsü.

Dağıtım yuvalarını değiştirme

Uygulamanızın Dağıtım yuvaları sayfasında ve Genel Bakış sayfasında dağıtım yuvalarını değiştirebilirsiniz.

Bir uygulamayı dağıtım yuvasından üretime geçirmeden önce, üretimin hedef yuvanız olduğundan ve kaynak yuvadaki tüm ayarların tam olarak üretimde olmasını istediğiniz şekilde yapılandırıldığından emin olun.

  1. Uygulamanızın Dağıtım yuvaları sayfasına gidin ve Değiştir'i seçin.

    Portalda değiştirme işlemi başlatma seçimlerini gösteren ekran görüntüsü.

    Değiştir iletişim kutusu, seçili kaynaktaki ayarları ve değiştirilecek hedef yuvaları gösterir.

  2. İstediğiniz Kaynak ve Hedef yuvalarını seçin. Hedef genellikle üretim bölmesidir. Ayrıca , Kaynak yuva değişiklikleri ve Hedef yuva değişiklikleri sekmelerini seçin ve yapılandırma değişikliklerinin beklendiğini doğrulayın. Bitirdiğinizde, yuvaları hemen değiştirip Değişimi Başlat seçeneğini belirleyebilirsiniz.

    Portalda değiştirme işlemini yapılandırma ve tamamlama seçimlerini gösteren ekran görüntüsü.

    Değiştirme işlemi gerçekleşmeden önce hedef yuvanızın yeni ayarlarla nasıl çalışacağını görmek için Değiştirmeyi Başlat'ı seçmeyin. Bu makalenin devamında önizlemeyle değiştirme bölümündeki yönergeleri izleyin.

  3. İletişim kutusunu kapatmak için "Kapat" seçin.

Herhangi bir sorun yaşıyorsanız, bu makalenin ilerleyen bölümlerinde Değiştirme Sorunlarını Giderme kısmına bakın.

Önizleme ile takas (çok aşamalı takas)

Hedef yuva olarak üretime geçmeden önce, uygulamanın değiştirilen ayarlarla çalıştığını doğrulayın. Kaynak yuva, görev açısından kritik uygulamalar için tercih edilen değiştirme işlemi tamamlanmadan önce de ısıtılır.

Önizleme ile değiştirme işlemi gerçekleştirdiğinizde App Service aynı değiştirme işlemini gerçekleştirir ancak ilk adımdan sonra duraklatılır. Daha sonra değiştirme işlemini tamamlamadan önce ön izleme yuvasındaki sonucu doğrulayabilirsiniz.

Değiştirme işlemini iptal ederseniz App Service yapılandırma öğelerini kaynak yuvaya yeniden ekler.

Uyarı

Site kimlik doğrulaması yuvalardan birinde etkinleştirildiğinde, önizleme ile takas özelliğini kullanamazsınız.

  1. Dağıtım yuvalarını değiştirme bölümündeki adımları izleyin, ancak yerine Önizlemeli değişiklik yap'ı seçin.

    İletişim kutusu, ilk aşamada kaynak yuvadaki yapılandırmanın nasıl değiştiğini ve ikinci aşamada kaynak ve hedef yuvanın nasıl değiştiğini gösterir.

  2. Değişimi başlatmaya hazır olduğunuzda Başlat’ı Seçin.

    İlk aşama tamamlandığında, iletişim kutusu size bildirir.

  3. Bekleyen değişimi tamamlamaya hazır olduğunuzda Değiştirme eylemindeDeğişimi Tamamla'yı ve ardından Değiştirme işlemini Tamamla düğmesini seçin.

    Portalda önizleme ile değiştirmenin nasıl yapılandırıldığını gösteren ekran görüntüsü.

    Bekleyen değişimi iptal etmek için, bunun yerine Değişimi İptal Et'i ve ardından Değişimi İptal Et düğmesini seçin.

  4. bitirdiğinizde, iletişim kutusunu kapatmak için Kapat'ı seçin.

Herhangi bir sorun yaşıyorsanız, bu makalenin ilerleyen bölümlerinde Değiştirme Sorunlarını Giderme kısmına bakın.

Takas işlemini geri alma

Yuva değiştirme işleminden sonra hedef yuvada (örneğin, üretim yuvası) herhangi bir hata oluşursa, aynı iki yuvayı hemen değiştirerek yuvaları önceden değiştirme durumlarına geri yükleyin.

Otomatik değişimi yapılandırma

Otomatik değiştirme, uygulamanızı sıfır kesinti süresi ve uygulama müşterileri için sıfır kapalı kalma süresiyle sürekli dağıtmak istediğiniz Azure DevOps senaryolarını daha verimli hale getirir. Otomatik değiştirme bir yuvadan üretime etkinleştirildiğinde, kod değişikliklerinizi bu yuvaya her gönderdiğinizde App Service, kaynak yuvada ısındıktan sonra uygulamayı otomatik olarak üretime değiştirir.

Uyarı

Otomatik değiştirme, Linux'taki web uygulamalarında ve Kapsayıcılar için Web App'te desteklenmez.

Üretim yuvası için otomatik değişimi yapılandırmadan önce üretim dışı bir hedef yuvada test etmeyi göz önünde bulundurun.

  1. Uygulamanızın kaynak sayfasına gidin. Dağıtım>Dağıtım yuvalarını seçin ve ardından istediğiniz kaynak yuvayı seçin.

  2. Sol menüde Ayarlar>Yapılandırma>Genel ayarlar'ı seçin.

  3. Otomatik değişim etkinleştirildiğindeAçık'ı seçin. Dağıtım yuvasını otomatik değiştirme için hedef yuvayı seçin. Ardından komut çubuğunda Kaydet'i seçin.

    Otomatik değiştirme işlemini portaldaki üretim yuvasına yapılandırma seçimlerini gösteren ekran görüntüsü.

  4. Kaynak yuvaya bir kod gönderme işlemi çalıştırın. Otomatik değiştirme işlemi kısa bir süre sonra gerçekleşir. Güncelleştirme, hedef yuvanızın URL'sine yansıtılır.

Herhangi bir sorun yaşıyorsanız, bu makalenin ilerleyen bölümlerinde Değiştirme Sorunlarını Giderme kısmına bakın.

Özel ısınmayı belirtme

Bazı uygulamalar, değiştirme işleminden önce özel ısınma eylemleri gerektirebilir. içindeki yapılandırma öğesini applicationInitializationkullanarak Web.config bu özel eylemleri belirtebilirsiniz. Değiştirme işlemi , hedef yuvayla değiştirmeden önce bu özel ısınmanın bitmesini bekler. Örnek bir Web.config parça aşağıda verilmişti:

<system.webServer>
    <applicationInitialization>
        <add initializationPage="/" hostName="[app hostname]" />
        <add initializationPage="/Home/About" hostName="[app hostname]" />
    </applicationInitialization>
</system.webServer>

öğesini özelleştirme applicationInitialization hakkında daha fazla bilgi için En yaygın dağıtım yuvası değiştirme hataları ve bunların nasıl düzeltileceğini içeren blog gönderisine bakın.

Ayrıca, aşağıdaki uygulama ayarlarını kullanarak ısınma davranışını özelleştirebilirsiniz:

  • WEBSITE_SWAP_WARMUP_PING_PATH: Sitenizi ısıtmak için HTTP üzerinden ping gönderme yolu. Değer olarak eğik çizgiyle başlayan özel bir yol belirterek bu uygulama ayarını ekleyin. /statuscheck bunun bir örneğidir. Varsayılan değer şudur: /.
  • WEBSITE_SWAP_WARMUP_PING_STATUSES: Isınma işlemi için geçerli HTTP yanıt kodları. Http kodlarının virgülle ayrılmış listesiyle bu uygulama ayarını ekleyin. 200,202 bunun bir örneğidir. Döndürülen durum kodu listede yoksa, ısınma ve değiştirme işlemleri durdurulur. Varsayılan olarak, tüm yanıt kodları geçerlidir.
  • WEBSITE_WARMUP_PATH: Sitenin yeniden başlatıldığında (yalnızca yuva değişimi sırasında değil) ping'lenmesi gereken, sitedeki göreli bir yol. Örnek değerler şunlardır/statuscheck: veya kök yolu. /

<applicationInitialization> Yapılandırma öğesi her uygulama başlangıcının bir parçasıdır, ancak ısınma davranışı için uygulama ayarları yalnızca yuva değiştirme işlemleri için geçerlidir.

Herhangi bir sorun yaşıyorsanız, bu makalenin ilerleyen bölümlerinde Değiştirme Sorunlarını Giderme kısmına bakın.

Değişimi izleme

Değiştirme işleminin tamamlanması uzun sürüyorsa, etkinlik günlüğünde değiştirme işlemi hakkında bilgi alabilirsiniz.

  1. Uygulamanızın portaldaki kaynak sayfasında, soldaki menüde Etkinlik günlüğü'nü seçin.

  2. Günlük sorgusunda bir değiştirme işlemi olarak Swap Web App Slots görüntülenir. Ayrıntıları görüntülemek için, ayrıntıları genişletebilir ve alt işlemlerden veya hatalardan birini seçebilirsiniz.

Üretim trafiğini otomatik olarak yönlendirme

Varsayılan olarak, uygulamanın üretim URL'sine yönelik tüm istemci istekleri üretim yuvasına yönlendirilir. Trafiğin bir bölümünü başka bir yuvaya yönlendirebilirsiniz. Bu özellik, yeni bir güncelleştirme için kullanıcı geri bildirimine ihtiyacınız varsa ancak bunu üretime yayınlamaya hazır değilseniz kullanışlıdır.

  1. Web uygulamanızın kaynak sayfasına gidin ve Dağıtım>Dağıtım yuvaları seçin.

  2. Yönlendirmek istediğiniz yuvanın Traffic % sütununda, yönlendirmek istediğiniz toplam trafik miktarını göstermek için bir yüzde (0 ile 100 arasında) belirtin. Ardından Kaydet'i seçin.

    İstek trafiğinin yüzdesini dağıtım yuvasına yönlendirmeye yönelik portal seçimlerini gösteren ekran görüntüsü.

Ayarı kaydettikten sonra, belirtilen istemci yüzdesi rastgele üretim dışı yuvaya yönlendirilir.

Bir istemci otomatik olarak belirli bir yuvaya yönlendirildikten sonra, bir saat boyunca veya tanımlama bilgileri silinene kadar bu yuvaya bağlanır. İstemci tarayıcısında, HTTP üst bilgilerinizdeki x-ms-routing-name tanımlama bilgisine bakarak oturumunuzun hangi yuvaya sabitlendiğini görebilirsiniz. Hazırlama yuvasına yönlendirilen istekte tanımlama bilgisi x-ms-routing-name=stagingbulunur. Üretim yuvasına yönlendirilen bir istekte çerez x-ms-routing-name=selfvardır.

Üretim trafiğini el ile yönlendirme

App Service, otomatik trafik yönlendirmeye ek olarak istekleri belirli bir yuvaya yönlendirebilir. Bu seçenek, kullanıcılarınızın beta uygulamanızı kabul edebilmesini veya geri çevirebilmesini istediğinizde kullanışlıdır. Üretim trafiğini el ile yönlendirmek için sorgu parametresini x-ms-routing-name kullanırsınız.

Kullanıcıların beta uygulamanızdan vazgeçmesine izin vermek için bu bağlantıyı web sayfanıza yerleştirebilirsiniz:

<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>

Dize x-ms-routing-name=self , üretim yuvasını belirtir. İstemci tarayıcısı bağlantıya eriştiğinde üretim yuvasına yönlendirilir. Sonraki her istekte oturumu üretim yuvasına sabitleyen x-ms-routing-name=self tanımlama bilgisi bulunur.

Kullanıcıların beta uygulamanızı kabul etmesine izin vermek için aynı sorgu parametresini üretim dışı yuvanın adı olarak ayarlayın. Bir örnek aşağıda verilmiştir:

<webappname>.azurewebsites.net/?x-ms-routing-name=staging

Varsayılan olarak, yeni yuvaların yönlendirme kuralı 0%, gri renkte gösterilir. Bu değeri 0% (siyah metinle gösterilir) olarak açıkça ayarladığınızda, kullanıcılarınız x-ms-routing-name sorgu parametresini kullanarak manüel olarak hazırlık yuvasına erişebilir. Ayarlanmış yönlendirme yüzdesi nedeniyle 0 yuvaya otomatik olarak yönlendirilmeyeceklerdir. Gelişmiş bir senaryo olan bu yapılandırma, iç ekiplerin hazırlık yuvasındaki değişiklikleri test edebileceği, aynı zamanda hazırlık yuvasını genelden gizleyebileceğiniz bir senaryodur.

Bir yuva silme

  1. Uygulamanızı arayın ve seçin.

  2. Dağıtım>Dağıtım yuvaları>Silinecek yuva>Genel Bakış seçin. Uygulama türü, bir dağıtım yuvasını görüntülediğinizi hatırlatmak için App Service (Yuva) olarak görünür.

  3. Yuvayı durdurun ve yuvadaki trafiği sıfır olarak ayarlayın.

  4. Komut çubuğunda Sil'i seçin.

Portalda dağıtım yuvasını silme seçimlerini gösteren ekran görüntüsü.

Resource Manager şablonlarıyla otomatikleştirme

Azure Resource Manager şablonları, Azure kaynaklarının dağıtımını ve yapılandırmasını otomatikleştirmek için bildirim temelli JSON dosyalarıdır. Resource Manager şablonlarını kullanarak yuvaları değiştirmek için, Microsoft.Web/sites/slots ve Microsoft.Web/sites kaynaklarında iki özellik ayarlarsınız.

  • buildVersion: Yuvada dağıtılan uygulamanın geçerli sürümünü temsil eden dize özelliği. Örneğin: v1, 1.0.0.1veya 2019-09-20T11:53:25.2887393-07:00.
  • Bir yuva için hangi targetBuildVersion değerinin gerektiğini belirten bir dize özelliği. targetBuildVersion Değer geçerli buildVersion değere eşit değilse, belirtilen buildVersion değere sahip yuvayı bularak değiştirme işlemini tetikler.

Örnek Resource Manager şablonu

Aşağıdaki Resource Manager şablonu, buildVersion yuvasının değerini güncelleyip üretim yuvasına staging değerini ayarlayarak iki yuvayı değiştirir. adlı stagingbir yuvanız olmalıdır.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "my_site_name": {
            "defaultValue": "SwapAPIDemo",
            "type": "String"
        },
        "sites_buildVersion": {
            "defaultValue": "v1",
            "type": "String"
        }
    },
    "resources": [
        {
            "type": "Microsoft.Web/sites/slots",
            "apiVersion": "2018-02-01",
            "name": "[concat(parameters('my_site_name'), '/staging')]",
            "location": "East US",
            "kind": "app",
            "properties": {
                "buildVersion": "[parameters('sites_buildVersion')]"
            }
        },
        {
            "type": "Microsoft.Web/sites",
            "apiVersion": "2018-02-01",
            "name": "[parameters('my_site_name')]",
            "location": "East US",
            "kind": "app",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites/slots', parameters('my_site_name'), 'staging')]"
            ],
            "properties": {
                "targetBuildVersion": "[parameters('sites_buildVersion')]"
            }
        }        
    ]
}

Bu Resource Manager şablonu idempotenttir, yani birden çok kez uygulandığında sonuç değişmez. Bunu defalarca çalıştırabilir ve yuvaların aynı durumunu üretebilirsiniz. Şablonda herhangi bir değişiklik yapılmadığında, yuvalar zaten istenen durumda olduğundan aynı şablonun sonraki çalıştırmaları yuva değişimini tetiklemez.

Değiştirme sorunlarını giderme

Slot değişimi sırasında herhangi bir hata oluşursa, hata D:\home\LogFiles\eventlog.xml görünür. Ayrıca uygulamaya özgü hata günlüğüne de kaydedilir.

Bazı yaygın takas hataları şunlardır:

  • Uygulama köküne yönelik http isteği zamanlanmış. Değiştirme işlemi her HTTP isteği için 90 saniye bekler ve en fazla beş kez yeniden denenir. Tüm tekrar denemeler zaman aşımına uğradıysa değiştirme işlemi durdurulur.

  • Uygulama içeriği yerel önbellek için belirtilen yerel disk kotasını aştığında yerel önbellek başlatma başarısız olabilir. Daha fazla bilgi için bkz. Azure App Service yerel önbelleğine genel bakış.

  • Site güncelleştirme işlemi sırasında şu hata oluşabilir: "Yapılandırma ayarları değiştirme için hazırlandığı için yuva değiştirilemez." Bu hata, çok aşamalı değiştirme işleminin ilk aşaması tamamlanırsa ancak ikinci aşama gerçekleşmediyse oluşabilir. Değiştirme işlemi başarısız olursa da oluşabilir. Bu sorunu çözmenin iki yolu vardır:

    • Siteyi eski durumuna geri sıfırlayan değiştirme işlemini iptal edin.
    • Siteyi istenen yeni duruma güncelleştiren değiştirme işlemini tamamlayın.

    Değiştirme işlemini iptal etmeyi veya tamamlamayı öğrenmek için bu makalenin önceki bölümlerinde yer alan Önizleme ile değiştirme (çok aşamalı değiştirme) bölümüne bakın.

  • Özel ısınma sırasında, HTTP istekleri dış URL'ye gitmeden dahili olarak gerçekleştirilir. Web.config uygulamasında belirli URL yeniden yazma kurallarıyla başarısız olabilirler. Örneğin, etki alanı adlarını yeniden yönlendirme veya HTTPS'yi zorunlu tutma kuralları, ön isteklerin uygulama koduna ulaşmasını engelleyebilir. Bu sorunu geçici olarak çözmek için, aşağıdaki iki koşulu ekleyerek yeniden yazma kurallarınızı değiştirin:

    <conditions>
      <add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
      <add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
      ...
    </conditions>
    
  • Özel bir ısınma olmadan, URL yeniden yazma kuralları YINE DE HTTP isteklerini engelleyebilir. Bu sorunu geçici olarak çözmek için aşağıdaki koşulu ekleyerek yeniden yazma kurallarınızı değiştirin:

    <conditions>
      <add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
      ...
    </conditions>
    
  • Slot değiştirme işleminden sonra uygulama beklenmeyen yeniden başlatmalarla karşılaşabilir. Bir değiştirme işleminden sonra ana bilgisayar adı bağlama yapılandırması eşitlenmediği için yeniden başlatmalar gerçekleşir. Bu durum tek başına yeniden başlatmalara neden olmaz. Ancak, depolama birimi yük devretmeleri gibi bazı altyapısal depolama olayları bu farklılıkları algılayabilir ve çalışan tüm işlemleri yeniden başlatmaya zorlayabilir.

    Bu tür yeniden başlatmaları en aza indirmek için tüm yuvalardaWEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG=1 uygulama ayarını ayarlayın. Ancak bu uygulama ayarı Windows Communication Foundation (WCF) uygulamalarıyla çalışmaz.

Sonraki adım