Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym Szybkim starcie integrujesz Azure Managed Redis lub Azure Cache for Redis w aplikacji Node.js. Aplikacja ma dostęp do bezpiecznej dedykowanej pamięci podręcznej dostępnej z poziomu dowolnej aplikacji na platformie Azure.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- Node.js zainstalowane — aby zainstalować Node.js, zobacz Instalowanie Node.js w systemie Windows , aby uzyskać instrukcje dotyczące sposobu instalowania środowiska Node i narzędzia npm na komputerze z systemem Windows.
Tworzenie wystąpienia usługi Redis zarządzanej platformy Azure
Aby utworzyć wystąpienie usługi Azure Managed Redis, zaloguj się do witryny Azure Portal i wybierz pozycję Utwórz zasób.
Na stronie Nowy w polu wyszukiwania wpisz Azure Cache for Redis.
Na karcie Nowa pamięć podręczna Redis Cache skonfiguruj ustawienia nowej pamięci podręcznej w obszarze Podstawy.
Ustawienia Wybierz wartość Opis Subskrypcja Z listy rozwijanej wybierz subskrypcję. Subskrypcja, w ramach której ma zostać utworzone to nowe wystąpienie usługi Azure Managed Redis. Grupa zasobów Z listy rozwijanej i wybierz grupę zasobów lub wybierz pozycję Utwórz nową i wprowadź nową nazwę grupy zasobów. Nazwa grupy zasobów, w której ma zostać utworzona pamięć podręczna i inne zasoby. Umieszczając wszystkie zasoby aplikacji w jednej grupie zasobów, można je łatwo zarządzać lub usuwać razem. Nazwa Wprowadź nazwę unikatową w regionie. Nazwa pamięci podręcznej musi być ciągiem z zakresu od 1 do 63 znaków w połączeniu z nazwą regionu pamięci podręcznej, która zawiera tylko cyfry, litery lub łączniki. (Jeśli nazwa pamięci podręcznej jest mniejsza niż 45 znaków, powinna działać we wszystkich aktualnie dostępnych regionach). Nazwa musi zaczynać się i kończyć cyfrą lub literą i nie może zawierać kolejnych łączników. Nazwa hosta wystąpienia Region Rozwiń listę rozwijaną i wybierz lokalizację. Usługa Azure Managed Redis jest dostępna w wybranych regionach świadczenia usługi Azure. Warstwa danych Wybierz opcję W pamięci , aby uzyskać wysoką wydajność, lub Pamięć flash w celu uzyskania mniejszej wydajności pamięci podręcznej Warstwy w pamięci obejmują Zrównoważoną, Zoptymalizowaną dla pamięci i Zoptymalizowaną dla obliczeń. Użyj warstwy Flash, do magazynowania danych w pamięci (RAM) i na dysku (SSD). Rozmiar pamięci podręcznej Otwórz listę rozwijaną i wybierz rozmiar. Rozmiar pamięci podręcznej zależy od warstwy. Najmniejszy rozmiar to poziom zrównoważony. Rozmiar największej warstwy w pamięci to warstwa zoptymalizowana pod kątem pamięci. Wydajność Z listy rozwijanej wybierz preferencję wydajności. Wydajność zależy od liczby procesorów wirtualnych. Liczba procesorów wirtualnych różni się w zależności od warstwy. Zoptymalizowane pod kątem obliczeń ma najwięcej vCPU. Aby uzyskać wskazówki dotyczące wybierania odpowiedniej warstwy wydajności, zobacz Wybieranie odpowiedniej warstwy.
Ważne
Wszystkie warstwy pamięci korzystające z ponad 120 GB miejsca do magazynowania są dostępne w publicznej wersji zapoznawczej, w tym zoptymalizowane pod kątem pamięci M150 i wyższe; zrównoważone B150 i wyższe; oraz zoptymalizowane pod kątem obliczeń X150 i wyższe. Wszystkie te warstwy i wyższe są dostępne w publicznej wersji zapoznawczej.
Wszystkie warstwy zoptymalizowane pod kątem technologii Flash są w publicznej wersji zapoznawczej.
Wybierz pozycję Dalej: Sieć i wybierz publiczny punkt końcowy lub prywatny punkt końcowy.
Wybierz pozycję Dalej: Aktywna replikacja geograficzna. Aby można było używać aktywnej replikacji geograficznej, należy ją włączyć podczas aprowizacji. Pamięci podręczne bez aktywnej replikacji geograficznej nie mogą być później dodawane ani dołączać do aktywnych grup replikacji geograficznej. Aby uzyskać więcej informacji, zobacz Konfigurowanie aktywnej replikacji geograficznej dla wystąpień usługi Azure Managed Redis.
Wybierz kartę Dalej: Zaawansowane .
Skonfiguruj moduły Redis, które chcesz dodać do instancji.
Domyślnie dla nowej zarządzanej pamięci podręcznej:
- Identyfikator entra firmy Microsoft jest włączony.
- Uwierzytelnianie kluczy dostępu jest wyłączone ze względów bezpieczeństwa.
Ważne
W celu uzyskania optymalnego bezpieczeństwa zalecamy użycie identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi w celu autoryzowania żądań względem pamięci podręcznej, jeśli to możliwe. Autoryzacja za pomocą Microsoft Entra ID i tożsamości zarządzanych zapewnia lepsze zabezpieczenia i łatwość użytkowania w porównaniu z autoryzacją za pomocą współdzielonego klucza dostępu. Aby uzyskać więcej informacji na temat używania tożsamości zarządzanych z pamięcią podręczną, zobacz Użyj Microsoft Entra ID do uwierzytelniania pamięci podręcznej.
Ustaw zasady klastrowania:
- Użyj rozwiązania Enterprise , aby użyć usługi RedisSearch lub innych modułów
- Użyj OSS dla klastrowanej pamięci podręcznej.
- Użyj Nieklasterowana (wersja zapoznawcza) dla nieklasterowanej pamięci podręcznej.
Aby uzyskać więcej informacji na temat wybierania zasad klastrowania, zobacz Zasady klastra.
Ważne
Nie można zmienić zasad klastrowania wystąpienia usługi Azure Managed Redis po jego utworzeniu. Jeśli używasz narzędzia RediSearch, wymagane są zasady klastra przedsiębiorstwa i
NoEviction
są jedynymi obsługiwanymi zasadami eksmisji.Ważne
Jeśli używasz tego wystąpienia pamięci podręcznej w grupie replikacji geograficznej, nie można zmienić zasad eksmisji po utworzeniu wystąpienia. Pamiętaj, aby przed utworzeniem pamięci podręcznej znać zasady eksmisji węzłów podstawowych. Aby uzyskać więcej informacji na temat aktywnej replikacji geograficznej, zobacz Wymagania wstępne aktywnej replikacji geograficznej.
Ważne
Nie można zmieniać modułów po utworzeniu wystąpienia pamięci podręcznej. Moduły muszą być włączone w momencie tworzenia wystąpienia usługi Azure Cache for Redis. Nie ma możliwości włączenia konfiguracji modułu po utworzeniu pamięci podręcznej.
Wybierz pozycję Dalej: Tagi i pomiń.
Wybierz Dalej: Przejrzyj i utwórz.
Przejrzyj ustawienia i wybierz pozycję Utwórz.
Utworzenie wystąpienia usługi Redis trwa kilka minut. Postęp można monitorować na stronie Omówienie usługi Azure Managed Redis. Gdy stan jest wyświetlany jako Uruchomiono, pamięć podręczna jest gotowa do użycia.
Tworzenie wystąpienia usługi Azure Cache for Redis
W witrynie Azure Portal wyszukaj i wybierz pozycję Azure Cache for Redis.
Na stronie Azure Cache for Redis wybierz pozycję Utwórz>usługę Azure Cache for Redis.
Na karcie Podstawowe na stronie Nowa pamięć podręczna Redis skonfiguruj następujące ustawienia:
- Subskrypcja: wybierz subskrypcję, której chcesz użyć.
- Grupa zasobów: wybierz grupę zasobów lub wybierz pozycję Utwórz nową i wprowadź nową nazwę grupy zasobów. Umieszczenie wszystkich zasobów aplikacji w tej samej grupie zasobów umożliwia łatwe zarządzanie nimi i usuwanie ich razem.
-
Nazwa: wprowadź unikatową nazwę cache w regionie. Nazwa musi:
- Powinien być ciągiem znaków od 1 do 63.
- Zawierają tylko cyfry, litery i łączniki.
- Początek i koniec cyfrą lub literą.
- Nie zawiera kolejnych łączników.
- Region: wybierz region świadczenia usługi Azure w pobliżu innych usług korzystających z pamięci podręcznej.
- Jednostka SKU pamięci podręcznej: wybierz jednostkę SKU , aby określić dostępne rozmiary, wydajność i funkcje pamięci podręcznej.
- Rozmiar pamięci podręcznej: wybierz rozmiar pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Cache for Redis.
Wybierz kartę Sieć lub wybierz pozycję Dalej: Sieć.
Na karcie Sieć wybierz metodę łączności do użycia dla pamięci podręcznej. Prywatny punkt końcowy jest zalecany w przypadku zabezpieczeń. Jeśli wybierzesz pozycję Prywatny punkt końcowy, wybierz pozycję Dodaj prywatny punkt końcowy i utwórz prywatny punkt końcowy.
Wybierz kartę Zaawansowane lub wybierz pozycję Dalej: Zaawansowane.
W okienku Zaawansowane skonfiguruj następujące opcje:
- Wybierz Microsoft Entra Authentication lub Uwierzytelnianie za pomocą kluczy dostępu. Uwierzytelnianie Entra firmy Microsoft jest domyślnie włączone.
- Wybierz, czy chcesz włączyć port inny niż TLS.
- W przypadku pamięci podręcznej Premium można skonfigurować lub wyłączyć strefy dostępności. Po utworzeniu pamięci podręcznej nie można wyłączyć stref dostępności. W przypadku pamięci podręcznej w warstwie Standard strefy dostępności są przydzielane automatycznie. Strefy dostępności nie są dostępne dla SKU w wersji Basic.
- W przypadku pamięci podręcznej Premium skonfiguruj ustawienia dotyczące liczby replik, klastrowania i liczby fragmentów, tożsamości zarządzanej przypisanej przez system i trwałości danych.
Na poniższym obrazie przedstawiono kartę Zaawansowane dla SKU Standard.
Ważne
Jeśli to możliwe, użyj Microsoft Entra ID i tożsamości zarządzanych do autoryzowania żądań uzyskania dostępu do pamięci podręcznej. Autoryzacja przy użyciu identyfikatora Entra firmy Microsoft i tożsamości zarządzanej zapewnia lepsze zabezpieczenia i jest łatwiejsza niż autoryzacja klucza dostępu współdzielonego. Aby uzyskać więcej informacji na temat używania tożsamości zarządzanych z pamięcią podręczną, zobacz Użyj Microsoft Entra ID do uwierzytelniania pamięci podręcznej.
Opcjonalnie wybierz kartę Tagi lub wybierz pozycję Dalej: Tagi, a następnie wprowadź nazwy tagów i wartości, aby kategoryzować zasoby pamięci podręcznej.
Wybierz pozycję Przejrzyj i utwórz, a po zakończeniu walidacji wybierz pozycję Utwórz.
Wdrożenie nowej pamięci podręcznej trwa kilka minut. Postęp wdrażania można monitorować na stronie Azure Cache for Redis w portalu. Gdy w obszarze Stan pamięci podręcznej jest wyświetlana wartość Uruchomiono, pamięć podręczna jest gotowa do użycia.
Instalowanie biblioteki klienta node-redis
Biblioteka node-redis jest podstawowym klientem Node.js dla usługi Redis. Klienta można zainstalować za pomocą narzędzia npm , używając następującego polecenia:
npm install redis
Tworzenie aplikacji Node.js w celu uzyskania dostępu do pamięci podręcznej
Utwórz aplikację Node.js, która używa identyfikatora Entra firmy Microsoft lub kluczy dostępu do łączenia się z wystąpieniem usługi Azure Managed Redis. Zalecamy użycie identyfikatora Entra firmy Microsoft.
- Uwierzytelnianie identyfikatora Entra firmy Microsoft (zalecane)
- Uwierzytelnianie za pomocą klucza dostępu
Używanie uwierzytelniania identyfikatora Entra firmy Microsoft w pamięci podręcznej
Menedżerowane przez Azure pamięci podręczne Redis mają domyślnie włączone uwierzytelnianie Microsoft Entra.
W witrynie Azure Portal wybierz pamięć podręczną, w której chcesz użyć uwierzytelniania opartego na tokenach firmy Microsoft.
Wybierz pozycję Uwierzytelnianie z menu Zasób.
Wybierz pozycję Wybierz członka i wprowadź nazwę prawidłowego użytkownika. Wprowadzony użytkownik jest automatycznie przypisywany zasad dostępu właściciela danych domyślnie po wybraniu pozycji Zapisz. Możesz również wprowadzić tożsamość zarządzaną lub jednostkę usługi, aby nawiązać połączenie z wystąpieniem pamięci podręcznej.
Aby uzyskać informacje na temat korzystania z identyfikatora Entra firmy Microsoft z interfejsem wiersza polecenia platformy Azure, zobacz strony referencyjne dotyczące tożsamości.
Instalowanie biblioteki klienta usługi Azure Identity w języku JavaScript
Biblioteka Microsoft Authentication Library (MSAL) umożliwia uzyskiwanie tokenów zabezpieczających z tożsamości firmy Microsoft w celu uwierzytelniania użytkowników. Dostępna jest biblioteka klienta tożsamości platformy Azure w języku JavaScript, która zapewnia obsługę uwierzytelniania tokenu przy użyciu biblioteki MSAL. Zainstaluj tę bibliotekę przy użyciu polecenia npm
:
npm install @azure/identity
Tworzenie nowej aplikacji Node.js przy użyciu identyfikatora Entra firmy Microsoft
Dodaj zmienne środowiskowe dla nazwy hosta i identyfikatora jednostki usługi, który jest identyfikatorem obiektu jednostki usługi lub użytkownika entra firmy Microsoft. W witrynie Azure Portal wyszukaj nazwę użytkownika.
set AZURE_MANAGED_REDIS_HOST_NAME=contosoCache set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Utwórz nowy plik skryptu o nazwie redistest.js.
Dodaj do pliku poniższy przykład kodu JavaScript. Ten kod pokazuje, jak nawiązać połączenie z wystąpieniem usługi Azure Managed Redis przy użyciu nazwy hosta pamięci podręcznej i kluczowych zmiennych środowiskowych. W kodzie jest również przechowywana i pobierana wartość ciągu w pamięci podręcznej. Następuje wykonanie poleceń
PING
iCLIENT LIST
. Aby uzyskać więcej przykładów używania usługi Redis z klientem node-redis , zobacz 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));
Uruchom skrypt języka Node.js.
node redistest.js
Dane wyjściowe kodu wyglądają następująco.
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
Tworzenie przykładowej aplikacji JavaScript przy użyciu ponownego uwierzytelniania
Tokeny dostępu identyfikatora Entra firmy Microsoft mają ograniczoną żywotność, średnio 75 minut. Aby zachować połączenie z pamięcią podręczną, należy odświeżyć token. W tym przykładzie pokazano, jak to zrobić przy użyciu języka JavaScript.
Utwórz nowy plik skryptu o nazwie redistestreauth.js.
Dodaj do pliku poniższy przykład kodu JavaScript.
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));
Uruchom skrypt języka Node.js.
node redistestreauth.js
Dane wyjściowe kodu wyglądają następująco.
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
Uwaga / Notatka
Aby uzyskać dodatkowe przykłady użycia identyfikatora Entra firmy Microsoft do uwierzytelniania w usłudze Redis przy użyciu biblioteki node-redis, zobacz to repozytorium GitHub
Tworzenie aplikacji Node.js w celu uzyskania dostępu do pamięci podręcznej
Utwórz aplikację Node.js, która używa identyfikatora Entra firmy Microsoft lub kluczy dostępu do nawiązywania połączenia z usługą Azure Cache for Redis. Zalecamy użycie identyfikatora Entra firmy Microsoft.
- Uwierzytelnianie identyfikatora Entra firmy Microsoft (zalecane)
- Uwierzytelnianie za pomocą klucza dostępu
Używanie uwierzytelniania identyfikatora Entra firmy Microsoft w pamięci podręcznej
Menedżerowane przez Azure pamięci podręczne Redis mają domyślnie włączone uwierzytelnianie Microsoft Entra.
W witrynie Azure Portal wybierz pamięć podręczną, w której chcesz użyć uwierzytelniania opartego na tokenach firmy Microsoft.
Wybierz pozycję Uwierzytelnianie z menu Zasób.
Wybierz pozycję Wybierz członka i wprowadź nazwę prawidłowego użytkownika. Wprowadzony użytkownik jest automatycznie przypisywany zasad dostępu właściciela danych domyślnie po wybraniu pozycji Zapisz. Możesz również wprowadzić tożsamość zarządzaną lub jednostkę usługi, aby nawiązać połączenie z wystąpieniem pamięci podręcznej.
Aby uzyskać informacje na temat korzystania z identyfikatora Entra firmy Microsoft z interfejsem wiersza polecenia platformy Azure, zobacz strony referencyjne dotyczące tożsamości.
Instalowanie biblioteki klienta usługi Azure Identity w języku JavaScript
Biblioteka Microsoft Authentication Library (MSAL) umożliwia uzyskiwanie tokenów zabezpieczających z tożsamości firmy Microsoft w celu uwierzytelniania użytkowników. Dostępna jest biblioteka klienta tożsamości platformy Azure w języku JavaScript, która zapewnia obsługę uwierzytelniania tokenu przy użyciu biblioteki MSAL. Zainstaluj tę bibliotekę przy użyciu polecenia npm
:
npm install @azure/identity
Tworzenie nowej aplikacji Node.js przy użyciu identyfikatora Entra firmy Microsoft
Dodaj zmienne środowiskowe dla nazwy hosta i identyfikatora jednostki usługi, który jest identyfikatorem obiektu jednostki usługi lub użytkownika entra firmy Microsoft. W witrynie Azure Portal wyszukaj nazwę użytkownika.
set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Utwórz nowy plik skryptu o nazwie redistest.js.
Dodaj do pliku poniższy przykład kodu JavaScript. W tym kodzie pokazano sposób podłączania do wystąpienia usługi Azure Cache for Redis przy użyciu nazwy hosta w pamięci podręcznej i kluczowych zmiennych środowiskowych. W kodzie jest również przechowywana i pobierana wartość ciągu w pamięci podręcznej. Następuje wykonanie poleceń
PING
iCLIENT LIST
. Aby uzyskać więcej przykładów używania usługi Redis z klientem node-redis , zobacz 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));
Uruchom skrypt języka Node.js.
node redistest.js
Dane wyjściowe kodu wyglądają następująco.
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
Tworzenie przykładowej aplikacji JavaScript przy użyciu ponownego uwierzytelniania
Tokeny dostępu identyfikatora Entra firmy Microsoft mają ograniczoną żywotność, średnio 75 minut. Aby zachować połączenie z pamięcią podręczną, należy odświeżyć token. W tym przykładzie pokazano, jak to zrobić przy użyciu języka JavaScript.
Utwórz nowy plik skryptu o nazwie redistestreauth.js.
Dodaj do pliku poniższy przykład kodu JavaScript.
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));
Uruchom skrypt języka Node.js.
node redistestreauth.js
Dane wyjściowe kodu wyglądają następująco.
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
Uwaga / Notatka
Aby uzyskać dodatkowe przykłady użycia identyfikatora Entra firmy Microsoft do uwierzytelniania w usłudze Redis przy użyciu biblioteki node-redis, zobacz to repozytorium GitHub
Uprzątnij zasoby
Jeśli chcesz nadal korzystać z zasobów utworzonych w tym artykule, zachowaj grupę zasobów.
W przeciwnym razie, jeśli skończysz z zasobami, możesz usunąć utworzoną grupę zasobów platformy Azure, aby uniknąć naliczania opłat.
Ważne
Usunięcie grupy zasobów jest nieodwracalne. Jeśli usuniesz grupę zasobów, wszystkie zawarte w niej zasoby zostaną trwale usunięte. Uważaj, aby nie usunąć przypadkowo niewłaściwych zasobów lub grupy zasobów. Jeśli zasoby zostały utworzone w istniejącej grupie zasobów zawierającej zasoby, które chcesz zachować, możesz usunąć każdy zasób indywidualnie zamiast usuwać grupę zasobów.
Aby usunąć grupę zasobów
Zaloguj się do witryny Azure Portal, a następnie wybierz pozycję Grupy zasobów.
Wybierz grupę zasobów, którą chcesz usunąć.
Jeśli istnieje wiele grup zasobów, użyj pola Filtruj dla dowolnego pola... wpisz nazwę grupy zasobów utworzonej dla tego artykułu. Wybierz grupę zasobów na liście wyników.
Wybierz pozycję Usuń grupę zasobów.
Poproszono Cię o potwierdzenie usunięcia grupy zasobów. Wpisz nazwę grupy zasobów w celu potwierdzenia, a następnie wybierz pozycję Usuń.
Po krótkim czasie grupa zasobów i wszystkie jej zasoby zostaną usunięte.
Pobieranie przykładowego kodu
Uzyskaj przewodnik Szybki start Node.js w witrynie GitHub.
Treści powiązane
W tym przewodniku szybkiego startu pokazano, jak używać usługi Azure Managed Redis lub Azure Cache for Redis w aplikacji Node.js. Dowiedz się więcej o ofertach usługi Azure Redis: