更新时间:2024-11-01 GMT+08:00
分享

资源函数

本文介绍资源函数的语法规则,包括参数解释、函数示例等。

函数列表

使用如下资源函数时,必须配置高级预览才能拉取到目标数据。

函数

说明

res_local

从当前数据加工任务中拉取高级参数配置信息。

支持和其他函数组合使用。

res_obs_file

从OBS中获取特定Bucket下的文件内容,支持定期更新数据。

支持和其他函数组合使用。

res_local

使用res_local函数从当前数据加工任务中拉取高级参数配置信息。支持和其他函数组合使用。

  • 函数格式
    res_local(param, default=None, type="auto")
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    param

    String

    对应高级参数配置中的Key。

    default

    String

    当param参数的值不存在时,返回该参数的值,默认值为None。

    type

    String

    数据输出时的数据格式。

    • auto(默认值):将原始值转化为JSON格式。如果转换失败则返回原始值。
    • JSON:将原始值转化为JSON格式。如果转换失败则返回default参数的值。
    • raw:返回原始值。
  • 返回结果

    根据参数配置,返回JSON格式数据或者原始值。

    表1 成功示例

    原始值

    返回值

    返回值类型

    1

    1

    整数

    1.2

    1.2

    浮点

    true

    true

    布尔

    false

    false

    布尔

    "123"

    123

    字符串

    null

    None

    None

    ["v1", "v2", "v3"]

    ["v1", "v2", "v3"]

    列表

    ["v1", 3, 4.0]

    ["v1", 3, 4.0]

    列表

    {"v1": 100, "v2": "good"}

    {"v1": 100, "v2": "good"}

    字典

    {"v1": {"v11": 100, "v2": 200}, "v3": "good"}

    {"v1": {"v11": 100, "v2": 200}, "v3": "good"}

    字典

    表2 失败示例

    原始值

    返回值

    说明

    (1,2,3)

    "(1,2,3)"

    不支持元组,需使用列表形式。

    true

    "true"

    只支持true、false(小写)这两种布尔类型。

    {1: 2, 3: 4}

    "{1: 2, 3: 4}"

    字典的关键字只能是字符串。

  • 函数示例

    从高级参数配置中获取信息并赋值给local。高级参数配置中的Key为endpoint,Value为hangzhou。

    • 测试数据
      {
         "content": "1"
      }
    • 加工规则
      e_set("local", res_local('endpoint'))
    • 加工结果
      content: 1
      local: hangzhou

res_obs_file

使用res_obs_file函数从OBS Bucket中获取文件内容,并支持定期刷新。支持和其他函数组合使用。

建议日志服务Project和OBS Bucket处于同一地域,使用华为云内网获取数据。

  • 函数格式
    res_obs_file(endpoint,bucket,file)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    endpoint

    String

    OBS中保存的文件地址。如obs.cn-north-4.huawei.com

    bucket

    String

    OBS中使用的桶名,如lts-dsl。

    file

    String

    目标OBS文件的路径。例如test/data.txt,不能以正斜线(/)开头。

  • 返回结果

    返回字节流形式或文本形式的文件数据。

  • 函数示例
    1. 示例1:从OBS中拉取JSON格式的数据。
      • JSON内容
        {
          "users": [
            {
                "name": "user1",
                "login_historys": [ 
                 { 
                   "date": "2019-10-10 0:0:0",
                    "login_ip": "203.0.113.10" 
                 }, 
                 { 
                   "date": "2019-10-10 1:0:0",
                    "login_ip": "203.0.113.10"
                  }
                ]
            },
            {   
             "name": "user2",
                "login_historys": [ 
                 { 
                   "date": "2019-10-11 0:0:0", 
                   "login_ip": "203.0.113.20" 
                 },
                  { 
                   "date": "2019-10-11 1:0:0", 
                   "login_ip": "203.0.113.30"
                  },
                  { 
                   "date": "2019-10-11 1:1:0", 
                   "login_ip": "203.0.113.50" 
                 } 
               ] 
           }
          ]
        }
      • 测试数据
        {
          "content":"123"
        }
      • 加工规则
        e_set(
            "json_parse", 
           json_parse( 
               res_obs_file(
                    "https://obs.cn-north-7.ulanqab.huawei.com",
                    "lts-dsl",            
                    "als_dsl.json"
                )
             ),
         )
      • 加工结果
        content: 123
            json_parse:
          '{
          "users": [
            {
                "name": "user1",
                "login_historys": [ 
                 {
                    "date": "2019-10-10 0:0:0",
                    "login_ip": "203.0.113.10" 
                 },
                  {
                    "date": "2019-10-10 1:0:0",
                    "login_ip": "203.0.113.10"
                  }
                ]
            },
            {
                "name": "user2",
                "login_historys": [ 
                 {
                    "date": "2019-10-11 0:0:0",
                    "login_ip": "203.0.113.20"
                  },
                  {
                    "date": "2019-10-11 1:0:0",
                    "login_ip": "203.0.113.30" 
                 }, 
                 { 
                   "date": "2019-10-11 1:1:0", 
                   "login_ip": "203.0.113.50" 
                 }
                ]
            }
          ]
        }'
    2. 示例2:从OBS中拉取文本内容。
      • 文本内容
        Test bytes
      • 测试数据
        {
          "content": "123"
        }
      • 加工规则
        e_set(
            "test_txt", 
           res_obs_file(
                    "https://obs.cn-north-7.ulanqab.huawei.com", 
                    "lts-dsl",
                    "als_dsl.json" 
               )
         )
      • 加工结果
        content: 123
        test_txt: Test bytes

相关文档