Sdílet prostřednictvím


Rychlý start: Použití Azure Redis v Node.js

V tomto rychlém startu použijete Azure Managed Redis nebo Azure Cache for Redis do aplikace Node.js. Aplikace má přístup k zabezpečené vyhrazené mezipaměti, která je přístupná z libovolné aplikace v Azure.

Požadavky

Vytvoření instance Azure Managed Redis

  1. Pokud chcete vytvořit instanci Azure Managed Redis, přihlaste se k webu Azure Portal a vyberte Vytvořit prostředek.

  2. Na stránce Nový zadejte do vyhledávacího pole Azure Cache for Redis.

  3. Na kartě New Redis Cache nakonfigurujte základní nastavení vaší nové mezipaměti.

    Nastavení Zvolit hodnotu Popis
    Předplatné Rozevřete seznam a vyberte svoje předplatné. Předplatné, ve kterém se má tato nová instance Azure Managed Redis vytvořit.
    Skupina zdrojů Rozevírací seznam a vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte nový název skupiny prostředků. Název skupiny prostředků, ve které chcete vytvořit mezipaměť a další prostředky. Když umístíte všechny prostředky aplikace do jedné skupiny prostředků, můžete je snadno spravovat nebo odstraňovat společně.
    název Zadejte název, který je v oblasti jedinečný. Název mezipaměti musí být řetězec mezi 1 a 63 znaky v kombinaci s názvem oblasti mezipaměti, který obsahuje pouze číslice, písmena nebo pomlčky. (Pokud je název mezipaměti kratší než 45 znaků, měl by fungovat ve všech aktuálně dostupných oblastech.) Název musí začínat a končit číslicí nebo písmenem a nesmí obsahovat po sobě jdoucí pomlčky. Název hostitele vaší instance mezipaměti je \<DNS name\>.\<Azure region\>.redis.azure.net.
    Oblast Rozbalte a vyberte umístění. Azure Managed Redis je k dispozici ve vybraných oblastech Azure.
    Datová vrstva Vyberte buď In-memory pro vysoce výkonné mezipaměti, nebo Flash pro mezipaměti s nižším výkonem. Úrovně úložiště v paměti zahrnují Vyvážená, Paměťově optimalizovaná a Výpočetně optimalizovaná. Použijte vrstvu Flash k použití datového úložiště v paměti (RAM) a datového úložiště na disku (SSD).
    Velikost mezipaměti Rozbalte seznam a vyberte velikost. Velikost mezipaměti závisí na úrovni. Nejmenší velikost je úroveň Balanced. Největší paměťová vrstva je vrstva Optimalizovaná pro paměť.
    výkon Rozevřete rozevírací seznam a vyberte předvolbu výkonu. Výkon závisí na počtu vCPU. Počet virtuálních procesorů se liší podle úrovně. Výpočetně optimalizované má nejvíce virtuálních procesorů.

    Pokyny k výběru správné úrovně výkonu najdete v tématu Výběr správné úrovně.

    Důležité

    Všechny vrstvy v paměti, které používají více než 120 GB úložiště, jsou v rámci veřejné ukázky, včetně Paměť optimalizovaná; M150 a vyšší; Vyvážená B150 a vyšší; a Výpočetně optimalizováno; X150 a vyšší. Všechny tyto úrovně a vyšší jsou ve verzi Public Preview.

    Všechny úrovně Optimalizované pro Flash jsou ve verzi Public Preview.

  4. Vyberte Další: Sítě a vyberte veřejný koncový bod nebo privátní koncový bod.

  5. Vyberte Další: Aktivní geografická replikace. Pokud chcete použít aktivní geografickou replikaci, musí být povolená během zřizování. Mezipaměti bez aktivní geografické replikace není možné později přidat do aktivních skupin geografické replikace ani se k nim připojit. Další informace najdete v tématu Konfigurace aktivní geografické replikace pro instance Azure Managed Redis.

  6. Vyberte kartu Další: Upřesnit .

    Nakonfigurujte všechny moduly Redis , které chcete přidat do instance.

    Ve výchozím nastavení pro novou spravovanou mezipaměť:

    • Je povoleno ID Microsoft Entra.
    • Ověřování přístupových klíčů je zakázáno z bezpečnostních důvodů.

    Důležité

    Pro zajištění optimálního zabezpečení doporučujeme použít ID Microsoft Entra se spravovanými identitami k autorizaci požadavků v mezipaměti, pokud je to možné. Autorizace pomocí Microsoft Entra ID a spravovaných identit poskytuje vynikající zabezpečení a snadné použití prostřednictvím autorizace sdíleného přístupového klíče. Další informace o používání spravovaných identit s mezipamětí naleznete v tématu Použití MICROSOFT Entra ID pro ověřování mezipaměti.

    Nastavení zásad clusteringu:

    • Použití enterprise k použití RedisSearch nebo jiných modulů
    • Použijte OSS pro clusterovanou mezipaměť.
    • Pro použití neseskupené mezipaměti použijte Non-clustered (Preview).

    Další informace o výběru zásad clusteringu najdete v tématu Zásady clusteru.

    Důležité

    Po vytvoření nemůžete změnit zásady clusteringu instance Azure Managed Redis. Pokud používáte RediSearch, vyžaduje se zásada podnikového clusteru a NoEviction je to jediná podporovaná zásada vyřazení.

    Důležité

    Pokud tuto instanci mezipaměti používáte ve skupině geografické replikace, zásady vyřazení nelze po vytvoření instance změnit. Před vytvořením mezipaměti nezapomeňte znát zásady vyřazení primárních uzlů. Další informace o aktivní geografické replikaci najdete v tématu Požadavky na aktivní geografickou replikaci.

    Důležité

    Po vytvoření instance mezipaměti nemůžete měnit moduly. Moduly musí být povolené v době, kdy vytvoříte instanci Azure Cache for Redis. Po vytvoření mezipaměti není možné povolit konfiguraci modulu.

  7. Vyberte Další: Značky a přeskočte.

  8. Vyberte Další: Zkontrolovat a vytvořit.

  9. Zkontrolujte nastavení a vyberte Vytvořit.

    Vytvoření instance Redis trvá několik minut. Průběh můžete sledovat na stránce přehledu Azure Managed Redis. Když je stav zobrazen jako Spuštěno, je mezipaměť připravená k použití.

