文档首页 > > 最佳实践> 构建AI(图片鉴黄)应用> 构建后端功能程序

构建后端功能程序

分享
更新时间: 2019/12/20 GMT+08:00

创建后端功能函数

  1. 登录公有云控制台,进入“函数工作流服务控制台>函数”界面,单击“创建函数”,进入“创建函数”界面。
  2. 在“创建函数”界面填写函数信息,如图1所示。

    1. 模板:选择空白模板。
    2. 函数名称:输入“AIDemo”。
    3. 所属应用选择默认的“default”。
    4. 委托名称:选择“serverless_trust”。

      所选委托必选包含API网关、图片检测服务、对象存储服务的访问权限,有关委托的创建过程,请参考创建委托

    5. 运行时语言:选择“Node.js 6.10”。
    6. 函数执行入口:输入“index.handler”。
    7. 代码上传方式:选择“在线编辑”。
    8. 在代码框输入以下代码。
      const https = require('https');
      var constructPayload = function(event) {
      	var payload={}
      	payload["categories"]=["porn"];
          if (event.httpMethod != "POST") {
      		payload["url"]="https://bjbucket.obs.myhwclouds.com/70923411.jpg";
              return payload
          }
          var bodyStr = new Buffer(event.body, 'base64').toString('ascii')
          var body = JSON.parse(bodyStr)
          if (body.url != null && body.url.trim() != "") {
      		payload["url"]=body.url;
          } else {
      		payload["image"]= body.image;
          }
      	return payload;
      }
      exports.handler = function (event, context, callback) {    
          new Promise(function(resolve, reject) {
              var token = context.getToken();
              const options = {     
      			//change hostname when switching zones
                  hostname: 'moderation.cn-north-1.myhuaweicloud.com',
                  port: 443,			
                  path: '/v1.0/moderation/image',
                  method: 'POST',			
      			threshold:'',		
                  headers: {
                      'Content-Type': 'application/json;charset=utf8',
                      'X-Auth-Token': token
                  }
              };
              var payload = constructPayload(event)
              console.log("Sending request to AIS...")
              const req = https.request(options, (res) => {            
                  var status = res.statusCode
                  console.log("status:",  status)
                  res.on('data', (d) => {
                      resolve(d.toString());
                  });
              });
      		
              req.on('error', (e) => {
                  console.error(e);
              });
              req.write(JSON.stringify(payload));
              req.end();
            }).then(function(value) {
              var obj=JSON.parse(value);			
              var bodyjson={};    
              bodyjson["result"]=obj.result.detail.porn;
              bodyjson["suggestion"]=obj.result.suggestion;
              var str=JSON.stringify(bodyjson);	
              var result = {
                  body:str,
                  headers: {
                      "Content-Type":"application/json",
                      "Access-Control-Allow-Origin": "*",
                      "Access-Control-Allow-Headers": "Content-Type,Accept",
                      "Access-Control-Allow-Methods": "GET,POST,PUT,DELETE"
                  },
                  statusCode: 200,
                  isBase64Encoded: false
              };
              callback(null, result);
          });      
      }
      图1 函数配置

  3. 在页面右侧查看函数配置及计费信息,确认无误后,单击“创建函数”,完成函数创建。

为后端函数创建APIG触发器

  1. 用户登录FunctionGraph,进入“函数”界面,单击AIDemo函数名称,进入函数详情页。
  2. 在函数详情页界面,进入“触发器”页签,单击“创建触发器”,如图2所示,弹出“创建触发器”界面。

    图2 创建触发器

  3. 在下拉框中选择“API Gateway服务(APIG)“,配置触发器信息,如图3所示。

    1. API名称:输入AIDemo。
    2. 分组:选择function,分组的创建过程请参考创建API分组
    3. 发布环境:选择RELEASE
    4. 安全认证:选择NONE
    5. 请求协议:选择HTTP
    6. 后端超时:输入5000
      图3 配置触发器

      发布环境选择Release,创建触发器时,会在API网关生成API,并且将生成的API发布,可以直接调用。

  4. 单击“确定”,创建触发器。

    后端功能函数的APIG触发器调用地址:http://4e5cb396-e812-42b3-85bf-a7aac3cd6cba.apigw.cn-north-1.huaweicloud.com/AIDemo,构建前端函数时需要用到。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区