Azure İşlevleri güvenilirliği

Azure İşlevleri, açık altyapı sağlama veya yönetimi olmadan küçük kod blokları veya functions çalıştıran olay temelli bir işlem hizmetidir. İşlevler HTTP istekleri, zamanlayıcılar, kuyruk iletileri ve diğer Azure hizmetlerindeki değişiklikler gibi olaylara yanıt verebilir. Bu özellik, İşlevler'i veri işleme, sistem tümleştirmesi ve arka plan görevleri için uygun hale getirir.

Azure'ı kullandığınızda güvenilirlik paylaşılan bir sorumluluktır. Microsoft, dayanıklılık ve kurtarmayı desteklemek için çeşitli özellikler sunar. Bu özelliklerin kullandığınız tüm hizmetler içinde nasıl çalıştığını anlamak ve iş hedeflerinize ve çalışma süresi hedeflerinize ulaşmak için ihtiyacınız olan özellikleri seçmek sizin sorumluluğunuzdadır.

Bu makalede, İşlevlerin geçici hatalar, kullanılabilirlik alanı hataları ve bölge genelindeki hatalar gibi çeşitli olası kesintilere ve sorunlara karşı nasıl dayanıklı hale getirilmeye başlandığı açıklanmaktadır. Ayrıca İşlevler hizmet düzeyi sözleşmesi (SLA) hakkındaki önemli bilgileri de vurgular.

Üretim dağıtımı önerileri

Azure Well-Architected Framework güvenilirlik, güvenlik, maliyet, operasyonlar ve performansla ilgili öneriler sağlar. Bu alanların birbirini nasıl etkilediğini öğrenmek ve güvenilir bir İşlevler çözümüne katkıda bulunmak için bkz. İşlevler için mimarinin en iyi yöntemleri.

Güvenilirlik mimarisine genel bakış

İşlevler'i dağıtırken, şu kavramlar hakkında bilgi sahibi olmanız önemlidir:

  • Barındırma planları: Planlar, işlev uygulamalarınız için barındırma ortamını temsil eden bir ortamdır. Plan kullanılabilir işlem kaynaklarını, fiyatlandırma modelini ve ölçeklendirme davranışını belirler.

  • Depolama hesapları: bir işlev uygulaması oluşturduğunuzda, bir konak depolama hesabı belirtmeniz gerekir. Depolama hesabı işlev kodu depolama, günlük ve eşzamanlılık yönetimi (belirli tetikleyici türleri için blob kiralamaları gibi) dahil olmak üzere işlev uygulamasının iç işlemlerinin özelliklerini yönetir.

    Dağıtım için bir depolama hesabı da kullanabilirsiniz. Bu depolama hesabı, ana bilgisayar depolama hesabınızla veya farklı bir depolama hesabınızla aynı olabilir.

    Önemli

    Depolama hesapları, İşlevler güvenilirlik mimarinizin kritik bir parçasıdır. Bunları işlev uygulamanızın dayanıklılık gereksinimlerini karşılayacak şekilde yapılandırın.

  • Tetikleyiciler ve bağlamalar: Tetikleyiciler ve bağlamalar işlevinizin olaylara yanıt vermesini, diğer hizmetlerden veri almasını ve diğer hizmetlere veri yazmasını sağlar.

  • Dayanıklı işlevler: Dayanıklı işlevler İşlevler'in bir özelliğidir. Uzun süre çalışan düzenleme ve durum bilgisi olan varlıklar gibi durum bilgisi olan işlevler sağlar.

    Dayanıklı işlevleri kullandığınızda, durumu depolayan bir depolama sağlayıcısı yapılandırabilirsiniz. Seçtiğiniz durum deposunun güvenilirlik özelliklerini değerlendirin ve dayanıklılık gereksinimlerinizi karşılayacak şekilde yapılandırın.

Geçici hatalara dayanıklılık

Geçici hatalar, bileşenlerde kısa ve aralıklı hatalardır. Bunlar genellikle bulut gibi dağıtılmış bir ortamda gerçekleşir ve işlemlerin normal bir parçasıdır. Geçici hatalar kısa bir süre sonra kendilerini düzeltmektedir. Uygulamalarınızın genellikle etkilenen istekleri yeniden deneyerek geçici hataları işleyebileceği önemlidir.