Vytvoření instance Azure Cache for Redis

  1. Na webu Azure Portal vyhledejte a vyberte Azure Cache for Redis.

  2. Na stránce Azure Cache for Redis vyberte Vytvořit>Azure Cache for Redis.

  3. Na kartě Základy na stránce Nová mezipaměť Redis nakonfigurujte následující nastavení:

    • Předplatné: Vyberte předplatné, které chcete použít.
    • Skupina prostředků: Vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte název nové skupiny prostředků. Když umístíte všechny prostředky aplikace do stejné skupiny prostředků, můžete je snadno spravovat nebo odstraňovat společně.
    • Název: Zadejte název mezipaměti, který je v oblasti jedinečný. Název musí:
      • Musí být řetězec 1 až 63 znaků.
      • Obsahují jenom číslice, písmena a pomlčky.
      • Začněte a končit číslem nebo písmenem.
      • Neobsahuje po sobě jdoucí pomlčky.
    • Oblast: Vyberte oblast Azure poblíž jiných služeb, které používají vaši mezipaměť.
    • Skladová položka mezipaměti: Výběrem skladové položky určete dostupné velikosti, výkon a funkce mezipaměti.
    • Velikost mezipaměti: Vyberte velikost mezipaměti. Další informace najdete v přehledu služby Azure Cache for Redis.

    Snímek obrazovky znázorňující kartu Základy na stránce Nová mezipaměť Redis

  4. Vyberte kartu Sítě nebo vyberte Další: Sítě.

  5. Na kartě Sítě vyberte metodu připojení, která se má použít pro mezipaměť. Privátní koncový bod se doporučuje pro zabezpečení. Pokud vyberete privátní koncový bod, vyberte Přidat privátní koncový bod a vytvořte privátní koncový bod.

  6. Vyberte kartu Upřesnit nebo vyberte Další: Upřesnit.

  7. V podokně Upřesnit nakonfigurujte následující možnosti:

    • Vyberte ověřování Microsoft Entra nebo ověřování přístupových klíčů. Ověřování Microsoft Entra je ve výchozím nastavení povolené.
    • Zvolte, jestli chcete povolit port, který není tls.
    • Pro mezipaměť Premium můžete nakonfigurovat nebo zakázat zóny dostupnosti. Po vytvoření mezipaměti nemůžete zakázat zóny dostupnosti. Pro standardní mezipaměť se zóny dostupnosti přidělují automaticky. Zóny dostupnosti nejsou dostupné pro skladovou položku Basic.
    • Pro mezipaměť Premium nakonfigurujte nastavení počtu replik, seskupení, počtu shardů, systémem přiřazené spravované identity a trvalosti dat.

    Následující obrázek znázorňuje kartu Upřesnit pro skladovou položku Standard.

    Snímek obrazovky zobrazující pokročilé podokno mezipaměti úrovně SKU Standard

    Důležité

    Pokud je to možné, použijte ID Microsoft Entra se spravovanými identitami k autorizaci požadavků na vaši mezipaměť. Autorizace pomocí ID Microsoft Entra a spravované identity poskytuje lepší zabezpečení a je snazší ji používat než autorizaci sdíleného přístupového klíče. Další informace o používání spravovaných identit s mezipamětí naleznete v tématu Použití MICROSOFT Entra ID pro ověřování mezipaměti.

  8. Volitelně můžete vybrat kartu Značky nebo vybrat Další: Značky a zadat názvy a hodnoty značek pro kategorizaci prostředků mezipaměti.

  9. Vyberte Zkontrolovat a vytvořit a po ověření vyberte Vytvořit.

