
# 创建diapi连接器
1. 新建自定义认证函数，函数配置如下： 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001744492149.png)
   函数代码如下：
   ```
   # -*- coding:utf-8 -*-
   import json
   import base64
   import requests
   from requests.packages.urllib3.exceptions import InsecureRequestWarning
   requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
   """"
   mssiAuthData参数样例
   {
        "header":{}, // 连接器认证header参数
        "path": {}, // 连接器认证path参数
        "query":{}, // 连接器认证query参数
        "body":{}, // 连接器认证body参数
        "host":"https://demo.com // API主机地址
   }
   """
   def extractRequestParam(rawValue, encoded, defaultValue):
       if encoded and rawValue:
           rawValue = str(base64.b64decode(rawValue), "utf-8")
       return json.loads(rawValue) if rawValue else defaultValue
   def login(body,mssiAuthData):
       url = mssiAuthData.get("host") + "/b1dis/v1/login"
       headers = {'Content-Type': 'application/json'}
       session = requests.Session()
       session.post(url, json=body, headers=headers, verify=False)
       _cookies = []
       for k, v in session.cookies.get_dict().items():
           _cookies.append(k + "=" + v)
       return {'Cookie': ';'.join(_cookies)}
   ## 请勿对下面的函数做修改
   def handler(event, context):
       """
       函数是方法的入口
       :param event: 执行事件（event）， 包含用户定义的函数参数以及所选择的的连接器认证相关参数
       :param context: Runtime提供的函数执行上下文
       :return:
       """
       isBase64Encoded = event.get('isBase64Encoded', False)
       inputData = extractRequestParam(event.get('body'), isBase64Encoded, {})  # 用户定义的函数参数数据
       mssiAuthData = extractRequestParam(event.get('mssiAuthData'), isBase64Encoded, {})  # 连接器认证数据
       mssiAuthData["securityToken"] = context.getToken()
       dataExtendConfig = extractRequestParam(event.get('dataExtendConfig'), isBase64Encoded, {})  # 流步骤扩展参数
       result = login(inputData, mssiAuthData)
       return json.dumps(result)
   ```
   
   
   
2. 登录集成工作台-连接器-我的连接器-创建我的连接器； 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000002498700326.png)
   
   
   
3. 连接器参数配置如下，认证函数选择新建的DIAPILogin函数： 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000002530580287.png)
   
   
