使用Python SDK创建分层存储Logstore

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍通过Python SDK创建分层存储Logstore的代码示例。

前提条件

  • 已开通日志服务。更多信息,请参见开通日志服务

  • 已创建RAM用户并完成授权。具体操作,请参见创建RAM用户并完成授权

  • 已配置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见在Linux、macOS和Windows系统配置环境变量

    重要
    • 阿里云账号的AccessKey拥有所有API的访问权限,建议您使用RAM用户的AccessKey进行API访问或日常运维。

    • 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。

背景信息

日志服务提供智能分层存储功能,降低您长周期存储的成本,并同时保证日志的查询、分析、可视化、告警、投递和加工等能力不受影响。更多信息,请参见管理智能存储分层

注意事项

本示例以华东1(杭州)的公网Endpoint为例,其公网Endpoint为https://cn-hangzhou.log.aliyuncs.com。如果您通过与Project同地域的其他阿里云产品访问日志服务,请使用内网Endpointhttps://cn-hangzhou-intranet.log.aliyuncs.com。关于日志服务支持的地域与Endpoint的对应关系,请参见服务入口

创建分层存储Logstore的代码示例

本示例中,创建一个SLSColdLogstore.py文件,并调用CreateLogstore接口创建分层存储库。示例如下:

# encoding: utf-8
from __future__ import print_function

import time
import os
from aliyun.log import *


def main():
    # 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
    endpoint = 'cn-hangzhou.log.aliyuncs.com'
    # 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
    access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    access_key = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # Project名称。
    project_name = 'aliyun-test-project'
    # Logstore名称。
    logstore_name= 'hot_ttl2'

    # 创建日志服务Client。
    client = LogClient(endpoint, access_key_id, access_key)
    # 创建分层存储的Logstore。数据总体保存时间是3000天,其中前60天的数据自动归档到热存储。
    client.create_logstore(project_name, logstore_name, ttl=3000, shard_count=3, hot_ttl=60)
    # 打印热分层存储时间。
    resp = client.get_logstore(project_name, logstore_name)
    print('hot ttl:', resp.get_hot_ttl())
    # 修改热分层存储时间为61天。
    client.update_logstore(project_name, logstore_name, ttl=3000, shard_count=3, hot_ttl=61)
    # 打印热分层存储时间。
    resp = client.get_logstore(project_name, logstore_name)
    print('hot ttl:', resp.get_hot_ttl())

if __name__ == '__main__':
    main()

调用CreateLogstore接口创建分层存储Logstore,各个参数说明如下表所示。

参数名称

类型

是否必选

示例

说明

project_name

String

aliyun-test-project

Project名称。

在创建Client时,已定义project_name,此处无需配置。

logstore_name

String

hot_ttl2

Logstore名称。

在创建Client时,已定义logstore_name,此处无需配置。

ttl

Long

3000

数据在Logstore中的保存时间。单位:天,取值范围:1~3000。

警告

当日志保存时间达到您所设置的保存时间后,日志将被删除。

shard_count

Long

2

Shard个数。取值范围为1~10。

hot_ttl

String

60

数据在Logstore热存储层中的存储时间,最少为7天。单位:天,取值范围:7~3000。

当数据的存储时间超过您所配置的热存储层数据保存时间后,数据将转为低频存储(原冷存储)。