Nasazení nové mezipaměti trvá několik minut. Průběh nasazení můžete monitorovat na portálu na stránce Azure Cache for Redis. Když se stav mezipaměti zobrazí jako Spuštěno, je mezipaměť připravená k použití.

Instalace klientské knihovny node-redis

Knihovna node-redis je primárním klientem Node.js pro Redis. Klienta s npm můžete nainstalovat pomocí následujícího příkazu:

npm install redis

Vytvoření aplikace Node.js pro přístup k mezipaměti

Vytvořte Node.js aplikaci, která pro připojení k instanci Azure Managed Redis používá BUĎ ID Microsoft Entra, nebo přístupové klíče. Doporučujeme používat ID Microsoft Entra.

Použití ověřování Microsoft Entra ID v mezipaměti

Mezipaměti Azure Managed Redis mají ve výchozím nastavení povolené ověřování Microsoft Entra.

  1. Na webu Azure Portal vyberte mezipaměť, do které chcete použít ověřování založené na tokenech Microsoft Entra.

  2. V nabídce Prostředek vyberte Ověřování .

  3. Vyberte vybrat člena a zadejte jméno platného uživatele. Uživatel, který zadáte, se automaticky přiřadí zásadám přístupu vlastníka dat ve výchozím nastavení, když vyberete Uložit. Můžete také zadat spravovanou identitu nebo aplikační objekt pro připojení k instanci vyrovnávací paměti.

    Snímek obrazovky znázorňující ověřování vybrané v nabídce prostředků a zaškrtnuté políčko Povolit ověřování Microsoft Entra

Informace o použití ID Microsoft Entra s Azure CLI najdete na referenčních stránkách pro identitu.

Instalace klientské knihovny Azure Identity v JavaScriptu

Knihovna MSAL (Microsoft Authentication Library) umožňuje získat tokeny zabezpečení z identity Microsoftu k ověřování uživatelů. K dispozici je javascriptová klientská knihovna identit Azure, která k zajištění podpory ověřování tokenů používá knihovnu MSAL. Nainstalujte tuto knihovnu pomocí npm:

npm install @azure/identity

Vytvoření nové aplikace Node.js pomocí ID Microsoft Entra

  1. Přidejte proměnné prostředí pro název hostitele a ID instančního objektu, což je ID objektu instančního objektu nebo uživatele Microsoft Entra ID. Na webu Azure Portal vyhledejte uživatelské jméno.

    set AZURE_MANAGED_REDIS_HOST_NAME=contosoCache
    set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
  2. Vytvořte nový soubor skriptu s názvem redistest.js.

  3. Přidejte následující příklad JavaScriptu do souboru. Tento kód ukazuje, jak se připojit k instanci Azure Managed Redis pomocí názvu hostitele mezipaměti a klíčových proměnných prostředí. Kód také ukládá a načítá hodnotu řetězce v mezipaměti. Spouští se také příkazy PING a CLIENT LIST. Další příklady použití Redis s klientem node-redis najdete v tématu 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));
    
  4. Spusťte skript s Node.js.

    node redistest.js
    
  5. Výstup kódu vypadá takto.

    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
    

Vytvoření ukázkové javascriptové aplikace s opětovným ověřením

Přístupové tokeny Microsoft Entra ID mají omezenou životnost, což je průměr 75 minut. Pokud chcete udržovat připojení k mezipaměti, musíte token aktualizovat. Tento příklad ukazuje, jak to provést pomocí JavaScriptu.

  1. Vytvořte nový soubor skriptu s názvem redistestreauth.js.

  2. Přidejte následující příklad JavaScriptu do souboru.

     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. Spusťte skript s Node.js.

    node redistestreauth.js
    
  4. Výstup kódu vypadá takto.

     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
    
    

Poznámka:

Další příklady použití Microsoft Entra ID k ověření ve službě Redis pomocí knihovny node-redis najdete v tomto úložišti GitHub.

Vytvoření aplikace Node.js pro přístup k mezipaměti

Vytvořte Node.js aplikaci, která pro připojení ke službě Azure Cache for Redis používá BUĎ ID Microsoft Entra, nebo přístupové klíče. Doporučujeme používat ID Microsoft Entra.

Použití ověřování Microsoft Entra ID v mezipaměti

