全部产品
Search
文档中心

Simple Log Service:Memulai dengan Simple Log Service SDK untuk Python

更新时间:Jun 26, 2025

Topik ini menjelaskan cara memulai menggunakan Simple Log Service SDK untuk Python dan melakukan operasi umum. Sebagai contoh, Anda dapat membuat proyek, mengonfigurasi penyimpanan log, menulis log, serta menanyakan log.

Prasyarat

  • Pengguna Resource Access Management (RAM) telah dibuat, dan izin yang diperlukan telah diberikan kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Buat pengguna RAM dan berikan izin kepada pengguna RAM.

  • Variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.

    Penting
    • Pasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Kami merekomendasikan agar Anda menggunakan pasangan AccessKey dari pengguna RAM untuk memanggil operasi API atau melakukan pemeliharaan rutin O&M.

    • Kami merekomendasikan agar Anda tidak menyimpan ID AccessKey atau rahasia AccessKey dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor, dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.

  • Simple Log Service SDK untuk Python telah diinstal. Untuk informasi lebih lanjut, lihat Instal Simple Log Service SDK untuk Python.

Contoh

  • Tulis kode Python untuk mengumpulkan log

    Dalam contoh ini, file SLSQuickStart.py dibuat. Kode sampel dalam file ini memberikan contoh tentang cara memanggil operasi API untuk membuat proyek, mengonfigurasi penyimpanan log, membuat indeks, menulis log, serta menanyakan log. Contoh kode:

    from aliyun.log import LogClient, PutLogsRequest, LogItem, GetLogsRequest, IndexConfig
    import time
    import os
    
    # Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan rahasia AccessKey diperoleh dari variabel lingkungan.
    accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # Titik akhir Simple Log Service. Dalam contoh ini, titik akhir Simple Log Service untuk wilayah China (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya.
    endpoint = "cn-hangzhou.log.aliyuncs.com"
    
    # Buat klien Simple Log Service.
    client = LogClient(endpoint, accessKeyId, accessKey)
    
    # Nama proyek.
    project_name = "aliyun-test-project"
    # Nama penyimpanan log.
    logstore_name = "aliyun-test-logstore"
    # Pernyataan query.
    query = "*| select dev,id from " + logstore_name
    # Indeks.
    logstore_index = {'line': {
        'token': [',', ' ', "'", '"', ';', '=', '(', ')', '[', ']', '{', '}', '?', '@', '&', '<', '>', '/', ':', '\n', '\t',
                  '\r'], 'caseSensitive': False, 'chn': False}, 'keys': {'dev': {'type': 'text',
                                                                                 'token': [',', ' ', "'", '"', ';', '=',
                                                                                           '(', ')', '[', ']', '{', '}',
                                                                                           '?', '@', '&', '<', '>', '/',
                                                                                           ':', '\n', '\t', '\r'],
                                                                                 'caseSensitive': False, 'alias': '',
                                                                                 'doc_value': True, 'chn': False},
                                                                         'id': {'type': 'long', 'alias': '',
                                                                                'doc_value': True}}, 'log_reduce': False,
        'max_text_len': 2048}
    
    # Parameter from_time dan to_time menentukan waktu mulai dan waktu akhir rentang waktu di mana Anda ingin menanyakan log. Nilai-nilai parameter tersebut adalah timestamp UNIX.
    from_time = int(time.time()) - 3600
    to_time = time.time() + 3600
    
    # Buat proyek.
    def create_project():
        print("siap untuk membuat proyek %s" % project_name)
        client.create_project(project_name, project_des="")
        print("buat proyek %s berhasil " % project_name)
        time.sleep(60)
    
    # Buat penyimpanan log.
    def create_logstore():
        print("siap untuk membuat penyimpanan log %s" % logstore_name)
        client.create_logstore(project_name, logstore_name, ttl=3, shard_count=2)
        print("buat penyimpanan log %s berhasil " % project_name)
        time.sleep(30)
    
    # Buat indeks.
    def create_index():
        print("siap untuk membuat indeks untuk %s" % logstore_name)
        index_config = IndexConfig()
        index_config.from_json(logstore_index)
        client.create_index(project_name, logstore_name, index_config)
        print("buat indeks untuk %s berhasil " % logstore_name)
        time.sleep(60 * 2)
    
    # Tulis data ke penyimpanan log.
    def put_logs():
        print("siap untuk menulis log untuk %s" % logstore_name)
        log_group = []
        for i in range(0, 100):
            log_item = LogItem()
            contents = [
                ('dev', 'test_put'),
                ('id', str(i))
            ]
            log_item.set_contents(contents)
            log_group.append(log_item)
        request = PutLogsRequest(project_name, logstore_name, "", "", log_group, compress=False)
        client.put_logs(request)
        print("tulis log untuk %s berhasil " % logstore_name)
        time.sleep(60)
    
    
    # Eksekusi pernyataan SQL untuk menanyakan log.
    def get_logs():
        print("siap untuk menanyakan log dari penyimpanan log %s" % logstore_name)
        request = GetLogsRequest(project_name, logstore_name, from_time, to_time, query=query)
        response = client.get_logs(request)
        for log in response.get_logs():
            for k, v in log.contents.items():
                print("%s : %s" % (k, v))
            print("*********************")
    
    
    if __name__ == '__main__':
        # Buat proyek.
        create_project()
        # Buat penyimpanan log.
        create_logstore()
        # Buat indeks.
        create_index()
        # Tulis data ke penyimpanan log.
        put_logs()
        # Eksekusi pernyataan SQL untuk menanyakan log.
        get_logs()

    Respons:

    siap untuk membuat proyek aliyun-test-project
    buat proyek aliyun-test-project berhasil
    siap untuk membuat penyimpanan log aliyun-test-logstore
    buat penyimpanan log aliyun-test-project berhasil
    siap untuk membuat indeks untuk aliyun-test-logstore
    buat indeks untuk aliyun-test-logstore berhasil
    siap untuk menulis log untuk aliyun-test-logstore
    tulis log untuk aliyun-test-logstore berhasil
    siap untuk menanyakan log dari penyimpanan log aliyun-test-logstore
    dev : test_put
    id : 0
    *********************
    dev : test_put
    id : 1
    *********************
    dev : test_put
    id : 2
    *********************
    dev : test_put
    id : 3
    *********************
    ........

    Untuk informasi lebih lanjut tentang kode sampel, lihat aliyun-log-python-sdk.

  • Gunakan Logtail untuk mengumpulkan log Python

    Anda dapat menggunakan Logtail untuk mengumpulkan log Python dari modul logging di Python. Untuk informasi lebih lanjut, lihat Kumpulkan log Python.

Referensi

  • Jika respons yang dikembalikan oleh Simple Log Service berisi informasi kesalahan setelah Anda memanggil operasi API, panggilan tersebut gagal. Anda dapat menangani kesalahan berdasarkan kode kesalahan yang dikembalikan saat panggilan API gagal. Untuk informasi lebih lanjut, lihat Kode kesalahan.

  • Simple Log Service juga kompatibel dengan SDK Alibaba Cloud. Untuk informasi lebih lanjut, lihat Simple Log Service_SDK Center_Alibaba Cloud OpenAPI Explorer.

  • Simple Log Service menyediakan antarmuka baris perintah (CLI) untuk memenuhi persyaratan konfigurasi otomatis di Simple Log Service. Untuk informasi lebih lanjut, lihat Ikhtisar CLI Simple Log Service.

  • Untuk informasi lebih lanjut tentang kode sampel, lihat Alibaba Cloud Simple Log Service SDK untuk Python di GitHub.