Bulutta barındırılan tüm uygulamalar, bulutta barındırılan API'ler, veritabanları ve diğer bileşenlerle iletişim kurarken Azure geçici hata işleme yönergelerini izlemelidir. Daha fazla bilgi için bkz Geçici hataları ele alma önerileri.

İşlev uygulamalarınızdaki geçici hataları işlemek için aşağıdaki önerileri göz önünde bulundurun:

  • Tetikleyiciler ve bağlamalar: İşlevler platformu, tetikleyiciler ve bağlamalar için yerleşik geçici hata işlemeyi içerir. Desteklenen bir tetikleyici tetiklendiğinde veya desteklenen bir bağlama verileri okurken veya yazarken geçici bir hata oluştuğunda platform işlemi otomatik olarak yeniden deneyebilir. Bu yerleşik yeniden deneme davranışı, geçici bağlantı sorunlarının veya hizmet kesintilerinin işlevinizin çalışmasını engellememesini sağlar. Daha fazla bilgi için bkz . İşlevler hata işleme ve yeniden denemeler.

    Bu koruma yalnızca geçici hataları kapsar. Platform, yanlış yapılandırılmış bir bağlantı dizesi veya silinen kaynak gibi kalıcı hataları yeniden denemez.

    Platform kalıcı hataları ve tekrarlanan geçici hataları hata olarak ele alır. İşlev çalıştırma hataları hakkındaki bilgileri kaydetmek için günlüğü yapılandırın. Daha fazla bilgi için bkz. İşlevler için izlemeyi yapılandırma.

  • İşlev kodunuz: İşlev kodunuzda, işleviniz dış hizmetleri çağırdığında geçici hataları işlemek sizin sorumluluğunuzdadır. İşlev kodunuzda yapılan dış hizmet çağrıları için uygun olan yeniden deneme mantığını, zaman aşımlarını ve devre kesici desenlerini uygulayın. İşlevlerinizi mümkün olduğunca etkili olacak şekilde tasarlayın; böylece yeniden denemeler yinelenen yan etkiler oluşturmaz.

  • Istemci: HTTP bağlantısı gibi işlevlere zaman uyumlu olarak bağlanan istemci uygulamaları, geçici hatalara karşı dayanıklı olmalıdır.

Kullanılabilirlik alanı hatalarına dayanıklılık

Kullanılabilirlik alanları , bir Azure bölgesi içindeki veri merkezlerinin fiziksel olarak ayrı gruplarıdır. Bir bölge başarısız olduğunda hizmetler kalan bölgelerden birine devredilebilir.

Tüketim planları kullanılabilirlik alanlarını desteklemez. bölge yedekliliği iş yükünüz için gerekliyse bunun yerine Flex Consumption, Premium veya Dedicated (Azure App Service) planlarını kullanmayı göz önünde bulundurun.

Esnek Tüketim planları alanlar arası yedekli dağıtımları destekler.

Premium planlar alanlar arası yedekli dağıtımları destekler.

Alanlar arası yedeklilik etkinleştirildiğinde platform, plan örneklerinizi seçilen bölgedeki tüm kullanılabilirlik alanlarına otomatik olarak yayar. Bölgedeki kullanılabilirlik alanlarından herhangi biri sorun yaşıyorsa, işlevleriniz iyi durumdaki bölgelerdeki örnekleri kullanarak çalışmaya devam eder.

Bölge kesintilerine karşı da dayanıklı olmasını sağlayan konak depolama hesabında alanlar arası yedekli depolamayı (ZRS) etkinleştirmeniz gerekir.

Üç bölgeye yayılmış üç örnekten ve bir ZRS hesabından oluşan bölge yedekliliğine sahip İşlevler planını gösteren diyagram.

Diyagramda üç kullanılabilirlik alanı gösterilmektedir. Her bölge bir İşlevler örneği içerir. ZRS hesabı üç kullanılabilirlik alanına da yayılmıştır.

