
# 使用AppCode认证鉴权方式进行在线预测
#### 场景描述
APPcode认证是一种简易的API调用认证方式，通过在HTTP请求头中添加参数X-Apig-AppCode来实现身份认证，无需复杂的签名过程，适合于客户端环境安全可控的场景，如内网系统之间的API调用。在ModelArts中，支持在部署在线服务时开启AppCode认证（[部署模型为在线服务](https://support.huaweicloud.com/usermanual-standard-modelarts/inference-modelarts-0018.html#section3)中的"支持APP认证"参数）。对于已部署的在线服务，ModelArts支持修改其配置开启AppCode认证。
本文主要介绍如何修改一个已有的在线服务，使其支持AppCode认证并进行在线预测。
#### 前提条件
提前部署在线服务。
#### 操作步骤
1. 在[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)页面菜单栏中，单击"模型部署 \> 在线服务"，进入在线服务页面。
2. 单击"授权管理"后，单击创建应用即可创建App应用。 
   图1授权管理   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002058642608.png "点击放大")
   
   
3. 创建完App应用后即可展开App，然后单击添加AppCode即可添加AppCode。 
   图2添加AppCode   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002067216186.png "点击放大")
   
   
4. 单击已经创建的在线服务名称，进入在线服务详情页，单击"修改"，进入修改在线服务页面。 
   图3修改服务   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002067049096.png "点击放大")
   
   
5. 开启APP认证开关，选择自己创建的APP应用名称，单击"下一步"，然后单击"提交"即可保存修改。 
   图4开启APP认证   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002103058077.png "点击放大")
   
   
6. AppCode认证预测。 
   1. 在部署服务详情中单击"调用指南"，第二行的API接口公网地址即为APP认证调用地址，展开后即可看到AppCode值。
      图5调用指南   
      ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002067586516.png "点击放大") 
   
   2. 在postman调试预测采用AppCode认证：
      - 请求POST URL填APP认证调用地址
      
      - 请求头Headers中KEY参数为X-Apig-AppCode，VALUE参数为AppCode值
      
      - 请求Body按照接口定义传参，本案例中KEY参数为images，选择为File格式，VALUE参数单击上传需要识别的图片。
        图6Headers   
        ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002103079029.png "点击放大")
        图7Body   
        ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002067392598.png "点击放大")
        图8返回结果   
        ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002103394705.png "点击放大") 
       
   
   
   
   
 
#### 常见APP认证报错分析
- 报错信息 "error_msg": "The API does not exist or has not been published in the environment", "error_code": "APIG.0101" 该报错需要检查App认证API是否还存在或者URL是否正确。
  
- 报错信息 "error_msg": "Incorrect app authentication information: app not found with specified appCode", "error_code": "APIG.0303" 该报错需要检查请求头Headers参数中X-Apig-AppCode参数的值是否填错。
  
- 报错信息 "error_msg": "Backend unavailable", "error_code": "APIG.0202" 该报错信息需要检查dispatcher实例是否正常。
  
 
