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.
In dieser Schnellstartanleitung integrieren Sie Azure Managed Redis oder Azure Cache for Redis in eine Node.js-App. Diese App hat Zugriff auf einen sicheren, dedizierten Cache, der von jeder Anwendung in Azure aus zugänglich ist.
Voraussetzungen
- Azure-Abonnement – Erstellen eines kostenlosen Kontos
- Installation von Node.js: Anweisungen zur Installation von Node.js finden Sie unter Installieren von Node.js unter Windows. Dort erfahren Sie, wie Sie Node und npm auf einem Windows-Computer installieren.
Erstellen einer Azure Managed Redis-Instanz
Um eine Azure Managed Redis-Instanz zu erstellen, melden Sie sich beim Azure-Portal an, und wählen Sie " Ressource erstellen" aus.
Geben Sie auf der Seite Neu im Suchfeld Azure Cache for Redis ein.
Konfigurieren Sie auf der Registerkarte "Neuer Redis-Cache " die Einstellungen für Ihren neuen Cache in den Grundlagen.
Konfiguration Wert auswählen BESCHREIBUNG Abonnement Öffnen Sie die Dropdownliste, und wählen Sie Ihr Abonnement aus. Das Abonnement, unter dem diese neue Azure Managed Redis-Instanz erstellt wird. Ressourcengruppe Öffnen Sie die Dropdownliste, und wählen Sie eine Ressourcengruppe aus, oder wählen Sie Neu erstellen aus, und geben Sie einen Namen für eine neue Ressourcengruppe ein. Der Name der Ressourcengruppe, in der Ihr Cache und weitere Ressourcen erstellt werden. Wenn Sie alle Ihre App-Ressourcen in einer Ressourcengruppe zusammenfassen, können Sie sie einfacher gemeinsam verwalten oder löschen. Name Geben Sie einen Namen ein, der in der Region eindeutig ist. Der Cachename muss zwischen 1 und 63 Zeichen lang sein, wenn er mit dem Regionsnamen des Cache kombiniert wird, und darf nur Ziffern, Buchstaben und Bindestriche enthalten. (Wenn der Cachename weniger als 45 Zeichen lang ist, sollte er in allen derzeit verfügbaren Regionen funktionieren.) Der Name muss mit einer Zahl oder einem Buchstaben beginnen und enden und darf keine aufeinanderfolgenden Bindestriche enthalten. Der Hostname Ihrer Cache-Instanz ist \<DNS name\>.\<Azure region\>.redis.azure.net
.Region Öffnen Sie die Dropdownliste, und wählen Sie einen Standort aus. Azure Managed Redis ist in ausgewählten Azure-Regionen verfügbar. Datenebene Wählen Sie entweder im Arbeitsspeicher für hohe Leistung oder Flash für Caches mit geringerer Leistung aus. Zu den In-Memory-Ebenen gehören "Balanced", "Memory Optimized" und "Compute Optimized". Verwenden Sie die Flash-Ebene , um Arbeitsspeicher (RAM) und SSD-Datenspeicher (On-Disk) zu verwenden. Cachegröße Öffnen Sie die Dropdownliste, und wählen Sie eine Größe aus. Die Cachegröße hängt von der Ebene ab. Die kleinste Größe ist eine Ebene „Ausgewogen“. Die Größe mit dem größten Arbeitsspeicher ist eine Ebene „Arbeitsspeicheroptimiert“. Leistung Öffnen Sie die Dropdownliste, und wählen Sie eine Leistungseinstellung aus. Die Leistung hängt von der Anzahl der vCPUs ab. Die Anzahl der vCPU variiert je nach Ebene. Compute Optimized verfügt über die meisten vCPUs. Hinweise zum Auswählen der richtigen Leistungsklasse finden Sie unter Auswählen der richtigen Leistungsklasse.
Von Bedeutung
Alle Arbeitsspeicherebenen, die mehr als 120 GB Speicherplatz verwenden, befinden sich in der öffentlichen Vorschau, einschließlich „Arbeitsspeicheroptimiert M150“ und höher; „Ausgewogen B150“ und höher; und „Für Compute optimiert X150“ und höher. Alle diese Ebenen und höher befinden sich in der öffentlichen Vorschau.
Alle für Flash optimierten Ebenen befinden sich in der öffentlichen Vorschau.
Wählen Sie "Weiter" aus: Netzwerk , und wählen Sie entweder einen öffentlichen Endpunkt oder einen privaten Endpunkt aus.
Wählen Sie "Weiter" aus: Aktive Georeplikation. Um die aktive Georeplikation zu verwenden, muss sie während der Bereitstellung aktiviert werden. Caches ohne aktive Georeplikation können später nicht zu aktiven Georeplikationsgruppen hinzugefügt oder beitreten. Weitere Informationen finden Sie unter Konfigurieren der aktiven Georeplikation für Azure Managed Redis-Instanzen.
Wählen Sie die Registerkarte "Weiter: Erweitert " aus.
Konfigurieren Sie alle Redis-Module , die Sie der Instanz hinzufügen möchten.
Folgendes gilt standardmäßig für neue verwaltete Caches:
- Microsoft Entra ID ist aktiviert.
- Die Authentifizierung mit Zugriffsschlüsseln ist aus Sicherheitsgründen deaktiviert.
Von Bedeutung
Für eine optimale Sicherheit empfehlen wir, Microsoft Entra ID mit verwalteten Identitäten zu verwenden, um Anforderungen nach Möglichkeit für Ihren Cache zu autorisieren. Die Autorisierung mit Microsoft Entra ID und verwalteten Identitäten bietet eine höhere Sicherheit und Benutzerfreundlichkeit als die Autorisierung mit gemeinsam verwendetem Schlüssel. Weitere Informationen zum Verwenden verwalteter Identitäten mit Ihren Caches finden Sie unter Verwenden von Microsoft Entra ID für die Cacheauthentifizierung.
Festlegen der Clusteringrichtlinie:
- Verwenden von Enterprise zum Verwenden von RedisSearch oder anderen Modulen
- Verwenden Sie OSS für einen gruppierten Cache.
- Verwenden Sie nicht gruppierte (Vorschau) für einen nicht gruppierten Cache.
Weitere Informationen zum Auswählen einer Clusterrichtlinie finden Sie unter Clusterrichtlinie.
Von Bedeutung
Sie können die Clusteringrichtlinie einer Azure Managed Redis-Instanz nach dem Erstellen nicht mehr ändern. Wenn Sie RediSearch verwenden, ist die Enterprise-Clusterrichtlinie erforderlich, und
NoEviction
wird die einzige Entfernungsrichtlinie unterstützt.Von Bedeutung
Wenn Sie diese Cacheinstanz in einer Georeplikationsgruppe verwenden, können Entfernungsrichtlinien nach der Erstellung der Instanz nicht mehr geändert werden. Achten Sie darauf, die Entfernungsrichtlinie Ihrer primären Knoten zu kennen, bevor Sie den Cache erstellen. Weitere Informationen zur aktiven Georeplikation finden Sie unter Voraussetzungen für die aktive Georeplikation.
Von Bedeutung
Module können nach dem Erstellen einer Cache-Instanz nicht mehr geändert werden. Module müssen zum Zeitpunkt der Erstellung einer Azure Cache for Redis-Instanz aktiviert sein. Es gibt keine Option, die Konfiguration eines Moduls zu aktivieren, nachdem Sie einen Cache erstellt haben.
Wählen Sie Weiter: Tags aus, und überspringen Sie den Schritt.
Klicken Sie auf Weiter: Überprüfen + erstellen.
Überprüfen Sie die Einstellungen, und wählen Sie Erstellen aus.
Das Erstellen der Redis-Instanz dauert einige Minuten. Sie können den Fortschritt auf der Seite Übersicht von Azure Managed Redis überwachen. Wenn Wird ausgeführt als Status angezeigt wird, ist der Cache einsatzbereit.
Erstellen einer Azure Cache for Redis-Instanz
Suchen Sie im Azure-Portal nach Azure-Cache für Redis, und wählen Sie sie aus.
Wählen Sie auf der Seite "Azure Cache für Redis" die Option"Azure-Cache für Redis>" aus.
Konfigurieren Sie auf der Registerkarte " Grundlagen " auf der Seite "Neuer Redis-Cache " die folgenden Einstellungen:
- Abonnement: Wählen Sie das zu verwendende Abonnement aus.
- Ressourcengruppe: Wählen Sie eine Ressourcengruppe aus, oder wählen Sie "Neu erstellen " aus, und geben Sie einen neuen Ressourcengruppennamen ein. Wenn Sie alle App-Ressourcen in derselben Ressourcengruppe platzieren, können Sie sie ganz einfach verwalten oder löschen.
-
Name: Geben Sie einen Cachenamen ein, der in der Region eindeutig ist. Der Name muss bestimmte Anforderungen erfüllen:
- Bestehe aus einer Zeichenfolge von 1 bis 63 Zeichen.
- Nur Zahlen, Buchstaben und Bindestriche enthalten.
- Beginnen und enden Sie mit einer Zahl oder einem Buchstaben.
- Er darf keine aufeinanderfolgenden Bindestriche enthalten.
- Region: Wählen Sie eine Azure-Region in der Nähe anderer Dienste aus, die Ihren Cache verwenden.
- Cache-SKU: Wählen Sie eine SKU aus, um die verfügbaren Größen, Leistung und Features für Ihren Cache zu ermitteln.
- Cachegröße: Wählen Sie eine Cachegröße aus. Weitere Informationen finden Sie unter Azure Cache for Redis.
Wählen Sie die Registerkarte "Netzwerk " aus, oder wählen Sie "Weiter: Netzwerk" aus.
Wählen Sie auf der Registerkarte Netzwerk eine Konnektivitätsmethode für den Cache aus. Privater Endpunkt wird für sicherheit empfohlen. Wenn Sie "Privater Endpunkt" auswählen, wählen Sie "Privaten Endpunkt hinzufügen " aus, und erstellen Sie den privaten Endpunkt.
Wählen Sie die Registerkarte "Erweitert " aus, oder wählen Sie "Weiter: Erweitert" aus.
Konfigurieren Sie im Bereich "Erweitert" die folgenden Optionen:
- Wählen Sie "Microsoft Entra-Authentifizierung " oder "Zugriffstastenauthentifizierung" aus. Die Microsoft Entra-Authentifizierung ist standardmäßig aktiviert.
- Wählen Sie aus, ob der Nicht-TLS-Port aktiviert werden soll.
- Für einen Premium-Cache können Sie Verfügbarkeitszonen konfigurieren oder deaktivieren. Verfügbarkeitszonen können nach der Erstellung des Caches nicht deaktiviert werden. Für einen Standardcache werden Verfügbarkeitszonen automatisch zugewiesen. Verfügbarkeitszonen sind für die Standard-SKU nicht verfügbar.
- Konfigurieren Sie für einen Premium-Cache die Einstellungen für Replikatanzahl, Clustering und Shardanzahl, vom System zugewiesene verwaltete Identität und Datenpersistenz.
Die folgende Abbildung zeigt die Registerkarte "Erweitert " für die Standard-SKU.
Von Bedeutung
Verwenden Sie nach Möglichkeit Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen für Ihren Cache zu autorisieren. Die Autorisierung mithilfe der Microsoft Entra-ID und der verwalteten Identität bietet eine bessere Sicherheit und ist einfacher zu verwenden als die Autorisierung gemeinsam genutzter Zugriffstasten. Weitere Informationen zum Verwenden verwalteter Identitäten mit Ihren Caches finden Sie unter Verwenden von Microsoft Entra ID für die Cacheauthentifizierung.
Wählen Sie optional die Registerkarte "Kategorien " aus, oder wählen Sie "Weiter: Kategorien" aus, und geben Sie Tagnamen und Werte ein, um Ihre Cacheressourcen zu kategorisieren.
Wählen Sie "Überprüfen" und "Erstellen" aus, und wählen Sie " Erstellen" aus, sobald die Überprüfung bestanden wurde.
Die neue Cachebereitstellung dauert mehrere Minuten. Sie können den Bereitstellungsfortschritt auf der Seite "Azure Cache für Redis" im Portal überwachen. Wenn der Cachestatus"Ausgeführt" angezeigt wird, kann der Cache verwendet werden.
Installieren der Clientbibliothek „node-redis“
Die node-redis-Bibliothek ist der primäre Node.js-Client für Redis. Sie können den Client mit dem folgenden Befehl mit npm installieren:
npm install redis
Erstellen einer Node.js-App für den Zugriff auf einen Cache
Erstellen Sie eine Node.js-App, die entweder Microsoft Entra-ID oder Zugriffstasten verwendet, um eine Verbindung mit einer Azure Managed Redis-Instanz herzustellen. Wir empfehlen die Verwendung von Microsoft Entra ID.
Verwenden der Microsoft Entra ID-Authentifizierung in Ihrem Cache
Azure Managed Redis-Caches haben standardmäßig Microsoft Entra-Authentifizierung aktiviert.
Wählen Sie im Azure-Portal den Cache aus, für den Sie die tokenbasierte Microsoft Entra-Authentifizierung verwenden möchten.
Wählen Sie im Ressourcen-Menü die Option Authentifizierung aus.
Wählen Sie Mitglied auswählen aus, und geben Sie den Namen eines gültigen Benutzers ein. Dem eingegebenen Benutzer wird automatisch standardmäßig die Datenbesitzer-Zugriffsrichtlinie zugewiesen, wenn Sie Speichernauswählen. Sie können auch eine verwaltete Identität oder einen Dienstprinzipal eingeben, um eine Verbindung mit Ihrer Cache-Instanz herzustellen.
Weitere Informationen zur Verwendung von Microsoft Entra ID mit der Azure-Befehlszeilenschnittstelle finden Sie auf den Referenzseiten zu Identitäten.
Installieren der Azure Identity-Clientbibliothek für JavaScript
Mit der Microsoft-Authentifizierungsbibliothek können Sie Sicherheitstoken von Microsoft Identity abrufen, um Benutzer zu authentifizieren. Es ist eine Azure Identity-Clientbibliothek für JavaScript verfügbar, die die Microsoft-Authentifizierungsbibliothek verwendet, um Unterstützung bei der Tokenauthentifizierung bereitzustellen. Installieren Sie diese Bibliothek mit npm
.
npm install @azure/identity
Erstellen einer neuen Node.js-App mit Microsoft Entra ID
Fügen Sie Umgebungsvariablen für Ihren Hostnamen und Ihre Dienstprinzipal-ID hinzu. Dabei handelt es sich um die Objekt-ID Ihres Microsoft Entra ID-Dienstprinzipals oder -Benutzers. Suchen Sie im Azure-Portal nach dem Benutzernamen.
set AZURE_MANAGED_REDIS_HOST_NAME=contosoCache set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Erstellen Sie eine neue Skriptdatei namens redistest.js.
Fügen Sie den folgenden JavaScript-Beispielcode in die Datei ein. Dieser Code zeigt, wie Sie unter Verwendung der Umgebungsvariablen für Cachehostname und Schlüssel eine Verbindung mit einer Azure Managed Redis-Instanz herstellen. Der Code speichert auch einen Zeichenfolgenwert im Cache und ruft ihn ab. Außerdem werden die Befehle
PING
undCLIENT LIST
ausgeführt. Weitere Beispiele für die Verwendung von Redis mit dem node-redis-Client finden Sie unter https://redis.js.org/.const { createClient } = require("redis"); const { DefaultAzureCredential } = require("@azure/identity"); async function main() { // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc. const credential = new DefaultAzureCredential(); const redisScope = "https://redis.azure.com/.default"; // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password. let accessToken = await credential.getToken(redisScope); console.log("access Token", accessToken); // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password. const cacheConnection = createClient({ username: process.env.REDIS_SERVICE_PRINCIPAL_ID, password: accessToken.token, url: `redis://${process.env.AZURE_MANAGED_REDIS_HOST_NAME}:10000`, pingInterval: 100000, socket: { tls: true, keepAlive: 0 }, }); cacheConnection.on("error", (err) => console.log("Redis Client Error", err)); await cacheConnection.connect(); // PING command console.log("\nCache command: PING"); console.log("Cache response : " + await cacheConnection.ping()); // SET console.log("\nCache command: SET Message"); console.log("Cache response : " + await cacheConnection.set("Message", "Hello! The cache is working from Node.js!")); // GET console.log("\nCache command: GET Message"); console.log("Cache response : " + await cacheConnection.get("Message")); // Client list, useful to see if connection list is growing... console.log("\nCache command: CLIENT LIST"); console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"])); cacheConnection.disconnect(); return "Done" } main().then((result) => console.log(result)).catch(ex => console.log(ex));
Führen Sie das Skript mit Node.js aus.
node redistest.js
Die Ausgabe des Codes sieht wie folgt aus.
Cache command: PING Cache response : PONG Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: SET Message Cache response : OK Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: CLIENT LIST Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6 Done
Erstellen einer JavaScript-Beispiel-App mit erneuter Authentifizierung
Microsoft Entra ID-Zugriffstoken haben eine begrenzte Lebensdauer, und zwar durchschnittlich 75 Minuten. Um eine Verbindung zum Cache aufrechtzuerhalten, müssen Sie das Token aktualisieren. Dies wird im folgenden Beispiel mit JavaScript veranschaulicht.
Erstellen Sie eine neue Skriptdatei namens redistestreauth.js.
Fügen Sie den folgenden JavaScript-Beispielcode in die Datei ein.
const { createClient } = require("redis"); const { DefaultAzureCredential } = require("@azure/identity"); async function returnPassword(credential) { const redisScope = "https://redis.azure.com/.default"; // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password. return credential.getToken(redisScope); } async function main() { // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc. const credential = new DefaultAzureCredential(); let accessToken = await returnPassword(credential); // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password. let cacheConnection = createClient({ username: process.env.REDIS_SERVICE_PRINCIPAL_ID, password: accessToken.token, url: `redis://${process.env.AZURE_MANAGED_REDIS_HOST_NAME}:10000`, pingInterval: 100000, socket: { tls: true, keepAlive: 0 }, }); cacheConnection.on("error", (err) => console.log("Redis Client Error", err)); await cacheConnection.connect(); for (let i = 0; i < 3; i++) { try { // PING command console.log("\nCache command: PING"); console.log("Cache response : " + await cacheConnection.ping()); // SET console.log("\nCache command: SET Message"); console.log("Cache response : " + await cacheConnection.set("Message", "Hello! The cache is working from Node.js!")); // GET console.log("\nCache command: GET Message"); console.log("Cache response : " + await cacheConnection.get("Message")); // Client list, useful to see if connection list is growing... console.log("\nCache command: CLIENT LIST"); console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"])); break; } catch (e) { console.log("error during redis get", e.toString()); if ((accessToken.expiresOnTimestamp <= Date.now())|| (redis.status === "end" || "close") ) { await redis.disconnect(); accessToken = await returnPassword(credential); cacheConnection = createClient({ username: process.env.REDIS_SERVICE_PRINCIPAL_ID, password: accessToken.token, url: `redis://${process.env.AZURE_MANAGED_REDIS_HOST_NAME}:10000`, pingInterval: 100000, socket: { tls: true, keepAlive: 0 }, }); } } } } main().then((result) => console.log(result)).catch(ex => console.log(ex));
Führen Sie das Skript mit Node.js aus.
node redistestreauth.js
Die Ausgabe des Codes sieht wie folgt aus.
Cache command: PING Cache response : PONG Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: SET Message Cache response : OK Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: CLIENT LIST Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6
Hinweis
Weitere Beispiele für die Verwendung von Microsoft Entra ID zur Authentifizierung bei Redis mithilfe der „node-redis“-Bibliothek finden Sie in diesem GitHub-Repository.
Erstellen einer Node.js-App für den Zugriff auf einen Cache
Erstellen Sie eine Node.js-App, die entweder Microsoft Entra ID oder Zugriffsschlüssel verwendet, um eine Verbindung mit einer Azure Cache for Redis-Instanz herzustellen. Wir empfehlen die Verwendung von Microsoft Entra ID.
Verwenden der Microsoft Entra ID-Authentifizierung in Ihrem Cache
Azure Managed Redis-Caches haben standardmäßig Microsoft Entra-Authentifizierung aktiviert.
Wählen Sie im Azure-Portal den Cache aus, für den Sie die tokenbasierte Microsoft Entra-Authentifizierung verwenden möchten.
Wählen Sie im Ressourcen-Menü die Option Authentifizierung aus.
Wählen Sie Mitglied auswählen aus, und geben Sie den Namen eines gültigen Benutzers ein. Dem eingegebenen Benutzer wird automatisch standardmäßig die Datenbesitzer-Zugriffsrichtlinie zugewiesen, wenn Sie Speichernauswählen. Sie können auch eine verwaltete Identität oder einen Dienstprinzipal eingeben, um eine Verbindung mit Ihrer Cache-Instanz herzustellen.
Weitere Informationen zur Verwendung von Microsoft Entra ID mit der Azure-Befehlszeilenschnittstelle finden Sie auf den Referenzseiten zu Identitäten.
Installieren der Azure Identity-Clientbibliothek für JavaScript
Mit der Microsoft-Authentifizierungsbibliothek können Sie Sicherheitstoken von Microsoft Identity abrufen, um Benutzer zu authentifizieren. Es ist eine Azure Identity-Clientbibliothek für JavaScript verfügbar, die die Microsoft-Authentifizierungsbibliothek verwendet, um Unterstützung bei der Tokenauthentifizierung bereitzustellen. Installieren Sie diese Bibliothek mit npm
.
npm install @azure/identity
Erstellen einer neuen Node.js-App mit Microsoft Entra ID
Fügen Sie Umgebungsvariablen für Ihren Hostnamen und Ihre Dienstprinzipal-ID hinzu. Dabei handelt es sich um die Objekt-ID Ihres Microsoft Entra ID-Dienstprinzipals oder -Benutzers. Suchen Sie im Azure-Portal nach dem Benutzernamen.
set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Erstellen Sie eine neue Skriptdatei namens redistest.js.
Fügen Sie den folgenden JavaScript-Beispielcode in die Datei ein. Dieser Code zeigt, wie Sie unter Verwendung der Umgebungsvariablen für Cachehostname und Schlüssel eine Verbindung mit einer Azure Cache for Redis-Instanz herstellen. Der Code speichert auch einen Zeichenfolgenwert im Cache und ruft ihn ab. Außerdem werden die Befehle
PING
undCLIENT LIST
ausgeführt. Weitere Beispiele für die Verwendung von Redis mit dem node-redis-Client finden Sie unter https://redis.js.org/.const { createClient } = require("redis"); const { DefaultAzureCredential } = require("@azure/identity"); async function main() { // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc. const credential = new DefaultAzureCredential(); const redisScope = "https://redis.azure.com/.default"; // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password. let accessToken = await credential.getToken(redisScope); console.log("access Token", accessToken); // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password. const cacheConnection = createClient({ username: process.env.REDIS_SERVICE_PRINCIPAL_ID, password: accessToken.token, url: `redis://${process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME}:6380`, pingInterval: 100000, socket: { tls: true, keepAlive: 0 }, }); cacheConnection.on("error", (err) => console.log("Redis Client Error", err)); await cacheConnection.connect(); // PING command console.log("\nCache command: PING"); console.log("Cache response : " + await cacheConnection.ping()); // SET console.log("\nCache command: SET Message"); console.log("Cache response : " + await cacheConnection.set("Message", "Hello! The cache is working from Node.js!")); // GET console.log("\nCache command: GET Message"); console.log("Cache response : " + await cacheConnection.get("Message")); // Client list, useful to see if connection list is growing... console.log("\nCache command: CLIENT LIST"); console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"])); cacheConnection.disconnect(); return "Done" } main().then((result) => console.log(result)).catch(ex => console.log(ex));
Führen Sie das Skript mit Node.js aus.
node redistest.js
Die Ausgabe des Codes sieht wie folgt aus.
Cache command: PING Cache response : PONG Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: SET Message Cache response : OK Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: CLIENT LIST Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6 Done
Erstellen einer JavaScript-Beispiel-App mit erneuter Authentifizierung
Microsoft Entra ID-Zugriffstoken haben eine begrenzte Lebensdauer, und zwar durchschnittlich 75 Minuten. Um eine Verbindung zum Cache aufrechtzuerhalten, müssen Sie das Token aktualisieren. Dies wird im folgenden Beispiel mit JavaScript veranschaulicht.
Erstellen Sie eine neue Skriptdatei namens redistestreauth.js.
Fügen Sie den folgenden JavaScript-Beispielcode in die Datei ein.
const { createClient } = require("redis"); const { DefaultAzureCredential } = require("@azure/identity"); async function returnPassword(credential) { const redisScope = "https://redis.azure.com/.default"; // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password. return credential.getToken(redisScope); } async function main() { // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc. const credential = new DefaultAzureCredential(); let accessToken = await returnPassword(credential); // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password. let cacheConnection = createClient({ username: process.env.REDIS_SERVICE_PRINCIPAL_ID, password: accessToken.token, url: `redis://${process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME}:6380`, pingInterval: 100000, socket: { tls: true, keepAlive: 0 }, }); cacheConnection.on("error", (err) => console.log("Redis Client Error", err)); await cacheConnection.connect(); for (let i = 0; i < 3; i++) { try { // PING command console.log("\nCache command: PING"); console.log("Cache response : " + await cacheConnection.ping()); // SET console.log("\nCache command: SET Message"); console.log("Cache response : " + await cacheConnection.set("Message", "Hello! The cache is working from Node.js!")); // GET console.log("\nCache command: GET Message"); console.log("Cache response : " + await cacheConnection.get("Message")); // Client list, useful to see if connection list is growing... console.log("\nCache command: CLIENT LIST"); console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"])); break; } catch (e) { console.log("error during redis get", e.toString()); if ((accessToken.expiresOnTimestamp <= Date.now())|| (redis.status === "end" || "close") ) { await redis.disconnect(); accessToken = await returnPassword(credential); cacheConnection = createClient({ username: process.env.REDIS_SERVICE_PRINCIPAL_ID, password: accessToken.token, url: `redis://${process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME}:6380`, pingInterval: 100000, socket: { tls: true, keepAlive: 0 }, }); } } } } main().then((result) => console.log(result)).catch(ex => console.log(ex));
Führen Sie das Skript mit Node.js aus.
node redistestreauth.js
Die Ausgabe des Codes sieht wie folgt aus.
Cache command: PING Cache response : PONG Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: SET Message Cache response : OK Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: CLIENT LIST Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6
Hinweis
Weitere Beispiele für die Verwendung von Microsoft Entra ID zur Authentifizierung bei Redis mithilfe der „node-redis“-Bibliothek finden Sie in diesem GitHub-Repository.
Bereinigen von Ressourcen
Wenn Sie die in diesem Artikel erstellten Ressourcen weiterhin verwenden möchten, behalten Sie die Ressourcengruppe bei.
Wenn Sie die Ressourcen nicht mehr benötigen, können Sie die erstellte Azure-Ressourcengruppe ansonsten löschen, um Kosten zu vermeiden.
Von Bedeutung
Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Beim Löschen einer Ressourcengruppe werden alle darin enthaltenen Ressourcen unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen in einer vorhandenen Ressourcengruppe erstellt haben, die Ressourcen enthält, die Sie behalten wollen, können Sie jede Ressource einzeln löschen, statt die Ressourcengruppe zu löschen.
So löschen Sie eine Ressourcengruppe
Melden Sie sich beim Azure-Portal an, und wählen Sie anschließend Ressourcengruppen aus.
Wählen Sie die Ressourcengruppe aus, die Sie löschen möchten.
Wenn viele Ressourcengruppen vorhanden sind, verwenden Sie das Feld Nach einem beliebigen Feld filtern..., und geben Sie den Namen Ihrer Ressourcengruppe ein, die Sie für diesen Artikel erstellt haben. Wählen Sie die Ressourcengruppe in der Ergebnisliste aus.
Wählen Sie die Option Ressourcengruppe löschen.
Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie den Namen Ihrer Ressourcengruppe ein, und wählen Sie Löschen aus.
Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.
Holen Sie sich den Beispielcode
Rufen Sie den Node.js-Schnellstart auf GitHub ab.
Verwandte Inhalte
In dieser Schnellstartanleitung haben Sie erfahren, wie Sie entweder azure Managed Redis oder Azure Cache for Redis aus einer Node.js-Anwendung verwenden. Erfahren Sie mehr über die Angebote von Azure Redis: