本文为Python示例。

安装Python环境

Python SDK是一个纯Python的库,支持所有运行Python的操作系统,目前主要为Linux和Windows。

请按以下步骤安装Python:

  1. 下载并安装最新的Python 2安装包

    目前,Python SDK支持Python 2.6/2.7环境。可以运行python -V查询当前Python版本。

  2. 下载并安装Python的包管理工具pip。

    完成pip安装后,你可以运行pip -V确认pip是否安装成功和查看当前pip版本。

安装Python SDK的依赖库

Python SDK依赖于一组第三方的Python库。在使用该SDK前必须安装好以下依赖库:

  • Google Protocol Buffer:Python SDK依赖于Protocol Buffer协议向服务端写入日志。执行以下命令进行安装:

    sudo pip install protobuf==2.5.0

    pip安装Protobuf需要连接Python Package Index网站,请确保机器能够访问该网站。如果因为网络问题无法安装成功,可以考虑从Protocol Buffer的Github官方网站手动下载安装(具体安装步骤请参见下载包的Readme文档)。

  • Python-Requests:Python SDK依赖于Python-Requests类进行HTTP通信。执行以下命令进行安装:
    sudo pip install requests
  • SimpleJson:Python SDK依赖于SimpleJson处理API的JSON格式返回结果。执行以下命令进行安装:

    sudo pip install simplejson

安装Python SDK

安装好上述环境后,需要下载Python SDK:

  1. 从GitHub下载最新的Python SDK包。
  2. 解压完整下载的包到指定目录。
  3. 在解压后的目录运行以下命令安装Python SDK。
    python setup.py install

开始一个Python程序

#!/usr/bin/env python
#encoding: utf-8
import datetime
from aliyun.log.logclient import LogClient
from aliyun.log.logitem import LogItem
from aliyun.log.putlogsrequest import PutLogsRequest
def main():
    #endpoint: 数据写入存储所在区域。
    #project,logstore: 构成基本数据存储目标。
    #accessKeyId,accessKeySecret: 构成访问密钥。
    #注意: 请用户根据实际情况填写。
    endpoint = "cn-hangzhou.log.aliyuncs.com"
    project = "proj-arms-7dd6ecb06d21e02aed9eeb56b7****"
    logstore = "logstore-56f96ec5546fb6555ef97dd057ac****"
    accessKeyId = "utmxiro7BYtT****"
    accessKeySecret = "PyjsffdlggBoYcrgpr69w023b9****"
    logGroupSize = 10
    examples = []
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=男装&区域=杭州&eventTeyp=1&性别=1&价格=2140|')
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=家居&区域=上海&eventTeyp=3&性别=0&价格=8305|')
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=食品&区域=深圳&eventTeyp=3&性别=1&价格=7121|')
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=男装&区域=上海&eventTeyp=3&性别=1&价格=2917|')
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=食品&区域=上海&eventTeyp=1&性别=1&价格=4285|')
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=男装&区域=杭州&eventTeyp=3&性别=1&价格=7864|')
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=女装&区域=杭州&eventTeyp=5&性别=0&价格=2983|')
    examples.append('|c0a895e114526786450161001d1ed9|9|EADS|BIZ-MONITOR|0|类目=食品&区域=深圳&eventTeyp=5&性别=1&价格=3201|')
    # 构建一个client。
    client = LogClient(endpoint, accessKeyId, accessKeySecret)
    for i in range(0, 10):
        logGroup = []
        for j in range(0, 10):
            logItem = LogItem()
            logItem.push_back("content", datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + examples[j % len(examples)])
            logGroup.append(logItem)
        req = PutLogsRequest(project, logstore, "", "", logGroup)
        client.put_logs(req)
    print "send data success"
if __name__ == '__main__':
    main()

重要参数说明

参数 说明
endpoint 数据写入区域(请参见ARMS支持的Endpoint
accessKeyId 写入数据时的密钥ID
accessKeySecret 写入数据时的密钥密码
project 写入数据的Project ID
logstore 写入数据的Logstore ID
说明
  • ARMS颁发的accessKeyId、accessKeySecret非阿里云AK/SK,需要从ARMS获取,详情请参见SDK 数据源概述

  • Project ID和Logstore ID标识一个唯一的数据源。