Ayrılmış (App Service) planı alanlar arası yedekli dağıtımları destekler. Alanlar arası yedeklilik etkinleştirildiğinde platform, örneklerinizi seçilen bölgedeki tüm kullanılabilirlik alanlarına otomatik olarak yayar. Plan üzerinde bölge yedekliliğini yapılandırabilirsiniz. Azure App Service'in alan yedekliliğini nasıl ele aldığı hakkında daha fazla bilgi için App Service'de Güvenilirlik bölümüne bakın.

Bölge yedekliliğini etkinleştirmediğinizde, planınız nonzonal veya bölgesel olur. Platform, plan örneklerini bölgedeki herhangi bir kullanılabilirlik alanına veya aynı bölgeye yerleştirebilir. Plan örnekleri kullanılabilirlik alanı hatalarına dayanıklı değildir. Planınız, bölgedeki herhangi bir alanda kesinti sırasında kesinti süresi yaşayabilir.

Gereksinimler

  • Bölge desteği: Alanlar arası yedekli Premium planları aşağıdaki bölgelere dağıtabilirsiniz.

    Amerikalar Avrupa Orta Doğu Africa Asia Pacific
    Güney Brezilya Orta Fransa Israel Central Güney Afrika - Kuzey Australia East
    Canada Central Almanya Batı Merkez Qatar Central Orta Hindistan
    Central US Italy North Birleşik Arap Emirlikleri Kuzey Kuzey Çin 3
    East US Kuzey Avrupa Doğu Asya
    Doğu ABD 2 Norway East Japonya Doğu
    ABD'nin Güney Merkez Bölgesi Orta İsveç Güneydoğu Asya
    Batı ABD 2 Switzerland North
    Batı ABD 3 UK South
    West Europe
  • Operating systems: Platform, alanlar arası yedekli Windows ve Linux planları dağıtmayı destekler.

  • En düşük örnek sayısı: Premium planları için alanlar arası yedeklilik için her zaman hazır en az iki örnek gerekir.

  • Konak depolama hesabı: İşlev uygulamanızın varsayılan konak depolama hesabını ZRS kullanacak şekilde yapılandırmanız gerekir. ZRS için yapılandırılmamış bir konak depolama hesabı kullanıyorsanız, uygulamanız bölge kesintisi sırasında beklenmedik şekilde davranabilir.
  • Dağıtım kapsayıcısı depolama hesabı: Uygulamanın dağıtım kapsayıcısı için ayrı bir depolama hesabı kullanıyorsanız, bunu alanlar arası yedekli olacak şekilde de güncelleştirin.

Değerlendirmeler

Çalışma zamanı olmayan davranışlar: Alanlar arası yedeklilik yalnızca dağıtılan uygulamalar için sürekli çalışma süresini garanti eder. Uygulama trafiğe hizmet etmeye devam etse bile kullanılabilirlik alanı kesintisi İşlevler'in yönlerini etkileyebilir. Bu davranışlar arasında plan ölçeklendirme, uygulama oluşturma, uygulama yapılandırması ve uygulama yayımlama yer alır.

Bölgeler arasında örnek dağıtımı

Esnek Tüketim planı uygulamalarını alanlar arası yedekli olarak yapılandırdığınızda platform, plan örneklerini otomatik olarak seçili bölgedeki birden çok bölgeye yayar ve her zaman hazır ve isteğe bağlı örnekler için farklı kurallar sunar:

  • Her zaman hazır örnekler, dönüşümlü dağıtım kullanılarak en az iki bölgeye dağıtılır.

    Bölge dayanıklılığını sağlamak için platform, uygulama için her zaman hazır yapılandırmadan bağımsız olarak her işlev başına ölçeklendirme işlevi veya grubu için her zaman hazır en az iki örneği otomatik olarak tutar. Platformun oluşturduğu örnekler platform tarafından yönetilir, her zaman hazır örnekler olarak faturalandırılır ve her zaman hazır yapılandırma ayarlarını değiştirmez.

  • İsteğe bağlı örnekler , uygulama her zaman hazır örnek sayısının ötesine ölçeklendirildikçe olay kaynağı birimlerinden kaynaklanır. İsteğe bağlı örnekler, kullanılabilirlik alanları arasında en iyi çaba temelinde dağıtılır. Platform, bölgeler arasında eşit dağıtıma göre daha hızlı ölçek genişletmeye öncelik sağlar. Platform, zaman içinde dağıtımı eşitlemeye çalışır.

Elastik Premium işlev uygulaması planlarını alanlar arası yedekli olarak yapılandırdığınızda platform, plan örneklerini seçilen bölgedeki birden çok bölgeye otomatik olarak yayar. Uygulama ölçeği daraltılıp genişletilmesine rağmen örnek yayma şu kurallara uyar:

  • En düşük işlev uygulaması örneği sayısı ikidir.

  • Bölge sayısından daha büyük bir kapasite belirttiğinizde, örnekler yalnızca kapasite bölge sayısının katı olduğunda eşit olarak yayılır.

  • Bölge sayısıyla örnek sayısının çarpımından daha büyük bir kapasite değeri olduğunda, fazladan örnekler kalan bölgelere yayılmaktadır.

İşlevler, örnekleri bölgeye yedekli bir Premium plana ayırdığında, altında yatan Azure Sanal Makine Ölçek Kümeleri'in sağladığı en iyi çaba bölgesi dengeleme kullanır. Azure, bir Premium planı, her bölgede plandaki diğer bölgelerle aynı sayıda sanal makine (VM) bulunduğunda veya artı/eksi bir VM olduğunda dengeli olarak kabul eder.

Maliyet

Alanlar arası yedekliliği etkinleştirdiğinizde ek ücret ödemezsiniz. Alanlar arası yedekli bir plan için fiyatlandırma, tek bölgeli planla aynıdır. Ancak, bölge yedekliliğini etkinleştirmek planınızdaki en az örnek sayısını etkiler.

Her işlev başına ölçeklendirme işlevi veya grubu için her zaman ikiden az örnek içeren her zaman hazır örnek yapılandırmasına sahip bir uygulamada kullanılabilirlik alanlarını etkinleştirdiğinizde, platform her işlev başına ölçeklendirme işlevi veya grubu için her zaman hazır türün iki örneğini otomatik olarak oluşturur. Bu yeni örnekler de her zaman hazır örnekler olarak faturalandırılır.

İkiden az örneği olan bir planda kullanılabilirlik alanlarını etkinleştirirseniz, platform bu plan için en az iki örnek sayısını zorlar ve her iki örnek için de ücretlendirilirsiniz.

Tüm fiyatlandırma ayrıntıları için bkz . İşlev fiyatlandırması.

Kullanılabilirlik alanı desteğini yapılandırma

  • Alanlar arası yedekli yeni bir İşlevler planı oluşturun. Yeni bir plan oluşturduğunuzda alanlar arası yedekliliği etkinleştirebilirsiniz. Daha fazla bilgi için bkz. Alanlar arası yedekli işlev uygulaması oluşturma.

  • Mevcut bir planda bölge yedekliliğini etkinleştirin. Mevcut Elastik Premium planları için kullanılabilirlik alanlarını açabilir veya kapatabilirsiniz. Elastik Premium planları, Ayrılmış (App Service) planlarından farklı olan ve ek yapılandırma adımları gerektiren belirli kapasite davranışlarına sahiptir. Ayrıntılı adımlar için bkz. Mevcut bir planda bölge yedekliliğini etkinleştirme.

  • Alanlar arası yedekli yeni bir İşlevler planı oluşturun. Yeni bir plan oluşturduğunuzda alanlar arası yedekliliği etkinleştirebilirsiniz. Daha fazla bilgi için bkz. Alanlar arası yedekli işlev uygulaması oluşturma.

  • Mevcut bir planda bölge yedekliliğini etkinleştirin. Premium planlar için, bölge yedekliliğini yalnızca plan oluşturma sırasında etkinleştirebilirsiniz. Mevcut bir Premium planı alanlar arası yedekli olacak şekilde dönüştüremezsiniz. Bunun yerine, yeni bir Premium plan uygulamasında eşzamanlı dağıtım oluşturarak uygulamanızı taşıyın. Daha fazla bilgi için bkz. Mevcut planda bölge yedekliliğini etkinleştirme.

Kapasite planlaması ve yönetimi

Bölgedeki bölgelerde kesinti yaşandığında bile alanlar arası yedekli işlev uygulamaları çalışmaya devam eder.

