Aracılığıyla paylaş


Hızlı Başlangıç: Python içinde Redis için Azure Cache kullanma

Bu Hızlı Başlangıçta, Azure'daki herhangi bir uygulamadan erişilebilen güvenli ve ayrılmış bir önbelleğe erişmek için Redis için Azure Cache bir Python betiğine dahil edin.

GitHub'da koda atlayın

Doğrudan koda atlamak istiyorsanız GitHub'da Python hızlı başlangıcına bakın.

Önkoşullar

Redis için Azure Cache örneği oluşturma

  1. Önbellek oluşturmak için Azure portalında oturum açın ve Kaynak oluştur'u seçin.

    Sol gezinti bölmesinde kaynak oluştur seçeneği vurgulanır.

  2. Başlarken sayfasında, arama kutusuna Redis için Azure Cache yazın. Ardından Oluştur’u seçin.

    Arama kutusunda ve oluşturmada Redis için Azure Cache bulunan Azure Market ekran görüntüsü kırmızı bir kutuyla vurgulanmış.

  3. Yeni Redis Önbelleği sayfasında önbelleğinizin ayarlarını yapılandırın.

    Ayar Bir değer seçin Açıklama
    Abonelik Açılan menüye gidin ve aboneliğinizi seçin. Bu yeni Redis için Azure Cache örneğinin oluşturulacağı abonelik.
    Kaynak grubu Açılan menüden bir kaynak grubu seçin veya Yeni oluştur'u seçip yeni bir kaynak grubu adı girin. Önbelleğinizi ve diğer kaynakları oluşturacağınız kaynak grubunun adı. Tüm uygulama kaynaklarınızı tek bir kaynak grubuna yerleştirerek bunları kolayca yönetebilir veya silebilirsiniz.
    DNS adı Benzersiz bir ad girin. Önbellek adı yalnızca sayı, harf veya kısa çizgi içeren 1 ile 63 karakter arasında bir dize olmalıdır. Adın bir sayı veya harfle başlayıp bitmesi gerekir ve ardışık kısa çizgi içeremez. Önbellek örneğinizin ana bilgisayar adı< DNS adı.redis.cache.windows.net.>
    Konum Açılan menüye gidin ve bir konum seçin. Önbelleğinizi kullanan diğer hizmetlerin yakınında bir bölge seçin.
    Önbellek SKU'su Açılan menüye gidin ve bir SKU seçin. SKU, önbellek için kullanılabilen boyut, performans ve özellik parametrelerini belirler. Daha fazla bilgi için bkz. Redis için Azure Cache Genel Bakış.
    Önbellek boyutu Açılan menüye gidin ve önbelleğinizin boyutunu seçin Daha fazla bilgi için bkz. Redis için Azure Cache Genel Bakış.
  4. sekmesini seçin veya sayfanın en altındaki Ağ düğmesini seçin.

  5. sekmesinde bağlantı yönteminizi seçin.

  6. İleri: Gelişmiş sekmesini seçin veya Gelişmiş sekmesini görmek için sayfanın alt kısmındaki İleri: Gelişmiş düğmesini seçin.

    Çalışma bölmesindeki Gelişmiş sekmesini ve seçilebilecek seçeneği gösteren ekran görüntüsü.

    • Varsayılan olarak, yeni bir Temel, Standart veya Premium önbellek için Microsoft Entra Kimlik Doğrulaması etkinleştirilir ve Erişim Anahtarları Kimlik Doğrulaması devre dışı bırakılır.
    • Temel veya Standart önbellekler için TLS olmayan bir bağlantı noktası için seçim yapabilirsiniz.
    • Standart ve Premium önbellekler için kullanılabilirlik alanlarını etkinleştirmeyi seçebilirsiniz. Önbellek oluşturulduktan sonra kullanılabilirlik alanlarını devre dışı bırakamazsınız.
    • Premium önbellek için TLS olmayan bağlantı noktası, kümeleme, yönetilen kimlik ve veri kalıcılığı ayarlarını yapılandırın.

    Önemli

    En iyi güvenlik için Microsoft, mümkün olduğunda istekleri önbelleğinize karşı yetkilendirmek için yönetilen kimliklerle Microsoft Entra Id kullanılmasını önerir. Microsoft Entra Kimliği ve yönetilen kimliklerle yetkilendirme, Paylaşılan Anahtar yetkilendirmesi üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Önbelleklerinizle yönetilen kimlikleri kullanma hakkında daha fazla bilgi için bkz . Önbellek kimlik doğrulaması için Microsoft Entra Id kullanma.

  7. Sonraki: Etiketler sekmesini seçin veya sayfanın en altındaki İleri: Etiketler düğmesini seçin.

  8. İsteğe bağlı olarak, kaynağı kategorilere ayırmak istiyorsanız Etiketler sekmesinde adı ve değeri girin.

  9. Gözden geçir ve oluştur’u seçin. Gözden geçir ve oluştur bölümünde Azure yapılandırmanızı doğrular.

  10. Yeşil Doğrulama başarılı iletisi görüntülendiğinde Oluştur'u seçin.

