
# 如何使用CLI
华为云命令行工具服务（Koo Command Line Interface，KooCLI，原名HCloud CLI）是为发布在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/overview) 上的云服务API提供的命令行管理工具。您可以通过此工具调用API Explorer中云搜索服务（Cloud Search Service）开放的API，管理和使用您的云搜索服务（Cloud Search Service）资源。关于KooCLI的详细信息，请参见[什么是KooCLI](https://support.huaweicloud.com/productdesc-hcli/hcli_01.html)。
#### 安装KooCLI
在使用KooCLI前，您需要先安装KooCLI。KooCLI支持Windows、Linux和macOS三种操作系统，请根据您机器所使用的操作系统，安装对应版本的工具。
- [在Windows系统上安装KooCLI](https://support.huaweicloud.com/qs-hcli/hcli_02_003_01.html)。
- [在Linux系统上安装KooCLI](https://support.huaweicloud.com/qs-hcli/hcli_02_003_02.html)。
- [在MacOS系统上安装KooCLI](https://support.huaweicloud.com/qs-hcli/hcli_02_003_03.html)。
- [在Docker中配置和使用KooCLI](https://support.huaweicloud.com/qs-hcli/hcli_02_003_05.html)。
 
#### 配置KooCLI初始化
使用KooCLI调用API时，需要获取调用者的身份信息用于认证鉴权。通过配置KooCLI初始化，可以把永久AK/SK信息存储在配置文件中，避免在调用API时频繁输入这些固定信息。
**如果您不希望通过配置文件传入认证信息，而是直接在命令中传入认证相关参数，可跳过此步骤** ，具体操作可参见[以无配置方式使用KooCLI](https://support.huaweicloud.com/usermanual-hcli/hcli_07_001.html)。
此处以Windows系统为例介绍如何配置KooCLI的初始化，Linux和MacOS系统的操作类似。在配置初始化前，您需要提前获取AK/SK信息，具体操作请参见[新增访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_05_0003.html#section1)。
1. 打开命令行窗口。
2. 执行以下命令进行初始化配置。
   ```
   hcloud configure init
   ```
   
3. 根据界面提示输入各参数值。
   ```
   Access Key ID [required]:      //必填，输入AK 
   Secret Access Key [required]:      //必填，输入SK，输入内容时系统会匿名化处理 
   Secret Access Key (again):      //必填，再次输入SK，输入内容时系统会匿名化处理 
   Region:      //选填，输入Region
   ```
   完成后，界面提示"初始化配置成功"。
   
 
#### 生成和执行CLI命令
KooCLI支持两种命令生成方式：
- 通过API Explorer快速生成并获取调用API的CLI命令。**推荐通过API Explorer获取CLI命令，更方便快捷。**
- 通过CLI命令查询API的操作命令和相关参数信息，然后手动拼接调用API的CLI命令，具体操作可参见[查看与执行云服务操作命令](https://support.huaweicloud.com/qs-hcli/hcli_02_005.html)。
此处以**云搜索服务（Cloud Search Service）** 的**查询集群列表** API为例，介绍如何从API Explorer生成CLI命令，然后执行CLI命令调用API。
1. 在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CSS/doc?version=v1) 页面，选择要生成CLI命令的API。
2. 在中间的参数配置界面中，填写调用API所需的参数。
3. 在右侧界面选择"CLI示例"页签，可查看生成的CLI命令。 **查询集群列表**API的CLI命令示例如下。
   ```
   hcloud CSS ListClustersDetails/v1 --cli-region="cn-north-4" --project_id="0f4bca096d80f3212f31c002eab9931d"
   ```
   
4. 复制生成的CLI命令，并粘贴到命令行窗口中执行。 **查询集群列表**API的CLI命令执行结果示例如下。
   ```
   {
     "totalSize" : 1,
     "clusters" : [ {
       "datastore" : {
         "type" : "elasticsearch",
         "version" : "7.10.2",
         "subVersion" : "7.10.2_24.3.0_0827",
         "isEosCluster" : false,
         "supportSecuritymode" : false
       },
       "instances" : [ {
         "status" : "200",
         "type" : "ess",
         "id" : "{INSTANCE_ID}",
         "name" : "css-8bc5-ess-esn-1-1",
         "specCode" : "ess.spec-4u8g",
         "azCode" : "{AZ_CODE}",
         "volume" : {
           "type" : "ULTRAHIGH",
           "size" : 40,
           "resourceIds" : [ "{RESOURCE_ID}" ]
         },
         "ip" : "192.168.0.122",
         "resourceId" : "{RESOURCE_ID}",
         "subnetId" : "{SUBNET_ID}"
       } ],
       "publicKibanaResp" : {
         "eipSize" : 10,
         "publicKibanaIp" : "100.95.152.28:9200",
         "bandwidthResourceId" : "18bec13f-5cc1-4631-867f-33505d15be12"
       },
       "elbWhiteList" : {
         "whiteList" : "",
         "enableWhiteList" : false
       },
       "updated" : "2023-10-09T02:07:13",
       "name" : "css-8bc5",
       "desc" : "csscluster",
       "snapshotPolicy" : {
         "backupEnable" : false,
         "bakPeriod" : "",
         "bakFrequency" : "",
         "bakKeepDay" : 1
       },
       "publicIp" : "100.85.222.202",
       "created" : "2023-10-09T02:07:13",
       "id" : "{CLUSTER_ID}",
       "status" : "200",
       "endpoint" : "192.168.0.122:9200",
       "vpcId" : "{VPC_ID}",
       "subnetId" : "{SUBNET_ID}",
       "currentSubnetIds" : "{SUBNET_ID}",
       "securityGroupId" : "{SECURITY_GROUP_ID}",
       "bandwidthResourceId" : "{BANDWIDTH_RESOURCE_ID}",
       "bandwidthSize" : 3,
       "httpsEnable" : true,
       "authorityEnable" : true,
       "diskEncrypted" : false,
       "backupAvailable" : false,
       "actionProgress" : { },
       "actions" : [ ],
       "enterpriseProjectId" : "0",
       "tags" : [ ],
       "period" : true
     } ]
   }
   ```
   
 