Bölge kesintisi sırasında İşlevler kayıp örnekleri algılar ve iyi durumdaki bölgelerdeki yedek örnekleri otomatik olarak bulmaya veya oluşturmaya çalışır. Platform bu işlemi en iyi çaba temelinde gerçekleştirir ve başarıyı garanti etmez. İş yükünüz beklenen hizmet düzeyinizi korumak için belirli sayıda örnek gerektiriyorsa, her zaman hazır örnek sayısını fazla sağlamayı göz önünde bulundurun. Fazla sağlama, çözümün kapasite kaybına izin vermesine ve performansı düşürmeden çalışmaya devam etmesine olanak tanır. Daha fazla bilgi için bkz. Fazla sağlama yaparak kapasiteyi yönetme.

Tüm bölgeler sağlıklı olduğunda davranış

Bu bölümde, plan alanlar arası yedekli olduğunda, konak depolama hesabında ZRS kullanıldığında ve tüm kullanılabilirlik alanları çalışır durumda olduğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Bölgeler arası işlem: İşlevler'de alanlar arası yedekliliği yapılandırdığınızda, istekler her kullanılabilirlik alanındaki örneklere otomatik olarak yayılır. İstek herhangi bir kullanılabilirlik alanındaki herhangi bir örneğe gidebilir.

  • Bölgeler arası veri çoğaltma: İşlevler durum bilgisi olmayan bir işlem hizmeti olduğundan bölgeler arasında çoğaltılması gereken veri yoktur. Platform, yapılandırmayı bölgeler arasında otomatik olarak çoğaltır.

    Ana bilgisayar depolama hesabınız ZRS kullanıyorsa, Azure Depolama verilerini birden çok kullanılabilirlik alanına eşzamanlı olarak çoğaltır.

    Dayanıklı işlevler için depolama sağlayıcınızı gözden geçirerek verilerin bölgeler arasında nasıl çoğaltılması gerektiğini öğrenin.

Bölge hatası sırasındaki davranış

Bu bölümde, plan alanlar arası yedekli olduğunda, konak depolama hesabında ZRS kullanıldığında ve kullanılabilirlik alanı kesintisi olduğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Algılama ve yanıt: İşlevler platformu, kullanılabilirlik alanındaki bir hatayı algılamaktan sorumludur. Bölge arıza giderme başlatmanıza gerek yok.
  • Bildirim: Bir bölge kapatıldığında Microsoft sizi otomatik olarak bilgilendirmez. Ancak, tek bir kaynağın durumunu izlemek için Azure Kaynak Durumu'nı kullanabilir ve sorunları size bildirmek için Kaynak Durumu uyarıları ayarlayabilirsiniz. Azure Hizmet Durumu'nı , bölge hataları dahil olmak üzere hizmetin genel durumunu anlamak için de kullanabilir ve sorunları size bildirmek için Hizmet Durumu uyarıları ayarlayabilirsiniz.
  • Etkin istekler: Kullanılabilirlik alanı kullanılamıyorsa, hatalı kullanılabilirlik alanındaki bir örneğe bağlanan devam eden istekler sonlandırılır ve yeniden denenmelidir. Geçici hata işleme yönergelerini izleyerek uygulamalarınızın hazır olduğundan emin olun.

  • Beklenen veri kaybı: İşlevler durum bilgisi olmayan bir hizmet olduğundan bölge hatalarının veri kaybına neden olması beklenmiyor.

    Ana bilgisayarın depolama hesabı ZRS kullanıyorsa, "Depolama" bir bölge arızasından kaynaklanacak veri kaybını önler.

    Dayanıklı işlevler için depolama sağlayıcınızı gözden geçirerek bölge hatası sırasında veri kaybının mümkün olup olmadığını öğrenin.

  • Beklenen kapalı kalma süresi: Bölge kesintileri sırasında, trafik yeniden dağıtılırken bağlantılarda genellikle birkaç saniye süren kısa kesintiler yaşanabilir. Geçici hata işleme yönergelerini izleyerek uygulamalarınızın hazır olduğundan emin olun.

  • Trafik yeniden yönlendirme: İşlevler, bu bölgeden kayıp örnekleri algılar ve yeni yeni örnekler bulmaya çalışır. İşlevler, değiştirmeleri bulduktan sonra gerektiğinde trafiği yeni örneklere dağıtır.

    Önemli

    Azure, daha fazla örnek için yapılan isteklerin bir bölge aşağı senaryosunda başarılı olduğunu garanti etmez. Platform, kayıp durumları elinden gelenin en iyisini yaparak doldurmaya çalışır. Kullanılabilirlik alanı hatası sırasında garantili kapasiteye ihtiyacınız varsa, kapasiteyi fazla tahsis ederek planlarınızı bölge kaybını hesaba katacak şekilde oluşturun ve yapılandırın.

  • Çalışma zamanı olmayan davranışlar: Alanlar arası yedekli işlev uygulaması planındaki uygulamalar, kullanılabilirlik alanında kesinti yaşansa bile çalışmaya ve trafiğe hizmet etmeye devam eder. Ancak, kullanılabilirlik alanı kesintisi sırasında çalışma zamanı dışı davranışlar etkilenebilir. Bu davranışlar işlev uygulaması ölçeklendirme, uygulama oluşturma, uygulama yapılandırması ve uygulama yayımlamayı içerir.

