本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本文介绍通过Python SDK创建分层存储Logstore的代码示例。
前提条件
已开通日志服务。更多信息,请参见开通日志服务。
已创建RAM用户并完成授权。具体操作,请参见创建RAM用户并完成授权。
已配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
重要阿里云账号的AccessKey拥有所有API的访问权限,建议您使用RAM用户的AccessKey进行API访问或日常运维。
强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
已安装日志服务Python SDK。更多信息,请参见安装Python SDK。
背景信息
日志服务提供智能分层存储功能,降低您长周期存储的成本,并同时保证日志的查询、分析、可视化、告警、投递和加工等能力不受影响。更多信息,请参见管理智能存储分层。
注意事项
本示例以华东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。 当数据的存储时间超过您所配置的热存储层数据保存时间后,数据将转为低频存储(原冷存储)。 |