Freigeben über


Übersicht über Azure Funktionen für Azure Redis

In diesem Artikel wird beschrieben, wie Sie Azure verwaltete Redis oder Azure Cache for Redis mit Azure Functions verwenden, um optimierte serverlose und ereignisgesteuerte Architekturen zu erstellen.

Azure Functions stellt ein ereignisgesteuertes Programmiermodell bereit, bei dem Trigger und Bindungen wichtige Features sind. Mit Azure Functions können Sie problemlos ereignisgesteuerte serverlose Anwendungen erstellen. Azure Redis-Dienste (Azure Verwaltete Redis und Azure Cache for Redis) bieten eine Reihe von Bausteinen und bewährten Methoden zum Erstellen verteilter Anwendungen, einschließlich Mikroservices, Statusverwaltung, Pub/Sub Messaging usw.

Azure Redis kann als Trigger für Azure Functions verwendet werden, sodass Sie einen serverlosen Workflow initiieren können. Diese Funktionalität kann in Datenarchitekturen wie einem Write-Behind-Cache oder allen ereignisbasierten Architekturen sehr nützlich sein.

Sie können Azure Redis und Azure Functions integrieren, um Funktionen zu erstellen, die auf Ereignisse von Azure Redis oder externen Systemen reagieren.

Aktion Direction
Trigger für Redis Pub-Unternachrichten Trigger
Trigger für Redis-Listen Trigger
Trigger für Redis-Datenströme Trigger
Lesen eines zwischengespeicherten Werts Eingabe
Schreiben von Werten zum Zwischenspeichern Output

Verfügbarkeitsbereich für Funktionentrigger und Bindungen

Tarif Azure Cache for Redis (Basic, Standard, Premium, Enterprise, Enterprise Flash) Azure verwaltete Redis (Speicher optimiert, Einfach, Compute optimiert, Flash optimiert)
Pub/Sub Ja Ja
Listen Ja Ja
Datenströme Ja Ja
Bindungen Ja Ja

Wichtig

Redis-Trigger werden derzeit nur für Funktionen unterstützt, die in einem Elastic Premium-Plan oder einem dedizierten App Service-Plan ausgeführt werden.

Installieren der Erweiterung

Funktionen werden in einem isolierten C#-Workerprozess ausgeführt. Weitere Informationen finden Sie unter Guide zum Ausführen von C#-Azure Functions in einem isolierten Arbeitsprozess.

Fügen Sie die Erweiterung zu Ihrem Projekt hinzu, indem Sie dieses NuGet-Paket installieren.

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Redis

Installieren des Pakets

Um diese Bindungserweiterung in Ihrer App verwenden zu können, stellen Sie sicher, dass die host.json Datei im Stammverzeichnis Ihres Projekts diesen extensionBundle Verweis enthält:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

In diesem Beispiel weist der version Wert des [4.0.0, 5.0.0) Funktionenhosts an, eine Bundleversion zu verwenden, die mindestens 4.0.0 aber kleiner ist als 5.0.0, die alle potenziellen Versionen von 4.x enthält. Diese Notation verwaltet Ihre App effektiv auf der neuesten verfügbaren Nebenversion des v4.x-Erweiterungspakets.

Wenn möglich, sollten Sie die neueste Hauptversion des Erweiterungspakets verwenden und der Laufzeit erlauben, die neueste Nebenversion automatisch zu verwalten. Sie können den Inhalt des neuesten Bundles auf der Extension Bundles release page anzeigen. Weitere Informationen finden Sie unter Azure Functions-Erweiterungsbündel.

Aktualisieren von Paketen

Fügen Sie dem Projekt das Azure Functions Java Redis Annotations-Paket hinzu, indem Sie die Datei pom.xml aktualisieren, um diese Abhängigkeit hinzuzufügen:

<dependency>
  <groupId>com.microsoft.azure.functions</groupId>
  <artifactId>azure-functions-java-library-redis</artifactId>
  <version>1.0.0</version>
</dependency>

Redis connection string

Azure Redis triggers and bindings have a required property that indicates the application setting or collection name that contains cache connection information. Der Redis-Trigger oder die Bindung sucht nach einer Umgebungsvariable, die die connection string mit dem an den Parameter Connection übergebenen Namen enthält.

In der lokalen Entwicklung kann Connection mithilfe der Datei local.settings.json definiert werden. Wenn sie für Azure bereitgestellt wird, können Application Settings verwendet werden.

Wenn Sie eine Verbindung mit einer Cacheinstanz mit einer Azure-Funktion herstellen, können Sie eine der folgenden Arten von Verbindungen in Ihren Bereitstellungen verwenden:

Eine vom Benutzer zugewiesene verwaltete Identität muss Ihrer Funktions-App zugeordnet sein, und diese Identität muss auch expliziten Berechtigungen in Ihrem Cachedienst erteilt werden. Weitere Informationen finden Sie unter Use Microsoft Entra ID for cache authentication.

Diese Beispiele zeigen den Schlüsselnamen und den Wert der App-Einstellungen, die zum Herstellen einer Verbindung mit jedem Cachedienst erforderlich sind, basierend auf der Art der Clientauthentifizierung, vorausgesetzt, die Connection Eigenschaft in der Bindung ist auf .Redis

"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>",
"Redis__clientId": "<clientId>"