配置CLI后,您无需在每次执行命令时指定所需的访问密钥、服务入口和输出格式等全局参数。本文介绍配置CLI账号和全局参数的操作方法。
使用阿里云CLI凭证
日志服务CLI工具支持使用阿里云CLI凭证作为账号校验凭证。如果您已安装阿里云CLI工具,则可以无需配置账号信息。更多信息,请参见配置阿里云CLI。
在使用CLI过程中,日志服务CLI可以通过具体子命令、日志服务CLI配置文件、阿里云CLI配置文件和环境变量读取凭证信息,其读取优先级从上到下逐次递减。
凭证来源(优先级由高到低) | 描述 |
日志服务CLI子命令传入的AK、Region等全局参数 | 在执行具体命令时,优先使用参数传入的凭证做校验。该种方式指定凭证优先级最高。 |
日志服务CLI的profile参数 | 执行具体子命令时通过 |
日志服务CLI ALIYUN_LOG_CLI环境变量 | 在系统中配置的环境变量ALIYUN_LOG_CLI。 |
日志服务CLI配置文件 | 名称为.aliyunlogcli。具体如何配置,请参见配置默认账号的服务入口和访问密钥和配置多个账号的服务入口和访问密钥。 |
阿里云CLI ALIBABACLOUD环境变量 | 在系统中配置的环境变量ALIBABACLOUD。 |
阿里云CLI ALICLOUD环境变量 | 在系统中配置的环境变量ALICLOUD。 |
阿里云CLI配置文件 | 由阿里云CLI定义的配置凭证文件。 说明 该配置文件在不同系统其所在位置不同,您可以参考如下路径找到配置文件。
|
配置默认账号的服务入口和访问密钥
日志服务CLI默认使用配置的main账号执行所有操作,您必须在使用CLI前配置main账号的AccessKey和服务入口,同时该账号必须具备操作Project的相关权限。
登录安装CLI的服务器。
配置默认账号的访问密钥和服务入口。
执行命令如下:
aliyunlog configure "AccessKey ID" "AccessKey Secret" Endpoint
AccessKey ID和AccessKey Secret替换为拥有操作日志服务权限的AccessKey ID和AccessKey Secret。更多信息,请参见访问密钥和创建RAM用户及授权。
Endpoint为Project的访问域名。推荐您使用公网域名。更多信息,请参见服务入口。
验证配置结果。
编辑.aliyunlogcli文件,如果配置文件中显示如下类似结果,则说明配置默认账号成功。
[main] access-id = LTAI******pLMZ access-key = XjAsP******eRqax region-endpoint = cn-hangzhou.log.aliyuncs.com sts-token =
说明配置文件.aliyunlogcli在不同系统其所在位置不同,您可以参考如下路径找到配置文件。
Linux:~/.aliyunlogcli
Windows:C:\Users\UserName\.aliyunlogcli
如果配置不成功,请根据返回错误码提示进行处理。
配置多个账号的服务入口和访问密钥
如果您需要跨账号操作日志数据,则需要配置多个账号的AccessKey和服务入口信息。
登录安装CLI的服务器。
配置多个账号的访问密钥和服务入口。
执行命令如下:
aliyunlog configure "AccessKey ID" "AccessKey Secret" Endpoint Name
AccessKey ID和AccessKey Secret替换为拥有操作日志服务权限的AccessKey ID和AccessKey Secret。更多信息,请参见访问密钥和创建RAM用户及授权。
Endpoint为Project的访问域名。推荐您使用公网域名。更多信息,请参见服务入口。
Name为配置项指定名称。
验证配置结果。
编辑~/.aliyunlogcli文件,如果配置文件中显示如下类似结果,则说明配置账号成功。
[main] access-id = LTAI******pLMZ access-key = XjAsP******eRqax region-endpoint = cn-hangzhou.log.aliyuncs.com sts-token = [test] access-id = As******sPzvb access-key = FtagJeR******bQqax region-endpoint = cn-shanghai.log.aliyuncs.com sts-token =
说明配置文件.aliyunlogcli在不同系统其所在位置不同,您可以参考如下路径找到配置文件。
Linux:~/.aliyunlogcli
Windows:C:\Users\UserName\.aliyunlogcli
如果配置不成功,请根据返回错误码提示进行处理。
在使用CLI执行命令时,您可以通过
--client-name=testName
方式来使用指定的需要使用的配置项。例如aliyunlog log create_project ..... --client-name=test
,表示使用test配置项的信息创建Project。
配置输出格式
日志服务CLI支持对输出结果进行格式化和字符转义处理。当您需要对输出结果格式化、设置转义字符时,可参考如下配置。
JSON格式化
日志服务CLI返回结果默认以JSON形式输出,并且显示为一行,可读性差。为便于查看,您可以使用如下方法对输出JSON结果进行格式化。
对特定命令的输出结果进行格式化。
例如,
aliyunlog log get_log .... --format-output=json
表示对get_log的输出结果进行JSON格式化。对所有命令的输出结果进行格式化。
直接执行
aliyunlog configure --format-output=json
,则表示对所有输出结果进行JSON格式化。
转义字符
日志服务CLI返回结果中,非英文字符默认都是转义字符串。如果您需要返回原始字符(例如中文字符串),可以在
--format-output
添加no_escape
。直接执行
aliyunlog configure --format-output=no_escape
,则日志服务CLI所有命令的输出结果都不转义,按照原始字符返回。
转义特殊字符
通过日志服务CLI执行操作命令时,若查询语句中包含美元符号($)、反引号(`)、反斜线(\)、感叹号(!)特殊字符,会导致执行报错或者查询结果不准确。
您需要使用反斜线(\)转义或者单引号(')强制引用。
通过转义字符(\)对query中的参数进行转义,示例命令如下:
aliyunlog log get_log_all --project="my-project" --logstore="my-logstore" --query="event_name:\$_enter" --from_time="2021-06-24 15:00:00+08:00" --to_time="2021-06-24 16:00:00+08:00"
通过单引号(')对query中的参数进行引用,示例命令如下:
aliyunlog log get_log_all --project="my-project" --logstore="my-logstore" --query='event_name:$_enter' --from_time="2021-06-24 15:00:00+08:00" --to_time="2021-06-24 16:00:00+08:00"
更多信息,请参见Quoting。