Bagikan melalui


Mulai cepat: Menggunakan Azure Cache for Redis dengan aplikasi Python

Dalam mulai cepat ini, Anda memasukkan Azure Cache for Redis ke dalam skrip Python untuk akses ke cache khusus yang aman yang dapat diakses dari aplikasi apa pun di Azure.

Lewati ke kode

Artikel ini menjelaskan cara membuat aplikasi Python lalu memodifikasi kode agar berakhir dengan aplikasi sampel yang berfungsi.

Jika Anda ingin melompat langsung ke kode, lihat sampel mulai cepat Python di GitHub.

Prasyarat

Membuat cache

  1. Untuk membuat cache, masuk ke portal Azure. Pada menu portal, pilih Buat sumber daya.

    Sceenshot yang memperlihatkan opsi Buat sumber daya disorot di panel navigasi kiri di portal Azure.

  2. Pada panel Memulai , masukkan Azure Cache for Redis di bilah pencarian. Di hasil pencarian, temukan Azure Cache for Redis, lalu pilih Buat.

    Cuplikan layar yang memperlihatkan Marketplace Azure dengan Azure Cache for Redis di kotak pencarian, dan tombol Buat disorot.

  3. Pada panel Singgahan Redis Baru, pada tab Dasar , konfigurasikan pengaturan berikut untuk cache Anda:

    Pengaturan Tindakan Deskripsi
    Langganan Pilih langganan Azure Anda. Langganan yang digunakan untuk membuat instans baru Azure Cache for Redis.
    Grup sumber daya Pilih grup sumber daya, atau pilih Buat baru dan masukkan nama grup sumber daya baru. Nama untuk grup sumber daya untuk membuat cache dan sumber daya lainnya. Dengan menyatukan semua sumber daya aplikasi dalam satu grup sumber daya, Anda dapat dengan mudah mengelola atau menghapusnya sekaligus.
    Nama DNS Masukkan nama yang unik. Nama cache harus berupa string 1 hingga 63 karakter yang hanya berisi angka, huruf, dan tanda hubung. Nama harus dimulai dan diakhiri dengan angka atau huruf, dan tidak boleh berisi tanda hubung berturut-turut. Nama host instans cache Anda adalah \<DNS name>.redis.cache.windows.net.
    Location Pilih lokasi. Wilayah Azure yang berada di dekat layanan lain yang menggunakan cache Anda.
    Cache SKU Pilih SKU. SKU menentukan ukuran, performa, dan parameter fitur yang tersedia untuk cache. Untuk informasi selengkapnya, lihat Gambaran Umum Azure Cache for Redis.
    Ukuran cache Pilih ukuran cache. Untuk informasi selengkapnya, lihat Gambaran Umum Azure Cache for Redis.
  4. Pilih tab Jaringan atau pilih Berikutnya: Jaringan.

  5. Pada tab Jaringan , pilih metode konektivitas yang akan digunakan untuk cache.

  6. Pilih tab Tingkat Lanjut atau pilih Berikutnya: Tingkat Lanjut.

  7. Pada panel Tingkat Lanjut , verifikasi atau pilih metode autentikasi berdasarkan informasi berikut:

    Cuplikan layar memperlihatkan panel Tingkat Lanjut dan opsi yang tersedia untuk dipilih.

    • Secara default, untuk cache Dasar, Standar, atau Premium baru, Autentikasi Microsoft Entra diaktifkan dan Autentikasi Kunci Akses dinonaktifkan.
    • Untuk cache Dasar atau Standar, Anda dapat memilih pilihan untuk port non-TLS.
    • Untuk cache Standar dan Premium, Anda dapat memilih untuk mengaktifkan zona ketersediaan. Anda tidak dapat menonaktifkan zona ketersediaan setelah cache dibuat.
    • Untuk cache Premium, konfigurasikan pengaturan untuk port non-TLS, pengklusteran, identitas terkelola, dan persistensi data.

    Penting

    Untuk keamanan yang optimal, kami sarankan Anda menggunakan ID Microsoft Entra dengan identitas terkelola untuk mengotorisasi permintaan terhadap cache Anda jika memungkinkan. Otorisasi dengan menggunakan ID Microsoft Entra dan identitas terkelola memberikan keamanan yang unggul dan kemudahan penggunaan melalui otorisasi kunci akses bersama. Untuk informasi selengkapnya tentang menggunakan identitas terkelola dengan cache Anda, lihat Menggunakan ID Microsoft Entra untuk autentikasi cache.

  8. (Opsional) Pilih tab Tag atau pilih Berikutnya: Tag.

  9. (Opsional) Pada tab Tag , masukkan nama dan nilai tag jika Anda ingin mengategorikan sumber daya cache Anda.

  10. Pilih tombol Tinjau + buat.

    Pada tab Tinjau + buat , Azure secara otomatis memvalidasi konfigurasi Anda.

  11. Setelah pesan hijauLulus validasi muncul, pilih Buat.