Bölge kurtarma

Kullanılabilirlik alanı kurtarıldığında İşlevler kullanılabilirlik alanındaki örnekleri otomatik olarak geri yükler, diğer kullanılabilirlik alanlarında oluşturulan geçici örnekleri kaldırır ve örnekleriniz arasındaki trafiği normal şekilde yeniden yönlendirer.

Bölge hataları için test

İşlevler platformu, alanlar arası yedekli kaynaklar için trafik yönlendirme, yük devretme ve bölge kurtarmayı yönetir. Hiçbir şey başlatmanıza gerek yoktur. Azure bu özelliği tamamen yönetir, bu nedenle kullanılabilirlik alanı hata işlemlerini doğrulamanız gerekmez.

Bölge genelindeki hatalara dayanıklılık

Functions tek bölge hizmetidir. Bölge kullanılamaz duruma gelirse İşlevler kaynağınız da kullanılamaz.

Dayanıklılık için özel çok bölgeli çözümler

Bölge genelinde kesintiler sırasında hizmetinizde kesinti yaşanmasını önlemek için, aynı işlevleri birden çok bölgedeki uygulamaların çalışması için yedekli olarak dağıtabilirsiniz.

Bundan siz sorumlusunuz:

  • İşlev uygulamalarını birden çok bölgeye dağıtma.

  • Bölgeler arasındaki trafik dağıtımlarını yönetme.

  • Yük devretme mekanizmalarını uygulamak

  • Bölgeler arasında veri tutarlılığını sağlama (varsa).

  • Bölgeler arası dağıtımları izleme ve yönetme.

Aynı işlev kodunu birden çok bölgede çalıştırdığınızda , etkin-etkin ve etkin-pasif desenlerini göz önünde bulundurun. Aşağıdaki bölümlerde bu desenler tanıtılır ancak ayrıntılı yönergeler veya yapılandırma adımları sağlanmamıştır.

HTTP tetikleyici işlevleri için etkin-etkin model

Aktif-aktif bir modelde, her iki bölgedeki işlevler ya yinelenen bir şekilde ya da dönüşümlü olarak olayları etkin bir şekilde çalıştırır ve işler. Birden çok bölgede çalışan işlevler arasında HTTP isteklerini yönlendirebilen ve hepsini bir kez denemenizi sağlayan kritik HTTP ile tetiklenen işlevleriniz için Azure Front Door ile birlikte etkin-etkin desen kullanın. Azure Front Door ayrıca her uç noktanın durumunu düzenli aralıklarla denetleyebiliyor. Bir bölgede bir işlev sağlık kontrolüne yanıt vermeyi durdurursa, Azure Front Door işlevi döndürme listesinden çıkarır ve trafiği yalnızca kalan sağlıklı işlevlere yönlendirir.

Örnek etkin-etkin mimariyi gösteren diyagram. Azure Front Door, her birinin kendi veri tabanına sahip olduğu farklı bölgelerdeki Fonksiyon uygulamaları arasında yönlendirme yapar.

