赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 开发参考
  5. 日志服务SDK
  6. Python SDK
  7. 资源管理
  8. 使用Python SDK管理项目Project

使用Python SDK管理项目Project

  • 资源管理
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

项目(Project)是日志服务的资源管理单元,包含Logstore、MetricStore和机器组等资源,同时也是您访问日志服务资源的入口。本文通过代码示例介绍如何创建、修改、查询、删除Project等。

前提条件

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

  • 已创建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的对应关系,请参见服务入口。

创建Project示例代码

以下代码用于创建名为ali-test-project-python的Project。

from aliyun.log import LogClient
import os

# 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
endpoint = "cn-hangzhou.log.aliyuncs.com"
# 创建日志服务Client。
client = LogClient(endpoint, accessKeyId, accessKey)

# Project名称。
project_name = "ali-test-project-python"

# 创建Project。
def create_project():
    print("ready to create project %s" %project_name)
    client.create_project(project_name, project_des="this is a project created from ide.")
    print("create project %s success " %project_name)

# 查询Project。
def get_project():
    print("ready to get project")

    res = client.get_project(project_name)
    print("the project name is :" + res.get_projectname())
    print("the project region is :" + res.get_region())
    print("the project create time is :" + res.get_create_time())
    print("the project status is :" + res.get_status())
    print("the project desc is :" + res.get_description())
    print("get project success ")


if __name__ == '__main__':
    # 创建Project。
    create_project()
    # 查询Project。
    get_project()

预期结果如下:

ready to create project ali-test-project-python
create project ali-test-project-python success
ready to get project
the project name is :ali-test-project-python
the project region is :cn-hangzhou
the project create time is :2022-12-12 17:45:57
the project status is :Normal
the project desc is :this is a project created from ide.
get project success

查询所有Project示例代码

以下代码用于查询所有Project。

from aliyun.log import LogClient, ListProjectResponse
import os

# 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
endpoint = "cn-hangzhou.log.aliyuncs.com"
# 创建日志服务Client。
client = LogClient(endpoint, accessKeyId, accessKey)

if __name__ == '__main__':
    # 查询所有Project列表。
    print("ready to list project")
    res = client.list_project(0, 100, "")

    for project in res.get_projects():
        print(project)

    print("list project success")

预期结果如下:

ready to list project
{'projectName': 'ali-test-project-python', 'status': 'Normal', 'owner': '', 'description': '', 'region': 'cn-hangzhou', 'createTime': '1660810539', 'lastModifyTime': '1665978308'}
{'projectName': 'acktest', 'status': 'Normal', 'owner': '', 'description': '', 'region': 'cn-hangzhou', 'createTime': '1659084879', 'lastModifyTime': '1665978308'}
{'projectName': 'k8s-log-c143ee0f20b634206bf931507e0785394', 'status': 'Normal', 'owner': '', 'description': '', 'region': 'cn-hangzhou', 'createTime': '1659078881', 'lastModifyTime': '1665978308'}
{'projectName': 'sls-alert-1379186349531844-cn-hangzhou', 'status': 'Normal', 'owner': '', 'description': '', 'region': 'cn-hangzhou', 'createTime': '1658715011', 'lastModifyTime': '1665978308'}
{'projectName': 'k8s-log-c16bb522e6c794809bcc87182ea45246a', 'status': 'Normal', 'owner': '', 'description': 'k8s log project, created by alibaba cloud log controller', 'region': 'cn-hangzhou', 'createTime': '1657265089', 'lastModifyTime': '1665978308'}
list project success

查询Project中日志示例代码

以下代码用于查询指定Project中指定Logstore的日志。

from aliyun.log import LogClient, GetProjectLogsRequest
import os

# 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
endpoint = "cn-hangzhou.log.aliyuncs.com"
# 创建日志服务Client。
client = LogClient(endpoint, accessKeyId, accessKey)

# Project名称。
project_name = "ali-test-project"
# Logstore名称。
logstore_name = "ali-test-logstore"