Penyebaran cache baru terjadi selama beberapa menit. Anda dapat memantau kemajuan penyebaran di panel Gambaran Umum Azure Cache for Redis. Saat Status ditampilkan Berjalan, cache siap digunakan.

Menginstal pustaka redis-py

Redis-py adalah antarmuka Python ke Azure Cache for Redis. Gunakan pip alat paket Python untuk menginstal paket redis-py pada baris perintah.

Contoh berikut menggunakan pip3 untuk Python 3 untuk menginstal redis-py pada Windows 11 di jendela Prompt Perintah Administrator.

Cuplikan layar terminal memperlihatkan penginstalan antarmuka redis-py ke Azure Cache for Redis.

Membuat skrip Python untuk mengakses cache Anda

Buat skrip Python yang menggunakan ID Microsoft Entra atau kunci akses untuk menyambungkan ke Azure Cache for Redis. Kami menyarankan agar Anda menggunakan ID Microsoft Entra.

Mengaktifkan autentikasi ID Microsoft Entra di cache Anda

Untuk cache yang ada, pertama-tama periksa untuk melihat apakah autentikasi Microsoft Entra diaktifkan. Jika tidak, selesaikan langkah-langkah berikut untuk mengaktifkan autentikasi Microsoft Entra. Kami menyarankan agar Anda menggunakan ID Microsoft Entra untuk autentikasi di aplikasi Anda.

  1. Di portal Azure, pilih instans Azure Cache for Redis tempat Anda ingin menggunakan autentikasi berbasis token Microsoft Entra.

  2. Pada menu layanan, di bawah Pengaturan, pilih Autentikasi.

  3. Pada panel Autentikasi , centang untuk melihat apakah kotak centang Aktifkan Autentikasi Microsoft Entra dipilih. Jika ya, Anda dapat melanjutkan ke bagian berikutnya.

  4. Jika tidak, pilih kotak centang Aktifkan Autentikasi Microsoft Entra. Kemudian, masukkan nama pengguna yang valid. Pilih Simpan. Nama pengguna yang Anda masukkan secara otomatis diberi Kebijakan Akses Pemilik Data.

    Anda juga dapat memasukkan identitas terkelola atau perwakilan layanan untuk terhubung ke cache Anda.

    Cuplikan layar yang memperlihatkan Autentikasi dipilih di menu layanan dan kotak centang Aktifkan Autentikasi Microsoft Entra dipilih.

  5. Dalam kotak dialog, Anda ditanya apakah Anda ingin memperbarui konfigurasi, dan Anda diberi tahu bahwa membuat pembaruan membutuhkan waktu beberapa menit untuk menyelesaikannya. Pilih Ya.

    Penting

    Setelah operasi pengaktifan selesai, simpul di reboot cache Anda untuk memuat konfigurasi baru. Kami menyarankan agar Anda menyelesaikan operasi ini selama jendela pemeliharaan standar atau di luar jam kerja puncak Anda. Prosesnya dapat memakan waktu hingga 30 menit.

Untuk informasi tentang menggunakan ID Microsoft Entra dengan Azure CLI, lihat halaman referensi identitas.

Menginstal Pustaka Autentikasi Microsoft

Microsoft Authentication Library (MSAL) mendapatkan token keamanan dari platform identitas Microsoft untuk mengautentikasi pengguna.