Diyagramda en üstte Azure Front Door gösterilir. Aşağıda iki bölge gösterilir: soldaki birincil bölge ve sağda ikincil bölge. Her bölge bir İşlevler uygulaması ve veritabanı içerir. Oklar Azure Front Door her iki işlev uygulamasına işaret eder. Bir ok, her işlev uygulamasından ilgili veritabanına işaret eder.

HTTP olmayan tetikleyici işlevleri için etkin-pasif desen

Olay temelli, HTTP ile tetiklenmeyen işlevler (Azure Service Bus ve Azure Event Hubs tetikleyicileri gibi) için etkin-pasif bir desen kullanın. Etkin-pasif desende, işlev örnekleri olayları alan bölgede çalıştırılırken ikincil bölgedeki örnekler boşta kalır. Bu düzen, her iletiyi yalnızca bir işlevin işlemesini sağlar ve bu da veri tutarlılığının korunmasına yardımcı olur. Ayrıca, bölge kesintisi gibi bir olağanüstü durum sırasında hizmeti ikincil bölgeye devretmenin bir yolunu sağlar.

İşlev uygulaması yük devretmesini aşağıdakiler gibi kullandığınız diğer hizmetlerin yük devretme davranışlarıyla birlikte düşünün:

Event Hubs tetikleyicisi kullanan ve Event Hubs ad alanınızın coğrafi felaket kurtarma için yapılandırıldığı bir örnek topolojiyi ele alın. Bu durumda, etkin-pasif desen aşağıdaki bileşenleri gerektirir:

  • Hem birincil hem de ikincil bölgeye dağıtılmış olan Event Hubs ad alanları.

  • Coğrafi olağanüstü durum kurtarma, birincil ve ikincil olay hub'larını eşleştirmek için etkinleştirildi. Bu yapılandırma, bağlantı bilgilerinde değişiklik yapmadan Event Hubs ad alanına bağlanmak ve diğer adı birincil olandan ikincil olana geçirebilmek için kullanabileceğiniz bir diğer ad da oluşturur.

  • Hem birincil hem de ikincil bölgeye dağıtılan işlev uygulamaları. İkincil bölgedeki uygulama, ileti almadığından boşta kalır.

  • Her işlev uygulamasının tetikleyicileri, ilgili Event Hubs ad alanı için direct (nonalias) bağlantı dizesi kullanır.

  • Event Hubs ad alanındaki yayımcılar, takma ad bağlantı dizesine yayın yapar.

Örnek bir etkin-pasif mimariyi gösteren diyagram. Event Hubs coğrafi olağanüstü durum kurtarma birden çok bölgeye yayılmıştır ve her bölgedeki işlev uygulamaları ile veritabanlarını birbirinden ayırır.

Diyagramda soldaki birincil bölge ve sağda ikincil bölge gösterilir. Birincil bölge etkin bir Event Hubs ad alanı, işlev uygulaması ve veritabanı içerir. İkincil bölge pasif bir Event Hubs ad alanı, bir işlev uygulaması ve bir veritabanı içerir. Ad alanından Event Hubs coğrafi olağanüstü durum kurtarma işlemi için bir ok işaret eder, birincil ve ikincil Event Hubs ad alanlarını bağlar. Oklar her olay hub'ından ilgili işlev uygulamasına işaret eder. Bir ok, her işlev uygulamasından ilgili veritabanına işaret eder.

Yük devretmeden önce, paylaşılan diğer adlara olay gönderen yayımcılar trafiği birincil olay hub'ına yönlendirir. Birincil işlev uygulaması yalnızca birincil olay hub'ını dinler. İkincil işlev uygulaması pasif ve boşta kalır.

Yük devretme başladığında, paylaşılan takma ada etkinlik gönderen yayımcılar ikincil olay hub'ına yönlendirilir. İkincil işlev uygulaması etkin hale gelir ve otomatik olarak tetiklenir. Olay hub'ı yük devretme işleminin tamamını yönlendirebilir ve her işlev uygulaması yalnızca ilgili olay hub'ı etkin olduğunda çalışır.

Dayanıklı işlevler

Dayanıklı işlevler için çok bölgeli olağanüstü durum kurtarma için bkz. Azure dayanıklı işlevlerde Olağanüstü Durum Kurtarma ve Coğrafi Dağıtım.

Hizmet bakımına dayanıklılık

İşlevler normal hizmet yükseltmeleri ve diğer bakım görevlerini gerçekleştirir.

  • Geçici hata dayanıklılığı: Hizmet bakımı sırasında işlev uygulamanızı çalıştıran örnekler yeniden başlatabilir veya geçici kesintilerle karşılaşabilir. İşlev uygulamanızla etkileşim kuran istemci uygulamalarının geçici hatalara karşı dayanıklı olduğundan emin olun.
  • Alanlar arası yedekliliği etkinleştir: Planınızda alanlar arası yedekliliği etkinleştirdiğinizde, platform güncelleştirmeleri sırasında dayanıklılığı da geliştirirsiniz. Planınızda birden çok örnek dağıtmak ve planınız için bölge yedekliliğini etkinleştirmek, güncelleme sırasında bir örneğin veya bölgenin sağlıksız hale gelmesi durumunda ekstra bir dayanıklılık katmanı sağlar.
  • Ek geçici örnekler: Yükseltme sırasında beklenen kapasitenizi korumak için platform, yükseltme işlemi sırasında planın ek örneklerini otomatik olarak ekler.

  • Alanlar arası yedekliliği etkinleştir: Planınızda alanlar arası yedekliliği etkinleştirdiğinizde, platform güncelleştirmeleri sırasında dayanıklılığı da geliştirirsiniz. Güncelleştirme etki alanları, güncelleştirme sırasında çevrimdışı olan sanal makineler (VM'ler) koleksiyonlarından oluşur ve kullanılabilirlik bölgeleriyle eşleşir. Planınıza birden fazla örnek dağıtmak ve planınız için bölge yedekliliğini etkinleştirmek, bir örnek veya bölge yükseltme sırasında sağlıksız hale gelirse ek bir dayanıklılık katmanı ekler.

  • App Service Ortamı: İşlev uygulamanızı bir App Service Ortamında barındırdıysanız yükseltme döngüsünü özelleştirebilirsiniz. Yükseltmelerin iş yükünüz üzerindeki etkisini doğrulamanız gerekiyorsa el ile yükseltmeleri etkinleştirin. Üretim örneğinize yükseltmeleri uygulamadan önce üretim dışı örneği doğrulamak ve test etmek için bu yaklaşımı kullanın.

    Bakım tercihleri hakkında daha fazla bilgi için App Service Ortamı planlı bakım yükseltme tercihleri bölümüne bakın.

Uygulama dağıtımlarına dayanıklılık

Uygulama dağıtımları, bir üretim ortamında sorun riski oluşturur. Sorunlara neden olan bir güncelleştirmeyi geri almak için hazır olun. Uygulama yeniden başlatmalarının yol açtığı kesintiyi azaltmak için güncellemelerin nasıl dağıtıldığını denetleyin.

Esnek Tüketim planları, uygulama güncelleştirmelerinizi dağıtmak için birden çok yol sağlayan site güncelleştirme stratejilerini destekler. Bu stratejiler, kesintisiz dağıtımlar için kademeli güncellemeleri içerir.

İşlev dağıtım yuvaları, işlev uygulamalarınızda kesinti yaşamadan dağıtım yapmanıza olanak tanır. Kullanıcılarınız için dağıtımların ve yapılandırma değişikliklerinin etkisini en aza indirmek için dağıtım yuvalarını kullanın. Dağıtım yuvaları, uygulamanızın yeniden başlatılması olasılığını da azaltır. Uygulama yeniden başlatmaları geçici hatalara neden olur.

Hizmet düzeyi sözleşmesi

Azure hizmetleri için hizmet düzeyi sözleşmesi (SLA), her hizmetin beklenen kullanılabilirliğini ve bu kullanılabilirlik beklentisini elde etmek için çözümünüzün karşılaması gereken koşulları açıklar. Daha fazla bilgi için bkz. Çevrimiçi hizmetler için SLA'lar.

İşlevler, Tüketim planı ve diğer plan türleri için ayrı kullanılabilirlik SLA'ları sağlar.