配置CLI後,您無需在每次執行命令時指定所需的存取金鑰、服務入口和輸出格式等全域參數。本文介紹配置CLI帳號和全域參數的操作方法。
使用阿里雲CLI憑證
Log ServiceCLI工具支援使用阿里雲CLI憑證作為帳號校正憑證。如果您已安裝阿里雲CLI工具,則可以無需配置帳號資訊。更多資訊,請參見配置阿里雲CLI。
在使用CLI過程中,Log ServiceCLI可以通過具體子命令、Log ServiceCLI設定檔、阿里雲CLI設定檔和環境變數讀取憑證資訊,其讀取優先順序從上到下逐次遞減。
憑證來源(優先順序由高到低) | 描述 |
Log ServiceCLI子命令傳入的AK、Region等全域參數 | 在執行具體命令時,優先使用參數傳入的憑證做校正。該種方式指定憑證優先順序最高。 |
Log ServiceCLI的profile參數 | 執行具體子命令時通過 |
Log ServiceCLI ALIYUN_LOG_CLI環境變數 | 在系統中配置的環境變數ALIYUN_LOG_CLI。 |
Log ServiceCLI設定檔 | 名稱為.aliyunlogcli。具體如何配置,請參見配置預設帳號的服務入口和存取金鑰和配置多個帳號的服務入口和存取金鑰。 |
阿里雲CLI ALIBABACLOUD環境變數 | 在系統中配置的環境變數ALIBABACLOUD。 |
阿里雲CLI ALICLOUD環境變數 | 在系統中配置的環境變數ALICLOUD。 |
阿里雲CLI設定檔 | 由阿里雲CLI定義的配置憑證檔案。 說明 該設定檔在不同系統其所在位置不同,您可以參考如下路徑找到設定檔。
|
配置預設帳號的服務入口和存取金鑰
Log ServiceCLI預設使用配置的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。
配置輸出格式
Log ServiceCLI支援對輸出結果進行格式化和字元轉義處理。當您需要對輸出結果格式化、設定逸出字元時,可參考如下配置。
JSON格式化
Log ServiceCLI返回結果預設以JSON形式輸出,並且顯示為一行,可讀性差。為便於查看,您可以使用如下方法對輸出JSON結果進行格式化。
對特定命令的輸出結果進行格式化。
例如,
aliyunlog log get_log .... --format-output=json
表示對get_log的輸出結果進行JSON格式化。對所有命令的輸出結果進行格式化。
直接執行
aliyunlog configure --format-output=json
,則表示對所有輸出結果進行JSON格式化。
逸出字元
Log ServiceCLI返回結果中,非英文字元預設都是逸出字元串。如果您需要返回原始字元(例如中文字串),可以在
--format-output
添加no_escape
。直接執行
aliyunlog configure --format-output=no_escape
,則Log ServiceCLI所有命令的輸出結果都不轉義,按照原始字元返回。
轉義特殊字元
通過Log ServiceCLI執行操作命令時,若查詢語句中包含貨幣符號($)、反引號(`)、反斜線(\)、驚嘆號(!)特殊字元,會導致執行報錯或者查詢結果不準確。
您需要使用反斜線(\)轉義或者單引號(')強制引用。
通過逸出字元(\)對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。