Önbelleğin oluşturulması biraz zaman alır. İlerleme durumunu Redis için Azure Cache Genel Bakış sayfasından izleyebilirsiniz. Durum Çalışıyor olarak gösterildiğinde önbellek kullanıma hazırdır.

Redis-py kitaplığını yükleme

Redis-py, Redis için Azure Cache için bir Python arabirimidir. Paketi bir komut isteminden yüklemek redis-py için Python paketleri aracını pipkullanın.

Aşağıdaki örnek, Python 3'ü Bir Yönetici komut isteminden Windows 11'e yüklemek redis-py için kullanılırpip3.

Redis için Azure Cache için redis-py arabiriminin yüklendiğini gösteren terminalin ekran görüntüsü.

Önbelleğinize erişmek için Python betiği oluşturma

Bir Redis için Azure Cache bağlanmak için Microsoft Entra Id veya erişim anahtarlarını kullanan bir Python betiği oluşturun. Microsoft Entra Id kullanmanızı öneririz.

Önbelleğinizde Microsoft Entra Id kimlik doğrulamasını etkinleştirme

Zaten bir önbelleğiniz varsa, önce Microsoft Entra Authentication'ın etkinleştirilip etkinleştirilmediğini denetlemek istersiniz. Aksi takdirde etkinleştirin. Uygulamalarınız için Microsoft Entra Id kullanmanızı öneririz.

  1. Azure portalında Microsoft Entra belirteç tabanlı kimlik doğrulamasını kullanmak istediğiniz Redis için Azure Cache örneğini seçin.

  2. Kaynak menüsünden Kimlik Doğrulaması'nı seçin.

  3. Microsoft Entra Authentication'ı etkinleştir seçeneğinin işaretli olup olmadığını görmek için çalışma bölmesini kontrol edin. Öyleyse, devam edebilirsiniz.

  4. Microsoft Entra Kimlik Doğrulamasını Etkinleştir'i seçin ve geçerli bir kullanıcının adını girin. Kaydet'i seçtiğinizde, girdiğiniz kullanıcıya varsayılan olarak otomatik olarak Veri Sahibi Erişim İlkesi atanır. Önbellek örneğinize bağlanmak için yönetilen kimlik veya hizmet sorumlusu da girebilirsiniz.

    Kaynak menüsünde kimlik doğrulamasının seçili olduğunu ve Microsoft Entra kimlik doğrulamasını etkinleştir seçeneğinin işaretli olduğunu gösteren ekran görüntüsü.

  5. Yapılandırmanızı güncelleştirmek isteyip istemediğinizi soran ve bunun birkaç dakika sürdüğünü bildiren bir açılır iletişim kutusu görüntülenir. Evet'i seçin.

    Önemli

    Etkinleştirme işlemi tamamlandıktan sonra önbellek örneğinizdeki düğümler yeni yapılandırmayı yüklemek için yeniden başlatılır. Bu işlemi bakım pencereniz sırasında veya yoğun iş saatlerinizin dışında gerçekleştirmenizi öneririz. İşlem 30 dakikaya kadar sürebilir.

Microsoft Entra Id'yi Azure CLI ile kullanma hakkında bilgi için kimlik başvuru sayfalarına bakın.

