Delen via


Quickstart: Azure Redis gebruiken in Node.js

In deze quickstart neemt u Azure Managed Redis (preview) of Azure Cache voor Redis op in een Node.js-app. De app heeft toegang tot een beveiligde, toegewezen cache die toegankelijk is vanuit elke toepassing in Azure.

Vereisten

Een exemplaar van Azure Managed Redis (preview) maken

  1. Als u een exemplaar van Azure Managed Redis (preview) wilt maken, meldt u zich aan bij Azure Portal en selecteert u Een resource maken.

  2. Typ op de pagina Nieuw in het zoekvak Azure Cache voor Redis.

  3. Configureer op de pagina Nieuwe Redis-cache de instellingen voor de nieuwe cache.

    Instelling Een waarde kiezen Beschrijving
    Abonnement Open de vervolgkeuzelijst en selecteer uw abonnement. Het abonnement waaronder u dit nieuwe Azure Managed Redis-exemplaar wilt maken.
    Resourcegroep Open de vervolgkeuzelijst en selecteer een resourcegroep of kies Nieuwe maken en geef een naam voor de nieuwe resourcegroep op. Naam voor de resourcegroep waarin de cache en andere resources moeten worden gemaakt. Door al uw app-resources in één resourcegroep te plaatsen, kunt u ze eenvoudig beheren of verwijderen.
    DNS-naam Voer een naam in die uniek is in de regio. De cachenaam moet een tekenreeks tussen 1 en 63 tekens zijn in combinatie met de regionaam van de cache die alleen cijfers, letters of afbreekstreepjes bevat. (Als de cachenaam minder dan 45 tekens lang is, moet deze in alle momenteel beschikbare regio's werken.) De naam moet beginnen en eindigen met een getal of letter en mag geen opeenvolgende afbreekstreepjes bevatten. De hostnaam van uw cache-exemplaar is\<DNS name\>.\<Azure region\>.redis.azure.net.
    Location Open de vervolgkeuzelijst en selecteer een locatie. Azure Managed Redis is beschikbaar in geselecteerde Azure-regio's.
    Cachetype Vervolgkeuzelijst en selecteer de prestatielaag en cachegrootte. De laag bepaalt de prestaties van het Redis-exemplaar, terwijl de cachegrootte bepaalt welk geheugen beschikbaar is voor het opslaan van gegevens. Zie De juiste laag kiezen voor hulp bij het kiezen van de juiste prestatielaag

    Schermopname van het tabblad Basisbeginselen van Azure Managed Redis.

  4. Selecteer Volgende: Netwerken en selecteer een openbaar of privé-eindpunt.

  5. Selecteer Volgende: Geavanceerd.

    Configureer alle Redis-modules die u wilt toevoegen aan het exemplaar.

    Standaard voor een nieuwe beheerde cache:

    • Microsoft Entra-id is ingeschakeld.
    • Verificatie van toegangssleutels is uitgeschakeld om veiligheidsredenen.

    Belangrijk

    Voor optimale beveiliging wordt u aangeraden Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen tegen uw cache te autoriseren, indien mogelijk. Autorisatie met behulp van Microsoft Entra ID en beheerde identiteiten biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde toegangssleutels. Zie Microsoft Entra ID gebruiken voor cacheverificatie voor meer informatie over het gebruik van beheerde identiteiten met uw cache.

    Stel clusterbeleid in op Enterprise voor een niet-geclusterde cache of op OSS voor een geclusterde cache. Zie Clusterbeleid voor meer informatie over het kiezen van Clusterbeleid.

    Schermopname van het tabblad Azure Managed Redis Advanced.

    Als u actieve geo-replicatie gebruikt, moet deze worden geconfigureerd tijdens het maken. Zie Actieve geo-replicatie configureren voor Azure Managed Redis-exemplaren voor meer informatie.

    Belangrijk

    U kunt het clusterbeleid van een Azure Managed Redis-exemplaar (preview) niet wijzigen nadat u het hebt gemaakt. Als u RediSearch gebruikt , is het clusterbeleid voor ondernemingen vereist en NoEviction wordt het enige verwijderingsbeleid ondersteund.

    Belangrijk

    Als u dit cache-exemplaar in een geo-replicatiegroep gebruikt, kan verwijderingsbeleid niet worden gewijzigd nadat het exemplaar is gemaakt. Zorg ervoor dat u het verwijderingsbeleid van uw primaire knooppunten kent voordat u de cache maakt. Zie Vereisten voor actieve geo-replicatie voor meer informatie over actieve geo-replicatie.

    Belangrijk

    U kunt modules niet wijzigen nadat u een cache-exemplaar hebt gemaakt. Modules moeten zijn ingeschakeld op het moment dat u een Azure Cache voor Redis exemplaar maakt. Er is geen optie om de configuratie van een module in te schakelen nadat u een cache hebt gemaakt.

  6. Selecteer Volgende: Tags en overslaan.

  7. Selecteer Volgende: Beoordelen en maken.

  8. Controleer de instellingen en selecteer Maken.

    Het duurt enkele minuten voordat het Redis-exemplaar is gemaakt. U kunt de voortgang controleren op de overzichtspagina van Azure Managed Redis. Als u bij StatusWordt uitgevoerd ziet staan, kunt u de cache gebruiken.

Een instantie van Azure Cache voor Redis maken

  1. Meld u aan bij Azure Portal om een cache te maken. Selecteer een resource maken in het portalmenu.

    Sceenshot met de optie Een resource maken gemarkeerd in het linkernavigatiedeelvenster in Azure Portal.

  2. Voer in het deelvenster Aan de slag Azure Cache voor Redis in de zoekbalk in. Zoek Azure Cache voor Redis in de zoekresultaten en selecteer Vervolgens Maken.

    Schermopname van Azure Marketplace met Azure Cache voor Redis in het zoekvak en de knop Maken is gemarkeerd.

  3. Configureer in het deelvenster Nieuwe Redis Cache op het tabblad Basis de volgende instellingen voor uw cache:

    Instelling Actie Beschrijving
    Abonnement Selecteer uw Azure-abonnement. Het abonnement dat moet worden gebruikt om het nieuwe exemplaar van Azure Cache voor Redis te maken.
    Resourcegroep Selecteer een resourcegroep of selecteer Nieuwe maken en voer een nieuwe resourcegroepnaam in. Een naam voor de resourcegroep waarin u uw cache en andere resources wilt maken. Door al uw app-resources in één resourcegroep te plaatsen, kunt u ze eenvoudig beheren of verwijderen.
    DNS-naam Voer een unieke naam in. De cachenaam moet een tekenreeks van 1 tot 63 tekens zijn die alleen cijfers, letters en afbreekstreepjes bevat. De naam moet beginnen en eindigen met een getal of letter en mag geen opeenvolgende afbreekstreepjes bevatten. De hostnaam van uw cache-exemplaar is\<DNS name>.redis.cache.windows.net.
    Location Selecteer een locatie. Een Azure-regio in de buurt van andere services die gebruikmaken van uw cache.
    Cache-SKU Selecteer een SKU. De SKU bepaalt de grootte, prestaties en functieparameters die beschikbaar zijn voor de cache. Zie Azure Cache voor Redis overzicht voor meer informatie.
    Cachegrootte Selecteer een cachegrootte. Zie Azure Cache voor Redis overzicht voor meer informatie.
  4. Selecteer het tabblad Netwerken of selecteer Volgende: Netwerken.

  5. Selecteer op het tabblad Netwerken een connectiviteitsmethode die u voor de cache wilt gebruiken.

  6. Selecteer het tabblad Geavanceerd of selecteer Volgende: Geavanceerd.

  7. Controleer of selecteer in het deelvenster Geavanceerd een verificatiemethode op basis van de volgende informatie:

    Schermopname van het deelvenster Geavanceerd en de beschikbare opties die u kunt selecteren.

    • Microsoft Entra Authentication is standaard ingeschakeld voor een nieuwe Basic-, Standard- of Premium-cache en toegangssleutelsverificatie is uitgeschakeld.
    • Voor Basic- of Standard-caches kunt u de selectie voor een niet-TLS-poort kiezen.
    • Voor Standard- en Premium-caches kunt u ervoor kiezen om beschikbaarheidszones in te schakelen. U kunt beschikbaarheidszones niet uitschakelen nadat de cache is gemaakt.
    • Voor een Premium-cache configureert u de instellingen voor niet-TLS-poort, clustering, beheerde identiteit en gegevenspersistentie.

    Belangrijk

    Voor optimale beveiliging wordt u aangeraden Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen tegen uw cache te autoriseren, indien mogelijk. Autorisatie met behulp van Microsoft Entra ID en beheerde identiteiten biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde toegangssleutels. Zie Microsoft Entra ID gebruiken voor cacheverificatie voor meer informatie over het gebruik van beheerde identiteiten met uw cache.

  8. (Optioneel) Selecteer het tabblad Tags of selecteer Volgende: Tags.

  9. (Optioneel) Voer op het tabblad Tags een tagnaam en -waarde in als u de cacheresource wilt categoriseren.

  10. Selecteer de knop Controleren en maken.

    Op het tabblad Controleren en maken valideert Azure uw configuratie automatisch.

  11. Nadat het groene bericht Validatie is geslaagd , selecteert u Maken.

Een nieuwe cache-implementatie vindt meer dan enkele minuten plaats. U kunt de voortgang van de implementatie controleren in het deelvenster Azure Cache voor Redis Overzicht. Wanneer de status Wordt uitgevoerd, is de cache gereed voor gebruik.

De node-redis-clientbibliotheek installeren

De node-redis-bibliotheek is de primaire Node.js-client voor Redis. U kunt de client installeren met npm met behulp van de volgende opdracht:

npm install redis

Een Node.js-app maken voor toegang tot een cache

Maak een Node.js-app die gebruikmaakt van Microsoft Entra ID of toegangssleutels om verbinding te maken met een exemplaar van Azure Managed Redis (preview). U wordt aangeraden Microsoft Entra ID te gebruiken.

Microsoft Entra ID-verificatie gebruiken in uw cache

Voor Azure Redis-caches, met uitzondering van Enterprise- en Enterprise Flash-lagen, is Microsoft Entra-verificatie standaard ingeschakeld. Toegangssleutels zijn standaard uitgeschakeld.

Belangrijk

Microsoft raadt het gebruik van Microsoft Entra ID-verificatie aan voor de veiligste verificatie-ervaring in plaats van wachtwoorden of toegangssleutels te gebruiken. De verificatie die in dit gedeelte van het artikel wordt beschreven, maakt gebruik van toegangssleutels, waarvoor een zeer hoge mate van vertrouwen in de toepassing is vereist en risico's met zich meebrengt die niet aanwezig zijn bij het gebruik van Microsoft Entra-id. Gebruik de methode in dit document alleen als Verificatie van Microsoft Entra-id's niet haalbaar is.

  1. Selecteer in Azure Portal de cache waar u verificatie op basis van Microsoft Entra-tokens wilt gebruiken.

  2. Selecteer Verificatie in het menu Resource.

  3. Selecteer Lid selecteren en voer de naam in van een geldige gebruiker. De gebruiker die u invoert, wordt standaard automatisch toegangsbeleid voor gegevenseigenaar toegewezen wanneer u Opslaan selecteert. U kunt ook een beheerde identiteit of service-principal invoeren om verbinding te maken met uw cache-exemplaar.

    Schermopname van verificatie die is geselecteerd in het resourcemenu en de ingeschakelde Microsoft Entra-verificatie inschakelen.

Zie de referentiepagina's voor identiteit voor informatie over het gebruik van Microsoft Entra ID met Azure CLI.

De JavaScript Azure Identity-clientbibliotheek installeren

Met de Microsoft Authentication Library (MSAL) kunt u beveiligingstokens verkrijgen van de Microsoft-identiteit om gebruikers te verifiëren. Er is een JavaScript Azure Identity-clientbibliotheek beschikbaar die MSAL gebruikt om ondersteuning voor tokenverificatie te bieden. Installeer deze bibliotheek met behulp van npm:

npm install @azure/identity

Een nieuwe Node.js-app maken met behulp van Microsoft Entra ID

  1. Voeg omgevingsvariabelen toe voor uw hostnaam en service-principal-id. Dit is de object-id van uw Microsoft Entra ID-service-principal of -gebruiker. Zoek in Azure Portal naar de gebruikersnaam.

    set AZURE_MANAGED_REDIS_HOST_NAME=contosoCache
    set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
  2. Maak een nieuw scriptbestand met de naam redistest.js.

  3. Voeg het volgende voorbeeld van JavaScript toe aan het bestand. Deze code laat zien hoe u verbinding maakt met een azure Managed Redis-exemplaar met behulp van de omgevingsvariabelen voor de cachehostnaam en sleutelomgeving. Met de code wordt ook een tekenreekswaarde opgeslagen in de cache en daaruit opgehaald. De opdrachten PING en CLIENT LIST worden ook uitgevoerd. Zie voor meer voorbeelden van het gebruik van Redis met de node-redis-clienthttps://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));
    
  4. Voer het script uit met Node.js.

    node redistest.js
    
  5. De uitvoer van uw code ziet er als volgt uit.

    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
    

Een JavaScript-voorbeeld-app maken met opnieuw verificatie

Microsoft Entra ID-toegangstokens hebben een beperkte levensduur, gemiddeld 75 minuten. Als u een verbinding met uw cache wilt behouden, moet u het token vernieuwen. In dit voorbeeld ziet u hoe u dit doet met behulp van JavaScript.

  1. Maak een nieuw scriptbestand met de naam redistestreauth.js.

  2. Voeg het volgende voorbeeld van JavaScript toe aan het bestand.

     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));
    
  3. Voer het script uit met Node.js.

    node redistestreauth.js
    
  4. De uitvoer van uw code ziet er als volgt uit.

     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
    
    