Untuk menginstal MSAL:

  1. Instal MSAL untuk Python.

  2. Instal pustaka klien identitas Azure Python. Pustaka menggunakan MSAL untuk memberikan dukungan autentikasi token.

    Instal pustaka ini dengan menggunakan pip:

pip install azure-identity

Membuat skrip Python dengan menggunakan ID Microsoft Entra

  1. Buat file teks. Simpan file sebagai PythonApplication1.py.

  2. Di PythonApplication1.py, tambahkan dan ubah skrip berikut.

    Dalam skrip:

    • Ganti <Your Host Name> dengan nilai dari instans Azure Cache for Redis Anda. Nama host Anda memiliki formulir <DNS name>.redis.cache.windows.net.
    • Ganti <Your Username> dengan nilai untuk pengguna ID Microsoft Entra Anda.
    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()
    
  3. Sebelum Anda menjalankan kode Python di terminal, otorisasi terminal untuk menggunakan ID Microsoft Entra:

    azd auth login

  4. Jalankan file PythonApplication1.py dengan menggunakan Python. Verifikasi bahwa output terlihat mirip dengan contoh ini:

    Cuplikan layar terminal memperlihatkan skrip Python untuk menguji akses cache.

Membuat skrip Python dengan menggunakan reauthentication

Token akses ID Microsoft Entra memiliki masa pakai terbatas sekitar 75 menit. Untuk mempertahankan koneksi ke cache, Anda harus menyegarkan token.

Contoh ini menunjukkan cara merefresh token dengan menggunakan Python.

  1. Buat file teks. Simpan file sebagai PythonApplication2.py.

  2. Di PythonApplication2.py, tambahkan dan ubah skrip berikut.

    Dalam skrip:

    • Ganti <Your Host Name> dengan nilai dari instans Azure Cache for Redis Anda. Nama host Anda memiliki formulir <DNS name>.redis.cache.windows.net.
    • Ganti <Your Username> dengan nilai untuk pengguna ID Microsoft Entra Anda.
    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()
    
  3. Jalankan file PythonApplication2.py dengan menggunakan Python. Verifikasi bahwa output terlihat mirip dengan contoh ini:

    Cuplikan layar terminal memperlihatkan skrip Python untuk menguji akses cache.

    Tidak seperti dalam contoh sebelumnya, jika token Anda kedaluwarsa, kode dalam contoh ini secara otomatis me-refresh token.

Membersihkan sumber daya

Jika Anda ingin terus menggunakan sumber daya yang Anda buat di artikel ini, simpan grup sumber daya.

Jika tidak, untuk menghindari biaya yang terkait dengan sumber daya, jika Anda selesai menggunakan sumber daya, Anda dapat menghapus grup sumber daya Azure yang Anda buat.

Peringatan

Penghapusan grup sumber daya tidak bisa dipulihkan. Saat Anda menghapus grup sumber daya, semua sumber daya dalam grup sumber daya akan dihapus secara permanen. Pastikan Anda tidak salah menghapus grup sumber daya atau sumber daya secara tidak sengaja. Jika Anda membuat sumber daya di dalam grup sumber daya yang sudah ada yang memiliki sumber daya yang ingin Anda simpan, Anda dapat menghapus setiap sumber daya satu per satu alih-alih menghapus grup sumber daya.

Menghapus grup sumber daya

  1. Masuk ke portal Azure, lalu pilih Grup sumber daya.

  2. Pilih grup sumber daya yang akan dihapus.

    Jika ada banyak grup sumber daya, di Filter untuk bidang apa pun, masukkan nama grup sumber daya yang Anda buat untuk menyelesaikan artikel ini. Dalam daftar hasil pencarian, pilih grup sumber daya.

    Cuplikan layar yang memperlihatkan daftar grup sumber daya untuk dipilih untuk dihapus.

  3. Pilih Hapus grup sumber daya.

  4. Di panel Hapus grup sumber daya, masukkan nama grup sumber daya Anda untuk mengonfirmasi, lalu pilih Hapus.

    Cuplikan layar yang memperlihatkan kotak yang mengharuskan memasukkan nama sumber daya untuk mengonfirmasi penghapusan.

Dalam beberapa saat, grup sumber daya dan semua sumber dayanya dihapus.