Azure Işlevleri coğrafi olağanüstü durum kurtarma

Tüm Azure bölgeleri veya veri merkezleri kapalı kalma süresi geldiğinde, görev açısından kritik kodunuzun farklı bir bölgede işlemeye devam etmesi gerekir. Bu makalede, olağanüstü durum kurtarmasına izin vermek için işlevleri dağıtmak üzere kullanabileceğiniz stratejilerin bazıları açıklanmaktadır.

Temel kavramlar

Azure Işlevleri, belirli bir bölgedeki bir işlev uygulamasında çalışır. Kullanılabilir yedekleme yok. Kesintiler sırasında yürütme kaybını önlemek için, aynı işlevleri birden çok bölgedeki uygulamalar işlevine dağıtmak üzere Redundantly sağlayabilirsiniz.

Aynı işlev kodunu birden çok bölgede çalıştırdığınızda dikkate alınması gereken iki desen vardır:

Desen Description
Aktif/aktif Her iki bölgedeki işlevler, yinelenen bir şekilde veya dönüşte olayları etkin bir şekilde çalışır ve işliyor. Kritik HTTP tetiklemeli işlevleriniz için Azure ön kapııyla birlikte etkin/etkin bir model kullanmanızı öneririz.
Etkin/Pasif İşlevler, olayları alma bölgesinde etkin bir şekilde çalışır, ancak ikinci bir bölgedeki aynı işlevler boşta kalır. Yük devretme gerektiğinde ikinci bölge etkinleştirilir ve işleme alır. bu düzenin, Service Bus ve olay Hub 'ı tetiklediği işlevler gibi olay odaklı, HTTP olmayan işlevleriniz için önerilir.

Çok bölgeli dağıtımlar hakkında daha fazla bilgi edinmek için yüksek oranda kullanılabilir çok bölgeli Web uygulamasındakikılavuza bakın.

HTTP tetikleyici işlevleri için artıklık

Etkin/etkin modeli, HTTP tetikleyici işlevleri için en iyi dağıtım modelidir. Bu durumda, her iki bölge arasındaki istekleri koordine etmek için Azure ön kapısını kullanmanız gerekir. Azure ön kapısı, birden çok bölgede çalışan işlevler arasında HTTP isteklerini yönlendirebilir ve hepsini bir kez deneme. Ayrıca, her uç noktanın sistem durumunu düzenli olarak denetler. Bir bölgedeki bir işlev sistem durumu denetimlerine yanıt vermeyi durdurduğunda, Azure ön kapısının dönüşü geri alır ve yalnızca kalan sağlıklı işlevlere trafiği iletir.

Azure ön kapısının ve Işlevin mimarisi

HTTP olmayan tetikleyici işlevleri için artıklık

Diğer hizmetlerden Olayları tüketen işlevlerin artıklığı, ilgili hizmetlerin yük devretme düzeniyle çalışan farklı bir model gerektirir.

HTTP olmayan tetikleyici işlevleri için etkin/Pasif artıklık

Etkin/Pasif, her iletiyi yalnızca tek bir işlevin işlemesi için bir yol sağlar, ancak bir olağanüstü durum durumunda ikincil bir bölgeye yük devretmek için bir mekanizma sağlar. işlev uygulamaları, azure Service Bus coğrafi kurtarma ve azure Event Hubs coğrafi kurtarmagibi iş ortağı hizmetlerinin yük devretme davranışları ile çalışır. Bağlı olduğu yük devretme hizmeti şu anda etkin olmadığından, işlev uygulaması temelde Boşta olduğundan ikincil işlev uygulaması Pasif olarak değerlendirilir.

Azure Event Hubs tetikleyicisini kullanarak örnek bir topoloji düşünün. Bu durumda, etkin/Pasif model aşağıdaki bileşenleri gerektirir:

  • Hem birincil hem de ikincil bölgeye dağıtılan Azure Olay Hub 'ı.
  • Birincil ve ikincil Olay Hub 'ını eşleştirmek için coğrafi olağanüstü durum etkindir . Bu Ayrıca, bağlantı bilgilerini değiştirmeden, Olay Hub 'larına bağlanmak ve birincil sunucudan ikinciye geçiş yapmak için kullanabileceğiniz bir diğer ad oluşturur.
  • İşlev uygulamaları hem birincil hem de ikincil (yük devretme) bölgesine dağıtılır, çünkü bu uygulama ikincil bölgedeki uygulamayla birlikte gönderilir çünkü iletiler buraya gönderilmemektedir.
  • İşlev uygulaması, kendi olay hub 'ı için doğrudan (diğer ad olmayan) bağlantı dizesinde tetiklenir.
  • Olay Hub 'ının yayımcıları, diğer ad bağlantı dizesine yayımlamanız gerekir.

Aktif-pasif örnek mimarisi

Yük devretmeden önce, birincil olay hub 'ına paylaşılan diğer ad yoluna gönderen yayımcılar. Birincil işlev uygulaması yalnızca birincil olay hub 'ına dinliyor. İkincil işlev uygulaması pasif ve boşta. Yük devretme işlemi başlatıldıktan hemen sonra paylaşılan diğer ada gönderilen yayımcılar ikincil Olay Hub 'ına yönlendirilir. İkincil işlev uygulaması artık etkin hale gelir ve otomatik tetikleme başlatılır. Bir ikincil bölgeye yönelik etkin yük devretme, yalnızca ilgili olay hub 'ı etkin olduğunda işlevler etkin hale gelmeyle, tamamen Olay Hub 'ından çalıştırılabilir.

Service Bus ve Event Hubsile yük devretme hakkında daha fazla bilgi edinin.

HTTP olmayan tetikleyici işlevleri için etkin/etkin artıklık

HTTP ile tetiklenen işlevler için hala etkin/etkin dağıtımlar elde edebilirsiniz. Ancak, iki etkin bölgenin birbirleriyle nasıl etkileşime gireceğini veya nasıl koordine etgetirmeniz gerekir. aynı işlev uygulamasını her biri aynı Service Bus kuyruğu üzerinde tetiklendikleri iki bölgeye dağıttığınızda, bu sırayı, bu kuyruğu sıraya alma sırasında rekabet eden tüketiciler olarak hareket ederler. bu, her iletinin yalnızca örneklerden biri tarafından işlendiği anlamına geliyor olsa da, tek bir Service Bus örneğinde hala tek bir hata noktası olduğu anlamına gelir.

bunun yerine, bir birincil bölgede, biri ikincil bölgede olmak üzere iki Service Bus kuyruğu dağıtabilirsiniz. bu durumda, her biri bölgesinde etkin olan Service Bus kuyruğuna işaret eden iki işlev uygulamanız olabilir. Bu topolojiye yönelik zorluk, sıra iletilerinin iki bölge arasında nasıl dağıtıldığı. Bu, genellikle her yayımcının her iki bölgeye bir ileti yayımlamayı denediği ve her ileti de etkin işlev uygulamaları tarafından işlendiği anlamına gelir. Bu, istenen etkin/etkin modelini oluştururken, işlem yinelemesi ve verilerin ne zaman ya da nasıl birleştirilecektir konularında başka sorunlar da oluşturur. Bu zorluk sorunları nedeniyle, HTTPS olmayan tetikleyici işlevleri için etkin/Pasif düzenin kullanılması önerilir.

Sonraki adımlar