Microsoft Kimlik Doğrulama Kitaplığı'nı yükleme

  1. Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL) yükleyin. Bu kitaplık, kullanıcıların kimliğini doğrulamak için Microsoft kimliğinden güvenlik belirteçleri almanıza olanak tanır.

  2. Belirteç kimlik doğrulaması desteği sağlamak için MSAL kullanan Python Azure kimlik istemci kitaplığını kullanabilirsiniz. kullanarak pipbu kitaplığı yükleyin:

pip install azure-identity

Microsoft Entra Id kullanarak Python betiği oluşturma

  1. Yeni bir metin dosyası oluşturun, aşağıdaki betiği ekleyin ve dosyayı olarak PythonApplication1.pykaydedin.

  2. değerini Redis için Azure Cache örneğinizdeki değerle değiştirin<Your Host Name>. Ana bilgisayar adınız biçimindedir <DNS name>.redis.cache.windows.net.

  3. değerini Microsoft Entra ID kullanıcınızın değerleriyle değiştirin <Your Username> .

    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()
    
  4. Python kodunuzu bir Terminalden çalıştırmadan önce terminali Microsoft Entra Id kullanmak üzere yetkilendirildiğinizden emin olun.

    azd auth login

  5. Python ile çalıştırın PythonApplication1.py . Aşağıdaki örneğe benzer sonuçlar görmeniz gerekir:

    Önbellek erişimini test etmek için Python betiğini gösteren terminalin ekran görüntüsü.

Yeniden kimlik doğrulama kullanarak Python betiği oluşturma

Microsoft Entra Id erişim belirteçlerinin kullanım ömrü sınırlıdır ve ortalama 75 dakikadır. Önbelleğinizle bağlantı kurmak için belirteci yenilemeniz gerekir. Bu örnekte Python kullanılarak bunun nasıl yapıldığını gösterilmektedir.

  1. Yeni bir metin dosyası oluşturun ve aşağıdaki betiği ekleyin. Ardından dosyayı olarak PythonApplication2.pykaydedin.

  2. değerini Redis için Azure Cache örneğinizdeki değerle değiştirin<Your Host Name>. Ana bilgisayar adınız biçimindedir <DNS name>.redis.cache.windows.net.

  3. değerini Microsoft Entra ID kullanıcınızın değerleriyle değiştirin <Your Username> .

    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()
    
  4. Python ile çalıştırın PythonApplication2.py . Aşağıdaki örneğe benzer sonuçlar görmeniz gerekir:

    Önbellek erişimini test etmek için Python betiğini gösteren terminalin ekran görüntüsü.

    İlk örnekten farklı olarak belirtecinizin süresi dolarsa bu örnek otomatik olarak yenilenir.

Kaynakları temizleme

Bu makalede oluşturduğunuz kaynakları kullanmaya devam etmek istiyorsanız kaynak grubunu koruyun.

Aksi takdirde, kaynaklarla işiniz bittiyse ücretlerden kaçınmak için oluşturduğunuz Azure kaynak grubunu silebilirsiniz.

Önemli

Silinen kaynak grupları geri alınamaz. Kaynak grubunu sildiğinizde, içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Tutmak istediğiniz kaynakları içeren mevcut bir kaynak grubunun içinde kaynakları oluşturduysanız, kaynak grubunu silmek yerine her kaynağı tek tek silebilirsiniz.

Kaynak grubunu silmek için

  1. Azure portalında oturum açın ve Kaynak grupları’nı seçin.

  2. Silmek istediğiniz kaynak grubunu seçin.

    Çok sayıda kaynak grubu varsa Herhangi bir alan için filtre uygula... kutusunu kullanın, bu makale için oluşturduğunuz kaynak grubunuzun adını yazın. Sonuçlar listesinden kaynak grubunu seçin.

    Çalışma bölmesinde silinecek kaynak gruplarının listesini gösteren ekran görüntüsü.

  3. Kaynak grubunu sil'i seçin.

  4. Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını yazın ve ardından Sil’i seçin.

    Silme işlemini onaylamak için kaynak adını gerektiren formu gösteren ekran görüntüsü.

Birkaç dakika sonra kaynak grubu ve bu gruptaki kaynakların tümü silinir.