Notitie

Zie deze GitHub-opslagplaats voor aanvullende voorbeelden van het gebruik van Microsoft Entra ID voor verificatie bij Redis met behulp van de node-redis-bibliotheek

Een Node.js-app maken voor toegang tot een cache

Maak een Node.js-app die gebruikmaakt van Microsoft Entra ID of toegangssleutels om verbinding te maken met een Azure Cache voor Redis. U wordt aangeraden Microsoft Entra ID te gebruiken.

Microsoft Entra ID-verificatie gebruiken in uw cache

Voor Azure Redis-caches, met uitzondering van Enterprise- en Enterprise Flash-lagen, is Microsoft Entra-verificatie standaard ingeschakeld. Toegangssleutels zijn standaard uitgeschakeld.

Belangrijk

Microsoft raadt het gebruik van Microsoft Entra ID-verificatie aan voor de veiligste verificatie-ervaring in plaats van wachtwoorden of toegangssleutels te gebruiken. De verificatie die in dit gedeelte van het artikel wordt beschreven, maakt gebruik van toegangssleutels, waarvoor een zeer hoge mate van vertrouwen in de toepassing is vereist en risico's met zich meebrengt die niet aanwezig zijn bij het gebruik van Microsoft Entra-id. Gebruik de methode in dit document alleen als Verificatie van Microsoft Entra-id's niet haalbaar is.

  1. Selecteer in Azure Portal de cache waar u verificatie op basis van Microsoft Entra-tokens wilt gebruiken.

  2. Selecteer Verificatie in het menu Resource.

  3. Selecteer Lid selecteren en voer de naam in van een geldige gebruiker. De gebruiker die u invoert, wordt standaard automatisch toegangsbeleid voor gegevenseigenaar toegewezen wanneer u Opslaan selecteert. U kunt ook een beheerde identiteit of service-principal invoeren om verbinding te maken met uw cache-exemplaar.

    Schermopname van verificatie die is geselecteerd in het resourcemenu en de ingeschakelde Microsoft Entra-verificatie inschakelen.

