
# 初始化DLI客户端
使用DLI SDK工具访问DLI，需要用户初始化DLI客户端。用户可以使用AK/SK(Access Key ID/Secret Access Key)或Token两种认证方式初始化客户端。其中Token认证仅DLI SDK V1版本支持，推荐使用AK/SK认证方式。
#### 前提条件
- 已参考[Java SDK概述](https://support.huaweicloud.com/sdkreference-dli/dli_04_0125.html)配置Java SDK环境。
- 已参考本节操作完成客户端DLIClient的初始化。
 
#### AK/SK认证方式样例代码
- **代码样例**
  ```
  String ak = System.getenv("xxx_SDK_AK");//访问密钥ID。
    String sk = System.getenv("xxx_SDK_SK");//与访问密钥ID结合使用的密钥。
    String regionName = "regionname";
    String projectId = "project_id";
    DLIInfo dliInfo = new DLIInfo(regionName, ak, sk, projectId);
    DLIClient client = new DLIClient(AuthenticationMode.AKSK, dliInfo);
  ```
  
- **参数说明及获取方式**
  - 参数说明
    - ak：账号 Access Key
    
    - sk：账号 Secret Access Key
      ![](https://support.huaweicloud.com/sdkreference-dli/public_sys-resources/note_3.0-zh-cn.png)
      认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放, 使用时解密, 确保安全。
      本示例以ak和sk保存在环境变量中为例，运行本示例前请先在本地环境中设置环境变量xxx_SDK_AK和xxx_SDK_SK。
      
    
    - regionName ：所属区域名称
    
    - projectId ：项目ID
     
  
  - 通过以下方式可获取AK/SK，项目ID及对应的region信息。
    1. 登录管理控制台。
    
    2. 鼠标指向界面右上角的登录用户名，在下拉列表中单击"我的凭证"。
    
    3. 在左侧导航栏中选择"访问密钥"，单击"新增访问密钥"。根据提示输入对应信息，单击"确定"。
    
    4. 在弹出的提示页面单击"立即下载"。下载成功后，打开凭证文件，获取AK/SK信息。
    
    5. 左侧导航栏单击"API凭证"，在"项目列表"中获取"项目ID"即为project_id值，对应的"项目"即为region的值。
     
   
 
#### Token认证方式样例代码
- 代码样例
  ```
  String domainName = "domainname";
    String userName = "username";
    String password = "password";
    String regionName = "regionname";
    String projectId = "project_id";
    DLIInfo dliInfo = new DLIInfo(regionName, domainName, userName, password, projectId);
    DLIClient client = new DLIClient(AuthenticationMode.TOKEN, dliInfo);
  ```
  
- 参数说明 参数获取方式请参考[获取账号、IAM用户、项目、用户组、区域、委托的名称和ID](https://support.huaweicloud.com/api-iam/iam_17_0002.html)。
  - domainname：账号名。
  
  - username：用户名
  
  - password：用户名密码
  
  - regionname：所属区域名称
  
  - project_id：项目ID
  
  
  ![](https://support.huaweicloud.com/sdkreference-dli/public_sys-resources/note_3.0-zh-cn.png)
  - 认证用的password硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全。
  
  - 可以通过set方式修改endpoint，即dliInfo.setServerEndpoint(endpoint)。
    
 
