
# 新建后端自定义认证函数和函数触发器
本小节创建1个后端自定义函数用于API流的认证，可复用；另外创建了2个参数一样的函数触发器，用于提升接口性能
**注** : **同一个集成工作台账号，如果已经添加过自定义认证函数和触发器，跳过当前小节，进入4.4.3**
1. 在华为云-服务列表，弹出框搜索函数工作流，点击进入函数工作流 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001731913945.png)
   
   
2. 选择创建函数 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001731874057.png)
   
   
3. 选择函数语言，创建函数BackendAuthentication 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001683994844.png)
   
   
4. 将代码粘贴到编辑框，点击部署 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001683835120.png)
   代码：
   
   # -\*- coding:utf-8 -\*-
   import requests
   import json
   def handler (event, context):
   # 获取token的url
   url = "https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens"
   payload = json.dumps({
   "auth": {
   "identity": {
   "methods": \[
   "password"
   \],
   "password": {
   "user": {
   "name": context.getUserData('name'),
   "password": context.getUserData('password'),
   "domain": {
   "name": context.getUserData('domain')
   }
   }
   }
   },
   "scope": {
   "project": {
   "name": "cn-north-4"
   }
   }
   }
   })
   headers = {
   'Content-Type': 'application/json'
   }
   
   
   res = json.dumps({
   "status":"allow",
   "context":{
   "token":requests.request("POST", url, headers=headers, data=payload).headers.get("X-Subject-Token")
   }
   })
   return {
   "statusCode": 200,
   "body": res,
   "headers": {
   "Content-Type": "application/json"
   }
   }
   
   
5. 函数部署完成 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001731913949.png)
   
   
6. 添加环境变量 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001731874061.png)
   
   
7. 测试，返回成功且能获取到token信息 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001683994848.png)
   
   
8. 点击"设置"-"触发器"，再点击右侧的"创建触发器" 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001683835124.png)
   
   
9. 搜索"定时触发器" 
   ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001731913957.png)
   
   
10. 频率选固定频率，1min，点击"确定"完成定时器1创建 
    ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001731874077.png)
    
    
11. 间隔30s左右，再创建一个参数一样（名称不一样）的定时触发器 
    ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001683994864.png)
    
    
12. 查看两个定时触发器 
    ![](https://support.huaweicloud.com/bestpractice-sparkpack/zh-cn_image_0000001683835144.png)
    
    
 
