Rövid útmutató: Az Azure Cache for Redis használata Node.js alkalmazással
Ebben a rövid útmutatóban az Azure Cache for Redist egy Node.js alkalmazásba építi be, amely egy biztonságos, dedikált gyorsítótárhoz való hozzáférést biztosít, amely az Azure bármely alkalmazásából elérhető.
Előfeltételek
- Azure-előfizetés. Hozzon létre egyet ingyen
- Telepített Node.js. A Node és az npm windowsos számítógépen való telepítéséről további információt a Windows Node.js telepítése című témakörben talál.
Gyorsítótár létrehozása
Gyorsítótár létrehozásához jelentkezzen be az Azure Portalra. A portál menüjében válassza az Erőforrás létrehozása lehetőséget.
Az Első lépések panelen írja be az Azure Cache for Redist a keresősávba. A keresési eredmények között keresse meg az Azure Cache for Redist, majd válassza a Létrehozás lehetőséget.
Az Új Redis Cache panel Alapszintű beállítások lapján konfigurálja a következő beállításokat a gyorsítótárhoz:
Beállítás Művelet Leírás Előfizetés Válassza ki az Azure-előfizetését. Az Azure Cache for Redis új példányának létrehozásához használandó előfizetés. Erőforráscsoport Jelöljön ki egy erőforráscsoportot, vagy válassza az Új létrehozása lehetőséget, és adjon meg egy új erőforráscsoportnevet. Annak az erőforráscsoportnak a neve, amelyben létre szeretné hozni a gyorsítótárat és más erőforrásokat. Ha az összes alkalmazás-erőforrást egy erőforráscsoportba helyezi, egyszerűen kezelheti vagy törölheti őket. DNS-név Adjon meg egy egyedi nevet. A gyorsítótár nevének 1–63 karakterből álló sztringnek kell lennie, amely csak számokat, betűket és kötőjeleket tartalmaz. A névnek számmal vagy betűvel kell kezdődnie és végződnie, és nem tartalmazhat egymást követő kötőjeleket. A gyorsítótárpéldány gazdagépneve . \<DNS name>.redis.cache.windows.net
Helyen Válasszon ki egy helyet. Olyan Azure-régió , amely a gyorsítótárat használó egyéb szolgáltatások közelében található. Gyorsítótár termékváltozata Válasszon egy termékváltozatot. Az termékváltozat határozza meg a gyorsítótár számára elérhető méretet, teljesítményt és funkcióparamétereket. További információ: Azure Cache for Redis – áttekintés. Gyorsítótár mérete Válasszon egy gyorsítótárméretet. További információ: Azure Cache for Redis – áttekintés. Válassza a Hálózatkezelés lapot, vagy válassza a Tovább: Hálózatkezelés lehetőséget.
A Hálózatkezelés lapon válassza ki a gyorsítótárhoz használni kívánt kapcsolati módszert.
Válassza a Speciális lapot, vagy válassza a Tovább: Speciális lehetőséget.
A Speciális panelen ellenőrizze vagy válassza ki a hitelesítési módszert az alábbi információk alapján:
- Alapértelmezés szerint egy új alapszintű, standard vagy prémium szintű gyorsítótár esetében a Microsoft Entra-hitelesítés engedélyezve van, és a hozzáférési kulcsok hitelesítése le van tiltva.
- Alapszintű vagy standard gyorsítótárak esetén kiválaszthatja a nem TLS-portok kiválasztását.
- Standard és Prémium szintű gyorsítótárak esetén engedélyezheti a rendelkezésre állási zónákat. A gyorsítótár létrehozása után nem tilthatja le a rendelkezésre állási zónákat.
- Prémium szintű gyorsítótár esetén konfigurálja a nem TLS-port, a fürtözés, a felügyelt identitás és az adatmegőrzés beállításait.
Fontos
Az optimális biztonság érdekében azt javasoljuk, hogy a Microsoft Entra ID-t felügyelt identitásokkal használva engedélyezze a kéréseket a gyorsítótáron, ha lehetséges. A Microsoft Entra-azonosító és a felügyelt identitások használatával történő engedélyezés kiváló biztonságot és egyszerű használatot biztosít a megosztott hozzáférési kulcsok engedélyezésével szemben. A felügyelt identitások gyorsítótárral való használatáról további információt a Microsoft Entra ID használata gyorsítótár-hitelesítéshez című témakörben talál.
(Nem kötelező) Válassza a Címkék lapot, vagy válassza a Tovább: Címkék lehetőséget.
(Nem kötelező) A Címkék lapon adja meg a címke nevét és értékét, ha kategorizálni szeretné a gyorsítótár-erőforrást.
Válassza az Áttekintés + létrehozás lehetőséget.
A Felülvizsgálat + létrehozás lapon az Azure automatikusan ellenőrzi a konfigurációt.
A zöld érvényesítési üzenet megjelenése után válassza a Létrehozás lehetőséget.
Az új gyorsítótár üzembe helyezése több perc alatt megtörténik. Az üzembe helyezés előrehaladását az Azure Cache for Redis Áttekintés panelen követheti nyomon. Amikor az állapot a Futtatás állapotot jeleníti meg, a gyorsítótár készen áll a használatra.
A node-redis ügyfélkódtár telepítése
A node-redis kódtár a Redis elsődleges Node.js ügyfele. Az ügyfelet az npm és a következő paranccsal telepítheti:
npm install redis
Node.js-alkalmazás létrehozása gyorsítótár eléréséhez
Hozzon létre egy Node.js alkalmazást, amely Microsoft Entra-azonosítót vagy hozzáférési kulcsokat használ az Azure Cache for Redishez való csatlakozáshoz. Javasoljuk, hogy a Microsoft Entra-azonosítót használja.
A Microsoft Entra ID-hitelesítés engedélyezése a gyorsítótárban
Meglévő gyorsítótár esetén először ellenőrizze, hogy engedélyezve van-e a Microsoft Entra-hitelesítés. Ha nem, végezze el az alábbi lépéseket a Microsoft Entra-hitelesítés engedélyezéséhez. Javasoljuk, hogy a Microsoft Entra-azonosítót használja az alkalmazások hitelesítéséhez.
Az Azure Portalon válassza ki azt az Azure Cache for Redis-példányt, ahol a Microsoft Entra tokenalapú hitelesítést szeretné használni.
A szolgáltatás menü Beállítások területén válassza a Hitelesítés lehetőséget.
A Hitelesítés panelen ellenőrizze, hogy be van-e jelölve a Microsoft Entra-hitelesítés engedélyezése jelölőnégyzet. Ha igen, továbbléphet a következő szakaszra.
Ellenkező esetben jelölje be a Microsoft Entra-hitelesítés engedélyezése jelölőnégyzetet. Ezután adja meg egy érvényes felhasználó nevét. Válassza a Mentés lehetőséget. A megadott felhasználónevet a rendszer automatikusan hozzárendeli az adattulajdonosi hozzáférési szabályzathoz.
A gyorsítótárhoz való csatlakozáshoz megadhat egy felügyelt identitást vagy egy szolgáltatásnevet is.
Egy párbeszédpanelen a rendszer megkérdezi, hogy frissíteni szeretné-e a konfigurációt, és a rendszer tájékoztatja, hogy a frissítés végrehajtása néhány percet vesz igénybe. Válassza az Igen lehetőséget.
Fontos
Ha az engedélyezési művelet befejeződött, a gyorsítótár csomópontjai újraindulnak az új konfiguráció betöltéséhez. Javasoljuk, hogy a szokásos karbantartási időszak alatt vagy a csúcsidőszakon kívül végezze el ezt a műveletet. A folyamat akár 30 percet is igénybe vehet.
A Microsoft Entra ID és az Azure CLI használatával kapcsolatos információkért tekintse meg az identitás-referenciaoldalakat.
Az Azure Identity JavaScripthez készült ügyfélkódtárának telepítése
A JavaScripthez készült Azure Identity-ügyfélkódtár a szükséges Microsoft Authentication Library (MSAL) használatával biztosítja a jogkivonat-hitelesítés támogatását. Telepítse a kódtárat az npm használatával:
npm install @azure/identity
Node.js-alkalmazás létrehozása a Microsoft Entra-azonosítóval
Adjon hozzá környezeti változókat az állomásnévhez és a szolgáltatásnév-azonosítóhoz.
A szolgáltatásnév azonosítója a Microsoft Entra ID szolgáltatásnév vagy felhasználó objektumazonosítója. Az Azure Portalon ez az érték felhasználónévként jelenik meg.
set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Hozzon létre egy redistest.js nevű szkriptfájlt.
Adja hozzá a következő példa JavaScriptet a fájlhoz. Ez a kód bemutatja, hogyan csatlakozhat egy Azure Cache for Redis-példányhoz a gyorsítótár-gazdagép nevének és a kulcsfontosságú környezeti változóknak a használatával. A kód emellett tárolja és lekéri gyorsítótár egyik sztringértékét. A rendszer a
PING
és aCLIENT LIST
parancsot is végrehajtja. További példák a Redis node-redis-ügyféllel való használatára: Node-Redis.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));
Futtassa a szkriptet a Node.js használatával:
node redistest.js
Ellenőrizze, hogy a kód kimenete az alábbi példához hasonlóan néz-e ki:
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
Újrahitelesítéssel rendelkező JavaScript-mintaalkalmazás létrehozása
A Microsoft Entra ID hozzáférési jogkivonatok élettartama körülbelül 75 perc. A gyorsítótárral való kapcsolat fenntartásához frissítenie kell a jogkivonatot.
Ez a példa bemutatja, hogyan frissítheti a jogkivonatot JavaScript használatával:
Hozzon létre egy redistestreauth.js nevű szkriptfájlt.
Adja hozzá a következő JavaScript-példát a fájlhoz:
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));
Futtassa a szkriptet a Node.js használatával:
node redistestreauth.js
Ellenőrizze, hogy az alábbi példához hasonló kimenet jelenik-e meg:
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
Feljegyzés
További példák a Microsoft Entra ID használatával történő hitelesítésre a Redisben a node-redis könyvtáron keresztül, lásd a node-redis GitHub-adattárat.
Az erőforrások eltávolítása
Ha továbbra is használni szeretné a cikkben létrehozott erőforrásokat, tartsa meg az erőforráscsoportot.
Ellenkező esetben az erőforrásokhoz kapcsolódó díjak elkerülése érdekében, ha befejezte az erőforrások használatát, törölheti a létrehozott Azure-erőforráscsoportot.
Figyelmeztetés
Az erőforráscsoport törlése nem vonható vissza. Erőforráscsoport törlésekor az erőforráscsoport összes erőforrása véglegesen törlődik. Figyeljen arra, hogy ne töröljön véletlenül erőforráscsoportot vagy erőforrásokat. Ha olyan meglévő erőforráscsoportban hozta létre az erőforrásokat, amelyekben meg szeretné tartani az erőforrásokat, az erőforráscsoport törlése helyett egyenként törölheti az egyes erőforrásokat.
Erőforráscsoport törlése
Jelentkezzen be az Azure Portalra, és válassza az Erőforráscsoportok elemet.
Jelölje ki a törölni kívánt erőforráscsoportot.
Ha sok erőforráscsoport van, a Szűrő bármely mezőhöz mezőbe írja be a cikk végrehajtásához létrehozott erőforráscsoport nevét. A keresési eredmények listájában válassza ki az erőforráscsoportot.
Válassza az Erőforráscsoport törlése elemet.
Az Erőforráscsoport törlése panelen adja meg az erőforráscsoport nevét a megerősítéshez, majd válassza a Törlés lehetőséget.
Néhány percen belül az erőforráscsoport és annak összes erőforrása törlődik.
A mintakód letöltése
Szerezze be a Node.js gyorsútmutató-mintát a GitHubon.