日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Python SDK快速入門

本文介紹如何快速使用日志服務Python SDK完成常見操作,包括創(chuàng)建項目(Project)、創(chuàng)建日志庫(Logstore)、寫入日志和查詢日志等。

前提條件

  • 已創(chuàng)建RAM用戶并完成授權。具體操作,請參見創(chuàng)建RAM用戶并完成授權

  • 已配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET。具體操作,請參見在Linux、macOS和Windows系統(tǒng)配置環(huán)境變量

    重要
    • 阿里云賬號的AccessKey擁有所有API的訪問權限,建議您使用RAM用戶的AccessKey進行API訪問或日常運維。

    • 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。

  • 已完成日志服務Python SDK安裝。更多信息,請參見安裝Python SDK

示例

  • 直接編寫Python代碼采集日志

    本示例中,創(chuàng)建一個SLSQuickStart.py文件,并調用接口分別完成創(chuàng)建Project、創(chuàng)建Logstore、創(chuàng)建索引、寫入日志數(shù)據(jù)和查詢日志數(shù)據(jù)。示例如下:

    from aliyun.log import LogClient, PutLogsRequest, LogItem, GetLogsRequest, IndexConfig
    import time
    import os
    
    # 本示例從環(huán)境變量中獲取AccessKey ID和AccessKey Secret。
    accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # 日志服務的服務接入點。此處以杭州為例,其它地域請根據(jù)實際情況填寫。
    endpoint = "cn-hangzhou.log.aliyuncs.com" 
    
    # 創(chuàng)建日志服務Client。 
    client = LogClient(endpoint, accessKeyId, accessKey)
    
    # Project名稱。
    project_name = "aliyun-test-project"
    # Logstore名稱
    logstore_name = "aliyun-test-logstore"
    # 查詢語句。
    query = "*| select dev,id from " + logstore_name
    # 索引。
    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}
    
    # from_time和to_time表示查詢日志的時間范圍,Unix時間戳格式。
    from_time = int(time.time()) - 3600
    to_time = time.time() + 3600
    
    # 創(chuàng)建Project。
    def create_project():
        print("ready to create project %s" % project_name)
        client.create_project(project_name, project_des="")
        print("create project %s success " % project_name)
        time.sleep(60)
    
    # 創(chuàng)建Logstore。
    def create_logstore():
        print("ready to create logstore %s" % logstore_name)
        client.create_logstore(project_name, logstore_name, ttl=3, shard_count=2)
        print("create logstore %s success " % project_name)
        time.sleep(30)
    
    # 創(chuàng)建索引。
    def create_index():
        print("ready to create index for %s" % logstore_name)
        index_config = IndexConfig()
        index_config.from_json(logstore_index)
        client.create_index(project_name, logstore_name, index_config)
        print("create index for %s success " % logstore_name)
        time.sleep(60 * 2)
    
    # 向Logstore寫入數(shù)據(jù)。
    def put_logs():
        print("ready to put logs for %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("put logs for %s success " % logstore_name)
        time.sleep(60)
    
    
    # 通過SQL查詢日志。
    def get_logs():
        print("ready to query logs from logstore %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__':
        # 創(chuàng)建Project。
        create_project()
        # 創(chuàng)建Logstore。
        create_logstore()
        # 創(chuàng)建索引。
        create_index()
        # 向Logstore寫入數(shù)據(jù)。
        put_logs()
        # 通過SQL查詢日志。
        get_logs()

    返回結果示例如下:

    ready to create project aliyun-test-project
    create project aliyun-test-project success
    ready to create logstore aliyun-test-logstore
    create logstore aliyun-test-project success
    ready to create index for aliyun-test-logstore
    create index for aliyun-test-logstore success
    ready to put logs for aliyun-test-logstore
    put logs for aliyun-test-logstore success
    ready to query logs from logstore aliyun-test-logstore
    dev : test_put
    id : 0
    *********************
    dev : test_put
    id : 1
    *********************
    dev : test_put
    id : 2
    *********************
    dev : test_put
    id : 3
    *********************
    ........

    更多示例代碼,請參見Aliyun Log Python SDK

  • 通過Logtail采集Python日志

    通過Logtail方式,以采集Python的logging模塊日志為例,采集Python日志。更多信息,請參見采集Python日志

相關文檔

  • 在調用API接口過程中,若服務端返回結果中包含錯誤信息,則表示調用API接口失敗。您可以參考API錯誤碼對照表查找對應的解決方法。更多信息,請參見API錯誤處理對照表

  • 阿里云OpenAPI開發(fā)者門戶提供調試、SDK、示例和配套文檔。通過OpenAPI,您無需手動封裝請求和簽名操作,就可以快速對日志服務API進行調試。更多信息,請參見OpenAPI開發(fā)者門戶

  • 為滿足越來越多的自動化日志服務配置需求,日志服務提供命令行工具CLI(Command Line Interface)。更多信息,請參見日志服務命令行工具CLI

  • 更多示例代碼,請參見Aliyun Log Python On GitHub