if __name__ == '__main__':
    print("ready to get project log" + project_name)
    # 输入SQL语句,用于查询某时间区间TOP10的请求Host数量。
    sql = "SELECT host, COUNT(*) as pv FROM " + logstore_name + " where __time__ > 1670899865 and __time__ <1670900765 group by host order by pv limit 10"
    request = GetProjectLogsRequest(project_name, sql, False)
    response = client.get_project_logs(request)
    print(response)
    for QueriedLog in response.get_logs():
        print(QueriedLog.get_contents())
    print("get project %s log success " %project_name)

预期结果如下:

ready to get project logali-test-project
{'host': 'www.example.aliyundoc.com', 'pv': '1'}
{'host': 'www.demo.aliyundoc.com', 'pv': '1'}
{'host': 'www.learn.aliyundoc.com', 'pv': '1'}
{'host': 'www.guide.aliyundoc.com', 'pv': '1'}
{'host': 'www.developer.aliyundoc.com', 'pv': '1'}
{'host': 'www.pull.aliyundoc.com', 'pv': '1'}
{'host': 'www.push.aliyundoc.com', 'pv': '1'}
{'host': 'www.playback.aliyundoc.com', 'pv': '1'}
{'host': 'www.replay.aliyundoc.com', 'pv': '1'}
{'host': 'www.webview.aliyundoc.com', 'pv': '1'}
get project ali-test-project log success

删除Project示例代码

以下代码用于删除名为ali-test-project-python的Project。

from aliyun.log import LogClient
import os

# 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
endpoint = "cn-hangzhou.log.aliyuncs.com"
# 创建日志服务Client。
client = LogClient(endpoint, accessKeyId, accessKey)

if __name__ == '__main__':
    # Project名称。
    project_name = "ali-test-project-python"
    # 删除Project。
    print("ready to delete project")
    client.delete_project(project_name)
    print("delete project %s success " %project_name)

预期结果如下:

ready to delete project
delete project ali-test-project-python success

相关文档

  • 在调用API接口过程中,若服务端返回结果中包含错误信息,则表示调用API接口失败。您可以参考API错误码对照表查找对应的解决方法。更多信息,请参见API错误处理对照表。

  • 阿里云OpenAPI开发者门户提供调试、SDK、示例和配套文档。通过OpenAPI,您无需手动封装请求和签名操作,就可以快速对日志服务API进行调试。更多信息,请参见OpenAPI开发者门户。

  • 为满足越来越多的自动化日志服务配置需求,日志服务提供命令行工具CLI(Command Line Interface)。更多信息,请参见日志服务命令行工具CLI。

  • 关于Project API接口说明,请参见如下:

    • CreateProject - 创建Project

    • DeleteProject - 删除指定Project

    • GetProject - 获取指定Project

    • ListProject - 列出Project信息

    • UpdateProject - 更新Project

    • GetProjectLogs - 获取目标Project下的日志

  • 更多示例代码,请参见Aliyun Log Python SDK on GitHub。

相关文章

使用Python SDK管理项目Project 2025-04-22 10:34

项目(Project)是日志服务的资源管理单元,包含Logstore、MetricStore和机器组等资源,同时也是您访问日志服务资源的入口。本文通过代码示例介绍如何创建、修改、查询、删除Project等。 前提条件

使用Python SDK管理日志库Logstore 2025-04-22 10:34

日志库(Logstore)是日志服务中数据的采集、存储和查询单元。每个Logstore隶属于一个Project,每个Project中可创建多个Logstore。本文通过代码示例介绍如何创建、修改、查询、删除Logstore等。 前提条件

使用Python SDK创建分层存储Logstore 2025-04-22 10:34

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

使用Python SDK管理Shard 2025-04-22 10:34

日志服务使用Shard控制Logstore或MetricStore读写数据的能力,数据必定保存在某一个Shard中。本文通过代码示例介绍如何查询、分裂、合并Shard。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号