Mezipaměti Azure Managed Redis mají ve výchozím nastavení povolené ověřování Microsoft Entra.

  1. Na webu Azure Portal vyberte mezipaměť, do které chcete použít ověřování založené na tokenech Microsoft Entra.

  2. V nabídce Prostředek vyberte Ověřování .

  3. Vyberte vybrat člena a zadejte jméno platného uživatele. Uživatel, který zadáte, se automaticky přiřadí zásadám přístupu vlastníka dat ve výchozím nastavení, když vyberete Uložit. Můžete také zadat spravovanou identitu nebo aplikační objekt pro připojení k instanci vyrovnávací paměti.

    Snímek obrazovky znázorňující ověřování vybrané v nabídce prostředků a zaškrtnuté políčko Povolit ověřování Microsoft Entra

Informace o použití ID Microsoft Entra s Azure CLI najdete na referenčních stránkách pro identitu.

Instalace klientské knihovny Azure Identity v JavaScriptu

Knihovna MSAL (Microsoft Authentication Library) umožňuje získat tokeny zabezpečení z identity Microsoftu k ověřování uživatelů. K dispozici je javascriptová klientská knihovna identit Azure, která k zajištění podpory ověřování tokenů používá knihovnu MSAL. Nainstalujte tuto knihovnu pomocí npm:

npm install @azure/identity

Vytvoření nové aplikace Node.js pomocí ID Microsoft Entra

  1. Přidejte proměnné prostředí pro název hostitele a ID instančního objektu, což je ID objektu instančního objektu nebo uživatele Microsoft Entra ID. Na webu Azure Portal vyhledejte uživatelské jméno.

    set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache
    set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
  2. Vytvořte nový soubor skriptu s názvem redistest.js.

  3. Přidejte následující příklad JavaScriptu do souboru. Tento kód ukazuje, jak se připojit k instanci Azure Cache for Redis pomocí názvu hostitele mezipaměti a klíčových proměnných prostředí. Kód také ukládá a načítá hodnotu řetězce v mezipaměti. Spouští se také příkazy PING a CLIENT LIST. Další příklady použití Redis s klientem node-redis najdete v tématu 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));
    
  4. Spusťte skript s Node.js.

    node redistest.js
    
  5. Výstup kódu vypadá takto.

    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
    

Vytvoření ukázkové javascriptové aplikace s opětovným ověřením

Přístupové tokeny Microsoft Entra ID mají omezenou životnost, což je průměr 75 minut. Pokud chcete udržovat připojení k mezipaměti, musíte token aktualizovat. Tento příklad ukazuje, jak to provést pomocí JavaScriptu.

  1. Vytvořte nový soubor skriptu s názvem redistestreauth.js.

  2. Přidejte následující příklad JavaScriptu do souboru.

     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. Spusťte skript s Node.js.

    node redistestreauth.js
    
  4. Výstup kódu vypadá takto.

     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
    
    

Poznámka:

Další příklady použití Microsoft Entra ID k ověření ve službě Redis pomocí knihovny node-redis najdete v tomto úložišti GitHub.

Vyčistěte zdroje

Pokud chcete dál používat prostředky, které jste vytvořili v tomto článku, ponechte skupinu prostředků.

Jinak pokud jste s prostředky hotovi, můžete odstranit skupinu prostředků Azure, kterou jste vytvořili, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Při odstranění skupiny prostředků se všechny prostředky, které obsahuje, trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo jednotlivé prostředky. Pokud jste prostředky vytvořili v existující skupině prostředků, která obsahuje prostředky, které chcete zachovat, můžete každý prostředek odstranit jednotlivě místo odstranění skupiny prostředků.

Odstranit skupinu prostředků

  1. Přihlaste se k portálu Azure Portal a potom vyberte Skupiny prostředků.

  2. Vyberte skupinu prostředků, kterou chcete odstranit.

    Pokud existuje mnoho skupin prostředků, použijte filtr pro jakékoli pole... zadejte název skupiny prostředků, kterou jste vytvořili pro tento článek. V seznamu výsledků vyberte skupinu prostředků.

    Snímek obrazovky se seznamem skupin prostředků, které se mají odstranit v pracovním podokně

  3. Vyberte odstranit skupinu zdrojů.

  4. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků pro potvrzení a poté vyberte Odstranit.

    Snímek obrazovky s formulářem, který vyžaduje název prostředku k potvrzení odstranění.

Po chvíli se skupina prostředků včetně všech prostředků, které obsahuje, odstraní.

Získání ukázkového kódu

Získejte rychlý start pro Node.js na GitHubu.

V tomto rychlém úvodu jste se naučili, jak používat Azure Managed Redis nebo Azure Cache for Redis v aplikaci Node.js. Další informace o nabídkách Azure Redis: