
# 初始化DLI客户端
使用DLI Python SDK工具访问DLI，需要用户初始化DLI客户端。用户可以使用AK/SK(Access Key ID/Secret Access Key)或Token两种认证方式初始化客户端。其中Token认证仅DLI SDK V1版本支持，推荐使用AK/SK认证方式。
完整样例代码和依赖包说明请参考：[Python SDK概述](https://support.huaweicloud.com/sdkreference-dli/dli_04_0124.html)。
#### AK/SK认证方式样例代码
- 代码样例
  ```
  def init_aksk_dli_client():
      auth_mode = 'aksk'
      region = 'xxx'
      project_id = 'xxxx'
      ak =  System.getenv("xxx_SDK_AK")//访问密钥ID。
      sk = System.getenv("xxx_SDK_SK")//与访问密钥ID结合使用的密钥。
      dli_client = DliClient(auth_mode=auth_mode, region=region, project_id=project_id,ak=ak, sk=sk)
      return dli_client
  ```
  
- 参数说明与获取方式
  - 参数说明
    - 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认证方式样例代码
- 代码样例
  ```
  def init_token_dli_client():
     auth_mode = 'token'
      region = 'xxx'
      project_id = 'xxxx'
      account = 'xxx account'
      user = 'xxxx'
      password = 'xxxx'
      dli_client = DliClient(auth_mode=auth_mode, region=region, project_id=project_id,account=account, user=user, password=password)
      return dli_client
  ```
  
- 参数说明 参数获取方式请参考[获取账号、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)。
    
 
