Rövid útmutató: Az Azure Cache for Redis használata Python-alkalmazással
Ebben a rövid útmutatóban az Azure Cache for Redist egy Python-szkriptbe építi be egy biztonságos, dedikált gyorsítótárhoz való hozzáféréshez, amely az Azure bármely alkalmazásából elérhető.
Ugrás a kódra
Ez a cikk bemutatja, hogyan hozhat létre Python-alkalmazást, majd hogyan módosíthatja a kódot úgy, hogy egy működő mintaalkalmazással végződjön.
Ha közvetlenül a kódra szeretne ugrani, tekintse meg a Python gyorsútmutató-mintát a GitHubon.
Előfeltételek
- Azure-előfizetés. Hozzon létre egyet ingyen
- Python 3
- MacOS vagy Linux esetén töltse le a python.org.
- Windows 11 esetén használja a Windows Áruházat.
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 redis-py kódtár telepítése
A Redis-py egy Python-felület az Azure Cache for Redishez. A Python packages tool pip használatával telepítse a redis-py csomagot egy parancssorba.
Az alábbi példa a Python 3-hoz használja pip3
a redis-py telepítését Windows 11-re egy rendszergazdai parancssori ablakban.
Python-szkript létrehozása a gyorsítótár eléréséhez
Hozzon létre egy Python-szkriptet, 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.
A Microsoft Authentication Library telepítése
A Microsoft Authentication Library (MSAL) biztonsági jogkivonatokat kap a Microsoft Identitásplatform a felhasználók hitelesítéséhez.
Az MSAL telepítése:
Telepítse a Pythonhoz készült MSAL-t.
Telepítse a Python Azure Identity-ügyfélkódtárat. A kódtár az MSAL használatával biztosítja a jogkivonat-hitelesítés támogatását.
Telepítse ezt a kódtárat a pip használatával:
pip install azure-identity
Python-szkript létrehozása a Microsoft Entra ID használatával
Szövegfájl létrehozása. Mentse a fájlt PythonApplication1.py.
A PythonApplication1.py adja hozzá és módosítsa a következő szkriptet.
A szkriptben:
- Cserélje le
<Your Host Name>
az Azure Cache for Redis-példány értékét. A gazdagép neve az űrlappal<DNS name>.redis.cache.windows.net
rendelkezik. - Cserélje le
<Your Username>
a Microsoft Entra ID-felhasználó értékére.
import redis from azure.identity import DefaultAzureCredential scope = "https://redis.azure.com/.default" host = "<Your Host Name>" port = 6380 user_name = "<Your Username>" def hello_world(): cred = DefaultAzureCredential() token = cred.get_token(scope) r = redis.Redis(host=host, port=port, ssl=True, # ssl connection is required. username=user_name, password=token.token, decode_responses=True) result = r.ping() print("Ping returned : " + str(result)) result = r.set("Message", "Hello!, The cache is working with Python!") print("SET Message returned : " + str(result)) result = r.get("Message") print("GET Message returned : " + result) result = r.client_list() print("CLIENT LIST returned : ") for c in result: print(f"id : {c['id']}, addr : {c['addr']}") if __name__ == '__main__': hello_world()
- Cserélje le
Mielőtt a Python-kódot egy terminálban futtatja, engedélyezze a terminálnak a Microsoft Entra-azonosító használatát:
azd auth login
Futtassa a PythonApplication1.py fájlt a Python használatával. Ellenőrizze, hogy a kimenet az alábbi példához hasonló-e:
Python-szkript létrehozása újrahitelesítéssel
A Microsoft Entra ID hozzáférési jogkivonat é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íthet jogkivonatokat a Python használatával.
Szövegfájl létrehozása. Mentse a fájlt PythonApplication2.py.
A PythonApplication2.py adja hozzá és módosítsa a következő szkriptet.
A szkriptben:
- Cserélje le
<Your Host Name>
az Azure Cache for Redis-példány értékét. A gazdagép neve az űrlappal<DNS name>.redis.cache.windows.net
rendelkezik. - Cserélje le
<Your Username>
a Microsoft Entra ID-felhasználó értékére.
import time import logging import redis from azure.identity import DefaultAzureCredential scope = "https://redis.azure.com/.default" host = "<Your Host Name>" port = 6380 user_name = "<Your Username>" def re_authentication(): _LOGGER = logging.getLogger(__name__) cred = DefaultAzureCredential() token = cred.get_token(scope) r = redis.Redis(host=host, port=port, ssl=True, # ssl connection is required. username=user_name, password=token.token, decode_responses=True) max_retry = 3 for index in range(max_retry): try: if _need_refreshing(token): _LOGGER.info("Refreshing token...") tmp_token = cred.get_token(scope) if tmp_token: token = tmp_token r.execute_command("AUTH", user_name, token.token) result = r.ping() print("Ping returned : " + str(result)) result = r.set("Message", "Hello!, The cache is working with Python!") print("SET Message returned : " + str(result)) result = r.get("Message") print("GET Message returned : " + result) result = r.client_list() print("CLIENT LIST returned : ") for c in result: print(f"id : {c['id']}, addr : {c['addr']}") break except redis.ConnectionError: _LOGGER.info("Connection lost. Reconnecting.") token = cred.get_token(scope) r = redis.Redis(host=host, port=port, ssl=True, # ssl connection is required. username=user_name, password=token.token, decode_responses=True) except Exception: _LOGGER.info("Unknown failures.") break def _need_refreshing(token, refresh_offset=300): return not token or token.expires_on - time.time() < refresh_offset if __name__ == '__main__': re_authentication()
- Cserélje le
Futtassa a PythonApplication2.py fájlt a Python használatával. Ellenőrizze, hogy a kimenet az alábbi példához hasonló-e:
Az előző példától eltérően, ha a jogkivonat lejár, az ebben a példában szereplő kód automatikusan frissíti a jogkivonatot.
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.