Zie de referentiepagina's voor identiteit voor informatie over het gebruik van Microsoft Entra ID met Azure CLI.

De JavaScript Azure Identity-clientbibliotheek installeren

Met de Microsoft Authentication Library (MSAL) kunt u beveiligingstokens verkrijgen van de Microsoft-identiteit om gebruikers te verifiëren. Er is een JavaScript Azure Identity-clientbibliotheek beschikbaar die MSAL gebruikt om ondersteuning voor tokenverificatie te bieden. Installeer deze bibliotheek met behulp van npm:

npm install @azure/identity

Een nieuwe Node.js-app maken met behulp van Microsoft Entra ID

  1. Voeg omgevingsvariabelen toe voor uw hostnaam en service-principal-id. Dit is de object-id van uw Microsoft Entra ID-service-principal of -gebruiker. Zoek in Azure Portal naar de gebruikersnaam.

    set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache
    set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
  2. Maak een nieuw scriptbestand met de naam redistest.js.

  3. Voeg het volgende voorbeeld van JavaScript toe aan het bestand. Deze code laat zien hoe u verbinding kunt maken met een instantie van Azure Cache voor Redis via de omgevingsvariabelen voor hostnaam en sleutel. Met de code wordt ook een tekenreekswaarde opgeslagen in de cache en daaruit opgehaald. De opdrachten PING en CLIENT LIST worden ook uitgevoerd. Zie voor meer voorbeelden van het gebruik van Redis met de node-redis-clienthttps://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));
    
  4. Voer het script uit met Node.js.

    node redistest.js
    
  5. De uitvoer van uw code ziet er als volgt uit.

    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
    

Een JavaScript-voorbeeld-app maken met opnieuw verificatie

Microsoft Entra ID-toegangstokens hebben een beperkte levensduur, gemiddeld 75 minuten. Als u een verbinding met uw cache wilt behouden, moet u het token vernieuwen. In dit voorbeeld ziet u hoe u dit doet met behulp van JavaScript.

  1. Maak een nieuw scriptbestand met de naam redistestreauth.js.

  2. Voeg het volgende voorbeeld van JavaScript toe aan het bestand.

     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));
    
  3. Voer het script uit met Node.js.

    node redistestreauth.js
    
  4. De uitvoer van uw code ziet er als volgt uit.

     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
    
    

Notitie

Zie deze GitHub-opslagplaats voor aanvullende voorbeelden van het gebruik van Microsoft Entra ID voor verificatie bij Redis met behulp van de node-redis-bibliotheek

Resources opschonen

Als u de resources wilt blijven gebruiken die u in dit artikel hebt gemaakt, moet u de resourcegroep behouden.

Als u klaar bent met de resources, kunt u de Azure-resourcegroep verwijderen die u hebt gemaakt om kosten te voorkomen.

Belangrijk

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. Wanneer u een resourcegroep verwijdert, worden alle resources in de groep definitief verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources in een bestaande resourcegroep hebt gemaakt die resources bevat die u wilt behouden, kunt u elke resource afzonderlijk verwijderen in plaats van de resourcegroep te verwijderen.

Een resourcegroep verwijderen

  1. Meld u aan bij Azure Portal en selecteer vervolgens Resourcegroepen.

  2. Selecteer de resourcegroep die u wilt verwijderen.

    Als er veel resourcegroepen zijn, gebruikt u het vak Filter voor een veld... en typt u de naam van de resourcegroep die u voor dit artikel hebt gemaakt. Selecteer de resourcegroep in de lijst met resultaten.

    Schermopname van een lijst met resourcegroepen die u wilt verwijderen in het werkvenster.

  3. Selecteer Resourcegroep verwijderen.

  4. U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Typ ter bevestiging de naam van de resourcegroep. Selecteer vervolgens Verwijderen.

    Schermopname van een formulier waarvoor de resourcenaam is vereist om het verwijderen te bevestigen.

Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.

De voorbeeldcode halen

Download de quickstart Node.js op GitHub.

In deze quickstart hebt u geleerd hoe u Azure Managed Redis (preview) of Azure Cache voor Redis kunt gebruiken vanuit een Node.js-toepassing. Meer informatie over de Azure Redis-aanbiedingen: