Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Functions ist ein ereignisgesteuerter Computedienst, mit dem Sie kleine Codeblöcke (Funktionen) ausführen können, ohne die Infrastruktur explizit bereitstellen oder verwalten zu müssen. Funktionen können auf Ereignisse wie HTTP-Anforderungen, Zeitgeber, Warteschlangennachrichten und Änderungen in anderen Azure-Diensten reagieren, sodass sie gut für die Verarbeitung von Daten, die Integration von Systemen und das Ausführen von Hintergrundaufgaben geeignet ist.
Wenn Sie Azure verwenden, ist Zuverlässigkeit eine gemeinsame Verantwortung. Microsoft bietet eine Reihe von Funktionen zur Unterstützung von Resilienz und Wiederherstellung. Sie sind dafür verantwortlich, zu verstehen, wie diese Funktionen in allen von Ihnen verwendeten Diensten funktionieren, und die Funktionen auswählen, die Sie benötigen, um Ihre Geschäftsziele und Uptime-Ziele zu erfüllen.
In diesem Artikel wird beschrieben, wie Sie Azure Functions für verschiedene potenzielle Ausfälle und Probleme widerstandsfähig machen, einschließlich vorübergehender Fehler, Verfügbarkeitszonenfehler und regionsweite Fehler. Außerdem werden wichtige Informationen über die Dienstevereinbarung (Service Level Agreement, SLA) von Azure Functions hervorgehoben.
Bereitstellungsempfehlungen für die Produktion
Das Azure Well-Architected Framework bietet Empfehlungen für Zuverlässigkeit, Leistung, Sicherheit, Kosten und Vorgänge. Informationen dazu, wie sich diese Bereiche gegenseitig beeinflussen und zu einer zuverlässigen Azure Functions-Lösung beitragen, finden Sie unter Architektur bewährte Methoden für Azure Functions.
Übersicht über die Zuverlässigkeitsarchitektur
Wenn Sie Azure Functions bereitstellen, ist es wichtig, mit mehreren Konzepten vertraut zu sein:
Hostingpläne: Pläne stellen die Hostingumgebung für Ihre Funktions-Apps dar. Der Plan bestimmt die verfügbaren Computeressourcen, das Preismodell und das Skalierungsverhalten.
Speicherkonten: Wenn Sie eine Funktions-App erstellen, müssen Sie ein Hostspeicherkonto angeben. Das Speicherkonto wird verwendet, um Aspekte der internen Vorgänge der Funktions-App zu verwalten, einschließlich Funktionscodespeicherung, Protokollierung und Parallelitätsverwaltung (z. B. Blob-Leases für bestimmte Triggertypen).
Sie können auch ein Speicherkonto für die Bereitstellung verwenden. Dieses Speicherkonto ist möglicherweise identisch mit Ihrem Hostspeicherkonto oder einem anderen Speicherkonto.
Von Bedeutung
Die Speicherkonten sind wichtige Teile Ihrer Azure Functions-Zuverlässigkeitsarchitektur, und Sie sollten sie so konfigurieren, dass sie die Resilienzanforderungen Ihrer Funktions-App erfüllen.
Trigger und Bindungen: Diese ermöglichen Es Ihrer Funktion, auf Ereignisse zu reagieren, Daten von anderen Diensten zu empfangen und zu schreiben.
Dauerhafte Funktionen: Dauerhafte Funktionen sind zustandsbehaftete Funktionen, einschließlich langandauernder Orchestrierungen und zustandsbehafteter Entitäten.
Wenn Sie dauerhafte Funktionen verwenden, konfigurieren Sie einen Speicheranbieter, der den Zustand speichert. Sie müssen die Zuverlässigkeitsmerkmale des von Ihnen ausgewählten Zustandsspeichers bewerten und konfigurieren, um Ihre Resilienzanforderungen zu erfüllen.
Resilienz für vorübergehende Fehler
Vorübergehende Fehler sind kurze, zeitweilige Fehler in Komponenten. Sie treten häufig in einer verteilten Umgebung wie der Cloud auf und sind ein normaler Bestandteil von Vorgängen. Vorübergehende Fehler korrigieren sich nach kurzer Zeit. Es ist wichtig, dass Ihre Anwendungen vorübergehende Fehler behandeln können, in der Regel durch Wiederholen betroffener Anforderungen.
Alle in der Cloud gehosteten Anwendungen sollten die Anleitung zur vorübergehenden Fehlerbehandlung von Azure befolgen, wenn sie mit cloudgehosteten APIs, Datenbanken und anderen Komponenten kommunizieren. Weitere Informationen finden Sie unter Empfehlungen zur Behandlung vorübergehender Fehler.
Beachten Sie die folgenden Empfehlungen für die Behandlung vorübergehender Fehler in Ihren Funktions-Apps:
Trigger und Bindungen: Die Azure Functions-Plattform enthält integrierte vorübergehende Fehlerbehandlung für viele Trigger und Bindungen. Wenn ein vorübergehender Fehler auftritt, während ein unterstützter Trigger ausgelöst wird oder eine unterstützte Bindung Daten liest oder schreibt, kann die Plattform den Vorgang automatisch wiederholen. Dieses integrierte Wiederholungsverhalten trägt dazu bei, dass temporäre Verbindungsprobleme oder Dienst-Blips die Ausführung Ihrer Funktion nicht verhindern. Weitere Informationen finden Sie unter Fehlerbehandlung und Wiederholungen von Azure Functions.
Dieser Schutz deckt jedoch nur vorübergehende Fehler ab. Dauerhafte Fehler, z. B. eine falsch konfigurierte Verbindungszeichenfolge oder eine gelöschte Ressource, werden nicht wiederholt.
Dauerhafte Fehler und wiederholte vorübergehende Fehler werden als Fehler behandelt, und Sie können die Protokollierung so konfigurieren, dass Informationen zu Funktionsausführungsfehlern erfasst werden. Weitere Informationen finden Sie unter How to configure monitoring for Azure Functions.
Ihr Funktionscode: Im Textkörper Ihrer Funktion sind Sie für die Behandlung vorübergehender Fehler verantwortlich, wenn Sie Aufrufe an externe Dienste tätigen. Sie sollten Wiederholungslogik, Timeouts und Schaltkreistrennmuster implementieren, je nach Bedarf für alle externen Dienstaufrufe, die in Ihrem Funktionscode ausgeführt werden. Entwerfen Sie Ihre Funktionen so, dass sie nach Möglichkeit idempotent sind, sodass Wiederholungen keine doppelten Nebenwirkungen verursachen.
Kunden: Alle Clientanwendungen, die synchron eine Verbindung mit Funktionen herstellen, z. B. mithilfe einer HTTP-Verbindung, sollten für vorübergehende Fehler widerstandsfähig sein.
Ausfallsicherheit bei Ausfällen von Verfügbarkeitszonen
Verfügbarkeitszonen sind physisch getrennte Gruppen von Rechenzentren innerhalb einer Azure-Region. Wenn eine Zone ausfällt, erfolgt ein Failover der Dienste zu einer der verbleibenden Zonen.
Verbrauchspläne unterstützen keine Verfügbarkeitszonen. Wenn Zonenredundanz eine Anforderung für Ihre Arbeitsauslastung ist, sollten Sie stattdessen die Verwendung des Flex-Verbrauchsplans, des Premium-Plans oder des dedizierten Plans (App Service) in Betracht ziehen.
Flex-Verbrauchspläne unterstützen zonenredundante Bereitstellungen.
Premium-Pläne unterstützen zonenredundante Bereitstellungen.
Wenn Zonenredundanz aktiviert ist, verteilt die Plattform Ihre Planinstanzen automatisch über alle Verfügbarkeitszonen in der ausgewählten Region. Wenn eine Verfügbarkeitszone in der Region ein Problem hat, werden ihre Funktionen weiterhin mithilfe von Instanzen in fehlerfreien Zonen ausgeführt.
Sie müssen auch den zonenredundanten Speicher (ZRS) für das Hostspeicherkonto aktivieren, wodurch sichergestellt wird, dass er auch für Zonenausfälle widerstandsfähig ist.
Der Dedizierte Plan (App Service) unterstützt zonenredundante Bereitstellungen. Wenn Zonenredundanz aktiviert ist, verteilt die Plattform Ihre Instanzen automatisch über alle Verfügbarkeitszonen in der ausgewählten Region. Sie konfigurieren Zonenredundanz für den Plan. Ausführliche Informationen zur Behandlung von Zonenredundanz finden Sie unter Zuverlässigkeit in Azure App Service.
Wenn Sie die Zonenredundanz nicht aktivieren, ist Ihr Plan nicht zonen- oder regional, was bedeutet, dass Planinstanzen möglicherweise in einer beliebigen Verfügbarkeitszone innerhalb der Region oder innerhalb derselben Zone platziert werden, und sie sind nicht widerstandsfähig für Verfügbarkeitszonenfehler. Ihr Plan kann während eines Ausfalls in irgendeiner Zone der Region Ausfallzeiten haben.
Anforderungen
- Regionsunterstützung: Zonenredundante Flex-Verbrauchspläne können in einer bestimmten Gruppe von Regionen bereitgestellt werden. Sie können die aktuelle Liste der unterstützten Regionen mithilfe der Azure CLI abrufen. Weitere Informationen finden Sie unter Anzeigen von Regionen, die Verfügbarkeitszonen unterstützen.
Regionsunterstützung: Zonenredundante Premium-Pläne können in den folgenden Regionen bereitgestellt werden:
Amerika Europa Naher Osten Afrika Asien-Pazifik Brasilien Süd Frankreich, Mitte Israel Central Südafrika Nord Australia East Canada Central Deutschland West Central Qatar Central Zentralindien Central US Italy North Vereinigte Arabische Emirate, Norden China, Norden 3 East US Nordeuropa Ostasien Ost-USA 2 Norway East Japan, Osten Süd-Mittel-USA Schweden, Mitte Südostasien Westliches USA 2 Switzerland North Westliches USA 3 UK South West Europe Betriebssysteme: Sowohl Windows- als auch Linux-Pläne werden unterstützt.
Mindestanzahl der Instanzen: Mindestens zwei immer einsatzbereite Instanzen sind erforderlich, wenn Zonenredundanz für Premium-Pläne aktiviert ist.
- Hostspeicherkonto: Sie müssen das Standardmäßige Hostspeicherkonto Ihrer Funktions-App so konfigurieren, dass zonenredundanter Speicher (ZRS) verwendet wird. Wenn Sie ein Hostspeicherkonto verwenden, das nicht für ZRS konfiguriert ist, verhält sich Ihre App möglicherweise unerwartet während eines Zonenausfalls.
- Bereitstellungscontainerspeicherkonto: Wenn Sie ein separates Speicherkonto für den Bereitstellungscontainer der App verwenden, sollten Sie es auch so aktualisieren, dass es zonenredundant ist.
Überlegungen
Zonenredundanz garantiert nur eine fortgesetzte Betriebszeit für bereitgestellte Anwendungen. Ein Ausfall der Verfügbarkeitszone kann sich auf einige Aspekte von Azure Functions auswirken, obwohl die Anwendung weiterhin Datenverkehr bedient. Zu diesen Verhaltensweisen gehören planskalierung, Anwendungserstellung, Anwendungskonfiguration und Anwendungsveröffentlichung.
Instanzverteilung über Zonen hinweg
Wenn Sie Flex-Verbrauchsplan-Apps als zonenredundant konfigurieren, verteilt die Plattform automatisch Planinstanzen zwischen mehreren Zonen in der ausgewählten Region mit unterschiedlichen Regeln für immer einsatzbereite und on-demand-Instanzen:
Immer einsatzbereite Instanzen werden auf mindestens zwei Zonen in Roundrobin-Weise verteilt.
Um die Zonenresilienz sicherzustellen, verwaltet die Plattform automatisch mindestens zwei stets einsatzbereite Instanzen für jede per-Funktion-Skalierungsfunktion oder Gruppe, unabhängig von der stets einsatzbereiten Konfiguration für die App. Alle Instanzen, die von der Plattform erstellt werden, werden plattformverwaltet, als immer einsatzbereite Instanzen in Rechnung gestellt und ändern nicht die immer einsatzbereiten Konfigurationseinstellungen.
On-Demand-Instanzen werden als Ergebnis von Ereignisquellvolumes erstellt, da die App über die Anzahl der immer einsatzbereiten Instanzen hinaus skaliert wird. On-Demand-Instanzen werden nach dem Prinzip des bestmöglichen Aufwands auf Verfügbarkeitszonen verteilt. Die Skalierungsgeschwindigkeit wird über die gleichmäßige Verteilung zwischen den verschiedenen Zonen priorisiert. Die Plattform versucht, die Verteilung im Laufe der Zeit auszugleichen.
Wenn Sie Elastic Premium-Funktions-App-Pläne als zonenredundant konfigurieren, verteilt die Plattform automatisch Planinstanzen zwischen mehreren Zonen in der ausgewählten Region. Die Instanzenverteilung folgt diesen Regeln, auch wenn die App skaliert und verkleinert wird:
- Die Mindestanzahl der Funktions-App-Instanzen ist zwei.
- Wenn Sie eine Kapazität angeben, die größer als die Anzahl der Zonen ist, werden die Instanzen nur gleichmäßig verteilt, wenn die Kapazität ein Vielfaches der Anzahl von Zonen ist.
- Für einen Kapazitätswert, der mehr als die Anzahl der Zonen * Anzahl der Instanzen ist, werden zusätzliche Instanzen zwischen den verbleibenden Zonen verteilt.
Wenn Functions Instanzen einem zonenredundanten Premium-Plan zuweist, nutzt es den Best-Effort-Zonenausgleich, den die zugrunde liegenden Azure Virtual Machine Scale Sets bieten. Ein Premium-Plan wird als ausgeglichen betrachtet, wenn jede Zone entweder die gleiche Anzahl virtueller Computer in allen anderen Zonen aufweist, die vom Premium-Plan verwendet werden, plus-oder minus ein virtueller Computer.
Cost
Es gibt keine zusätzlichen Kosten für die Aktivierung von Zonenredundanz. Die Preise für einen zonenredundanten Plan sind identisch mit einem Einzelzonenplan.
Wenn Sie jedoch Verfügbarkeitszonen in einer App mit einer immer einsatzbereiten Instanzkonfiguration von weniger als zwei Instanzen für jede Skalierungsfunktion oder Gruppe aktivieren, erstellt die Plattform automatisch zwei Instanzen des always-ready-Typs für jede Skalierungsfunktion oder Gruppe pro Funktion. Diese neuen Instanzen werden auch als immer einsatzbereite Instanzen in Rechnung gestellt.
Wenn Sie jedoch Verfügbarkeitszonen für einen Plan mit weniger als zwei Instanzen aktivieren, erzwingt die Plattform eine Mindestinstanzanzahl von zwei für diesen Plan, und Sie werden für beide Instanzen in Rechnung gestellt.
Vollständige Preisdetails finden Sie unter Azure Functions-Preise.
Konfigurieren der Unterstützung von Verfügbarkeitszonen
Erstellen Sie einen neuen zonenredundanten Azure Functions-Plan. Sie können Zonenredundanz aktivieren, wenn Sie einen neuen Plan erstellen. Ausführliche Schritte finden Sie unter Erstellen einer zonenredundanten Funktions-App.
Zonenredundanz für einen vorhandenen Plan aktivieren: Sie können einen vorhandenen Flex-Verbrauchsplan aktualisieren, um Zonenredundanz zu aktivieren. Ausführliche Schritte finden Sie unter Aktivieren der Zonenredundanz für einen vorhandenen Plan.
Erstellen Sie einen neuen zonenredundanten Azure Functions-Plan. Sie können Zonenredundanz aktivieren, wenn Sie einen neuen Plan erstellen. Ausführliche Schritte finden Sie unter Erstellen einer zonenredundanten Funktions-App.
Zonenredundanz für einen vorhandenen Plan aktivieren: Bei Premium-Plänen können Sie zonenredundanz nur während der Planerstellung aktivieren. Sie können keinen vorhandenen Premium-Plan in einen zonenredundanten Plan umwandeln. Stattdessen müssen Sie Ihre App migrieren, indem Sie eine parallele Bereitstellung in einer neuen Premium-Plan-App erstellen. Weitere Informationen finden Sie unter Aktivieren der Zonenredundanz für einen vorhandenen Plan.
Kapazitätsplanung und -verwaltung
Zonenredundante Funktions-Apps werden auch dann weiterhin ausgeführt, wenn Zonen in der Region einen Ausfall erleiden.
Während eines Zonenausfalls erkennt Azure Functions verlorene Instanzen und versucht automatisch, Ersatzinstanzen in den fehlerfreien Zonen zu suchen oder zu erstellen. Dieser Prozess erfolgt nach dem Best-Effort-Prinzip und kann nicht garantiert werden. Wenn Ihre Workload über eine bestimmte Anzahl von Instanzen verfügen muss, um die erwartete Dienstebene beizubehalten, sollten Sie die Anzahl der immer einsatzbereiten Instanzen überprovisionieren. Dieser Ansatz ermöglicht es der Lösung, einige Kapazitätsverluste zu tolerieren und weiterhin ohne beeinträchtigte Leistung zu funktionieren. Weitere Informationen finden Sie unter Verwalten der Kapazität mithilfe der Überbereitstellung.
Verhalten, wenn alle Zonen fehlerfrei sind
In diesem Abschnitt wird beschrieben, was Sie erwarten müssen, wenn ein Plan zonenredundant ist, das Hostspeicherkonto ZRS verwendet und alle Verfügbarkeitszonen betriebsbereit sind.
Zonenübergreifender Vorgang: Wenn Sie Zonenredundanz in Azure Functions konfigurieren, werden Anforderungen automatisch auf die Instanzen in jeder Verfügbarkeitszone verteilt. Eine Anforderung könnte an jede Instanz in einer beliebigen Verfügbarkeitszone gerichtet werden.
Zonenübergreifende Datenreplikation: Azure Functions ist ein zustandsloser Computedienst, sodass keine Kundendaten zwischen Zonen repliziert werden können. Die Plattform repliziert die Konfiguration automatisch über Zonen hinweg.
Wenn Ihr Hostspeicherkonto ZRS verwendet, repliziert Azure Storage seine Daten synchron in mehreren Verfügbarkeitszonen.
Überprüfen Sie für dauerhafte Funktionen Ihren Speicheranbieter, um zu verstehen, wie daten über Zonen hinweg repliziert werden.
Verhalten bei einem Zoneausfall
In diesem Abschnitt wird beschrieben, was Sie erwarten müssen, wenn ein Plan zonenredundant ist, das Hostspeicherkonto ZRS verwendet und es einen Ausfall der Verfügbarkeitszone gibt.
- Erkennung und Reaktion: Die Azure Functions-Plattform ist dafür verantwortlich, einen Fehler in einer Verfügbarkeitszone zu erkennen. Sie müssen keine Maßnahmen ergreifen, um ein Zonenfailover zu initiieren.
- Benachrichtigung: Microsoft benachrichtigt Sie nicht automatisch, wenn eine Zone deaktiviert ist. Sie können jedoch Azure Resource Health verwenden, um den Status einer einzelnen Ressource zu überwachen, und Sie können Resource Health Alerts einrichten, um Sie über Probleme zu informieren. Sie können auch Azure Service Health verwenden, um den Gesamtstatus des Diensts zu verstehen, einschließlich aller Zonenfehler, und Sie können Service Health Alerts einrichten, um Sie über Probleme zu informieren.
Aktive Anforderungen: Wenn eine Verfügbarkeitszone nicht verfügbar ist, werden alle laufenden Anforderungen, die mit einer Instanz in der fehlerhaften Verfügbarkeitszone verbunden sind, beendet und müssen erneut versucht werden. Stellen Sie sicher, dass Ihre Anwendungen vorbereitet sind, indem Sie den Leitfaden zur Behandlung vorübergehender Fehler befolgen.
Erwarteter Datenverlust: Es wird erwartet, dass Zonenfehler keinen Datenverlust verursachen, da Azure Functions ein zustandsloser Dienst ist.
Wenn Ihr Hostspeicherkonto ZRS verwendet, stellt Azure Storage sicher, dass kein Datenverlust durch einen Zonenfehler auftritt.
Überprüfen Sie für dauerhafte Funktionen Ihren Speicheranbieter, um zu verstehen, ob Datenverlust während eines Zonenfehlers möglich ist.
Erwartete Ausfallzeiten: Während Zonenausfällen kann es zu kurzen Unterbrechungen bei den Verbindungen kommen, die in der Regel einige Sekunden dauern, während der Datenverkehr umverteilt wird. Stellen Sie sicher, dass Ihre Anwendungen vorbereitet sind, indem Sie den Leitfaden zur Behandlung vorübergehender Fehler befolgen.
Datenverkehrsumleitung: Azure Functions erkennt die verlorenen Instanzen aus dieser Zone und versucht, neue Ersatzinstanzen zu finden. Nachdem Azure Functions Ersatz gefunden hat, verteilt es den Datenverkehr nach Bedarf über die neuen Instanzen.
Von Bedeutung
Azure garantiert nicht, dass Anforderungen nach mehr Instanzen in einem Szenario mit Zonenausfall erfolgreich sind. Die Plattform versucht, verlorene Instanzen nach Möglichkeit abzugleichen. Wenn Sie während eines Ausfalls einer Verfügbarkeitszone eine garantierte Kapazität benötigen, erstellen und konfigurieren Sie Ihre Pläne, um Zonenverluste zu berücksichtigen, indem Sie die Kapazität überlasten.
Nichtruntime-Verhalten: Anwendungen in einem zonenredundanten Funktions-App-Plan werden weiterhin ausgeführt und stellen den Datenverkehr auch dann zur Verfügung, wenn eine Verfügbarkeitszone einen Ausfall erlebt. Während eines Ausfalls einer Verfügbarkeitszone können jedoch nicht-laufzeitabhängige Verhaltensweisen beeinträchtigt werden. Zu diesen Verhaltensweisen gehören Funktions-App-Skalierung, Anwendungserstellung, Anwendungskonfiguration und Anwendungsveröffentlichung.
Zonenwiederherstellung
Wenn die Verfügbarkeitszone wiederhergestellt ist, stellt Azure Functions Instanzen in der Verfügbarkeitszone automatisch wieder her, entfernt die temporären Instanzen, die in den anderen Verfügbarkeitszonen erstellt wurden, und leitet den Datenverkehr zwischen Ihren Instanzen wie gewohnt um.
Test auf Zonenfehler
Die Azure Functions-Plattform verwaltet Datenverkehrsrouting, Failover und Zonenwiederherstellung für zonenredundante Ressourcen. Sie brauchen nichts zu initiieren. Da dieses Feature vollständig verwaltet wird, müssen Sie keine Fehlerprozesse der Verfügbarkeitszone überprüfen.
Widerstandsfähigkeit bei regionalen Ausfällen
Azure Functions ist ein Einzelregionendienst. Wenn die Region nicht verfügbar ist, ist Ihre Azure Functions-Ressource ebenfalls nicht verfügbar.
Benutzerdefinierte Lösungen mit mehreren Regionen für Resilienz
Um Ausführungsverluste bei Ausfällen zu vermeiden, können Sie dieselben Funktionen redundant einsetzen, um Anwendungen in mehreren Regionen zu betreiben.
Sie sind dafür verantwortlich:
- Bereitstellen von Funktions-Apps in mehreren Regionen
- Datenverkehrsverteilung zwischen Regionen verwalten
- Implementieren von Failovermechanismen
- Sicherstellen der Datenkonsistenz in allen Regionen (falls zutreffend)
- Überwachen und Verwalten von regionsübergreifenden Bereitstellungen
Wenn Sie denselben Funktionscode in mehreren Regionen ausführen, gibt es zwei häufig verwendete Muster, die Sie berücksichtigen können: aktiv-aktiv und aktiv-passiv. Die folgenden Abschnitte enthalten eine kurze Einführung in diese Muster, bieten jedoch keine detaillierten Anleitungen oder Konfigurationsschritte.
Aktiv-aktiv-Muster für HTTP-Triggerfunktionen
Mit einem Aktiv-aktiv-Muster werden Funktionen in beiden Regionen aktiv ausgeführt und verarbeiten Ereignisse, entweder in doppelter Weise oder wechselweise. Sie sollten ein Active-Active-Muster in Kombination mit Azure Front Door für Ihre kritischen HTTP-ausgelösten Funktionen verwenden, die HTTP-Anforderungen zwischen Funktionen in mehreren Regionen weiterleiten und im Wechsel verteilen können. Azure Front Door kann auch regelmäßig die Integrität jedes Endpunkts überprüfen. Wenn eine Funktion in einer Region nicht mehr auf Integritätsprüfungen reagiert, nimmt Azure Front Door sie aus dem Anforderungszyklus heraus und leitet nur den Datenverkehr an die verbleibenden gesunden Funktionen weiter.
Aktiv-passives Muster für Nicht-HTTP-Triggerfunktionen
Verwenden Sie für ereignisgesteuerte, nicht HTTP ausgelöste Funktionen (z. B. Service Bus- und Event Hubs ausgelöste Funktionen) ein aktiv-passives Muster. Bei einem aktiv-passiven Muster werden Funktionen aktiv in der Region ausgeführt, die Ereignisse empfängt, während die gleichen Funktionen in einem zweiten Bereich im Leerlauf bleiben. Das Aktiv-Passiv-Muster ermöglicht es, dass jede Nachricht nur durch eine einzige Funktion verarbeitet wird, was für die Aufrechterhaltung der Datenkonsistenz wichtig ist, und bietet auch einen Mechanismus zum Umschalten auf die sekundäre Region bei einem Notfall wie einem regionalen Ausfall.
Funktions-App-Failover muss im Zusammenhang mit dem Failoververhalten anderer Dienste betrachtet werden, z. B.:
- Azure Service Bus-Georeplikation und Geo-Notfallwiederherstellung
- Azure Event Hubs Georeplikation und geografische Notfallwiederherstellung
Betrachten Sie eine Beispieltopologie mit einem Azure Event Hubs-Trigger, in der Ihr Event Hubs-Namespace für die Geo-Notfallwiederherstellung konfiguriert ist. In diesem Fall erfordert das aktiv-passive Muster die folgenden Komponenten:
- Azure Event Hubs ist für eine primäre und eine sekundäre Region bereitgestellt.
- Geo-Notfallwiederherstellung aktiviert, um die primären und sekundären Ereignishubs zu koppeln. Dadurch wird auch ein Alias erstellt, den Sie verwenden können, um eine Verbindung mit dem Event Hubs-Namespace herzustellen und von primär zu sekundär zu wechseln, ohne die Verbindungsinformationen zu ändern.
- Funktions-Apps, die sowohl in der primären als auch in der sekundären Region (Failover) implementiert werden, wobei die App in der sekundären Region im Wesentlichen untätig ist, da dort keine Nachrichten gesendet werden.
- Die Function-App wird durch den direkten Verbindungsstring (nonalias) für den jeweiligen Event Hubs-Namespace ausgelöst.
- Herausgeber im Event Hubs-Namespace sollten an die Alias-Verbindungszeichenfolge veröffentlichen.
Vor dem Failover leiten Verleger, die an den gemeinsamen Alias senden, zum primären Event Hub weiter. Die primäre Funktions-App lauscht exklusiv auf den primären Event Hub. Die sekundäre Funktions-App ist passiv und befindet sich im Leerlauf.
Sobald der Failover eingeleitet wird, werden Verleger, die an den gemeinsamen Alias senden, an den sekundären Event Hub weitergeleitet. Die sekundäre Funktions-App wird nun aktiv und löst automatisch aus. Ein effektives Failover zu einer sekundären Region kann vollständig vom Event Hub gesteuert werden, wobei die Funktionen nur aktiv werden, wenn der jeweilige Event Hub aktiv ist.
Dauerhafte Funktionen
Informationen zur Notfallwiederherstellung für mehrere Regionen für Durable Functions finden Sie unter Notfallwiederherstellung und Geoverteilung in Azure Durable Functions.
Resilienz gegenüber Wartungsarbeiten an Diensten
Azure Functions führt regelmäßige Dienstupgrades und andere Wartungsaufgaben aus.
- Vorübergehende Fehlerresilienz: Während der Dienstwartung werden die Instanzen, die Ihre Funktions-App ausführen, möglicherweise neu gestartet oder vorübergehende Unterbrechungen auftreten. Stellen Sie sicher, dass Clientanwendungen, die mit Ihrer Funktions-App interagieren, widerstandsfähig für vorübergehende Fehler sind.
- Zonenredundanz aktivieren: Wenn Sie Zonenredundanz für Ihren Plan aktivieren, verbessern Sie auch die Resilienz während Plattformupdates. Wenn Sie mehrere Instanzen in Ihrem Plan bereitstellen und Zonenredundanz für Ihren Plan aktivieren, erhöht das die Ausfallsicherheit, falls eine Instanz oder Zone während eines Upgrades nicht ordnungsgemäß funktioniert.
Um ihre erwartete Kapazität während eines Upgrades aufrechtzuerhalten, fügt die Plattform während des Upgradevorgangs automatisch zusätzliche Instanzen des Plans hinzu.
- Zonenredundanz aktivieren: Wenn Sie Zonenredundanz für Ihren Plan aktivieren, verbessern Sie auch die Resilienz während Plattformupdates. Aktualisierungsdomänen bestehen aus Sammlungen von virtuellen Computern, die während eines Updates offline gehen und sie den Verfügbarkeitszonen zugeordnet sind. Durch Bereitstellung mehrerer Instanzen in Ihrem Plan und Aktivierung der Zonenredundanz wird zusätzliche Resilienz geschaffen, falls eine Instanz oder Zone während eines Upgrades nicht mehr ordnungsgemäß funktioniert.
App-Dienstumgebung: Wenn Sie Ihre Funktions-App in einer App-Dienstumgebung hosten, können Sie den Upgradezyklus anpassen. Wenn Sie die Auswirkungen von Upgrades auf Ihre Workload überprüfen müssen, aktivieren Sie manuelle Upgrades. Mit diesem Ansatz können Sie eine Überprüfung und Tests für eine Nichtproduktionsinstanz durchführen, bevor Sie sie auf Ihre Produktionsinstanz anwenden.
Weitere Informationen zu Wartungseinstellungen finden Sie unter Upgradeeinstellungen für die geplante Wartung der App-Dienstumgebung.
Resilienz gegenüber Anwendungsbereitstellungen
Anwendungsbereitstellungen führen das Risiko von Problemen in einer Produktionsumgebung ein. Sie sollten bereit sein, ein Rollback eines Updates auszuführen, wenn es Probleme verursacht. Sie sollten auch steuern, wie Updates bereitgestellt werden, um Unterbrechungen von Anwendungsneustarts zu minimieren.
Flex-Verbrauchspläne unterstützen Strategien für Websiteupdates, die mehrere Möglichkeiten zum Bereitstellen Von App-Updates bieten, einschließlich rollierender Updates für Bereitstellungen ohne Ausfallzeiten.
Bereitstellungsplätze für Azure Functions ermöglichen Bereitstellungen ohne Ausfallzeiten Ihrer Funktions-Apps. Verwenden Sie Bereitstellungsplätze, um die Auswirkungen von Bereitstellungen und Konfigurationsänderungen für Ihre Benutzer zu minimieren. Durch die Verwendung von Bereitstellungsplätzen wird auch die Wahrscheinlichkeit reduziert, dass Ihre Anwendung neu gestartet wird. Durch den Neustart der Anwendung tritt ein vorübergehender Fehler auf.
Service-Level-Vereinbarung
Der Service level agreement (SLA) für Azure-Dienste beschreibt die erwartete Verfügbarkeit jedes Diensts und die Bedingungen, die Ihre Lösung erfüllen muss, um diese Verfügbarkeitserwartungen zu erreichen. Weitere Informationen finden Sie unter Dienstleistungsvereinbarungen für Onlinedienste.
Azure Functions bietet unterschiedliche Verfügbarkeits-SLAs für den Verbrauchsplan und für andere Plantypen.