创建函数
1、进入函数创建页面,点击创建函数
2、参数说明
![]()
- 标记①:函数名称,自定义
- 标记②:所属应用,按照页面提示填入
- 标记③:选择iam委托(如何创建委托见下方)
- 标记④:运行时语言,按照图示选择
- 标记⑤:函数执行入口,默认为index.handler,不做修改即可
- 标记⑥:源代码,请复制以下代码
Copied!
const https = require('https');
var constructPayload = function(event) {
if (event.httpMethod != "POST") {
return {
"image": "",
"categories" : ["porn"],
"url": body.url
}
}
var bodyStr = new Buffer(event.body, 'base64').toString('ascii')
var body = JSON.parse(bodyStr)
if (body.url != null && body.url.trim() != "") {
return {
"image": "",
"categories" : ["porn"],
"url": body.url
};
} else {
return {
"image": body.image,
"categories" : ["porn"],
"url": ""
};
}
}
exports.handler = function (event, context, callback) {
new Promise(function(resolve, reject) {
var token = context.getToken();
const options = {
hostname: 'moderation.cn-north-4.myhuaweicloud.com',
port: 443,
path: '/v1.0/moderation/image',
method: 'POST',
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 result = {
body: value,
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、进入函数创建页面,点击创建函数![]()
2、参数说明
创建IAM委托
1、点击上一步骤里标注③的位置,进入创建IAM委托页面
![]()
2、点击页面右上角的创建委托
3、参数说明
4、点击确认
创建触发器
1、按照下列图片,点击创建,参数可按照图示填入
![]()
进行测试
1、点击选择测试事件->配置测试事件 2、事件模板选择porn-image-analysis 3、点击保存
4、点击测试,查看测试结果
测试结果
构建前端Web
1、点击查看演示
2、下载前端代码包,并解压。 3、修改代码包中的文件/functiongraph/assets/config/apis.json中checkImage的值,更改为函数的APIG触发器的调用URL,这样前端页面就会发请求去触发您的函数执行了。 4、上传代码包中的文件到OBS桶中,并将该桶访问权限设置为公共读。因为上传的文件较多,建议您使用OBS Browser批量上传, 使用OBS Browser前,请先获取访问密钥。
5、配置该桶为静态服务器,并设置入口文件为index.html。
完成