在阿里云函数计算上部署kintone应用

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 前言本文为转载文章,原文地址:https://cybozudev.kf5.com/hc/kb/article/1298547/函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。

前言

本文为转载文章,原文地址:https://cybozudev.kf5.com/hc/kb/article/1298547/
函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。
借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。
下面介绍一下kintone如何利用这种无服务器来进行更加简单高效的开发。

技术分析

因为逸创云客服支持webhook协议,我们可以利用webhook来调用阿里云上的API网关,然后通过API网关调用阿里云函数计算的实例,
函数计算实例的方法里,我们调用了逸创的工单API,获取到我们想要的数据后,再同步到kintone。
具体流程:
用户的工单申请 → webhooks → 阿里云API网关 → 阿里云函数计算实例 → 获取逸创工单并同步kintone

20191112091240

下面我们就来详细看下每个服务怎么部署吧。

逸创云客服的部署

1. 创建逸创云客服工单

通过逸创云客服的后台,我们创建好了一个“联系我们“的工单。

b1015

2. 触发器任务/提醒任务

在逸创云客服的后台添加触发器,可以根据自己的需求选择触发的条件。这里设置为当工单被创建时为触发。
消息内容选择{{ticket.id}} ,就是工单的id。具体的标签的替换说明,可以点击 “查看所有替换标签” 查看。

b1007

3. 提醒目标 Webhook

配置webhook,URL地址填写阿里云的API网关地址。(我们可以先空着,等后面了解了API网关之后再来填写。)

b1009

4. kintone的部署

kintone上创建好应用,并且添加逸创云客服上的字段。具体字段名可以在逸创的设置里查询到。并且设置好API令牌。

查看工单的字段信息

b1019

kintone字段设置举例

b1021

阿里云的部署

阿里云的部署,我们分为函数计算实例的部署和API网关的部署。

1. 函数计算

新建服务

在函数计算控制台新建一个服务。

b1005

新建函数

在服务下面新建函数。函数语言选择nodejs8。(当然你也可以根据自己的需求用它支持的其他语言进行开发。)
触发器类型:不创建触发器。模板权限管理的权限配置可以选择 AliyunFCFullAccess

b1013

代码执行管理

创建一个npm项目,并且导入相关的库。

npm init
npm install --save @kintone/kintone-js-sdk  request request-promise

其中kintone/kintone-js-sdk是kintone的js sdk。
具体的用法可以参见文档:https://kintone.github.io/kintone-js-sdk/latest/
逸创云客服的API文档请参见他们的官网:https://developer.kf5.com/doc/core/core/
以下是放到阿里云的函数计算上的代码 index.js

'use strict';
const request = require('request-promise');
const kintone = require('@kintone/kintone-js-sdk');
const Url = 'https://xxxx.kf5.com';
const Email = 'xxxx';
const Token = 'xxxxxxxxxxxx';
const KINTONE_DOMAIN = "xxxx.cybozu.com";
const MY_TOKEN = "xxxxxxxxxxxx";
const appID = xxx;
const baseresponse = {
    isBase64Encoded: false,
    statusCode: 200
};
 
async function handler(event, context, callback) {
    const eventObj = JSON.parse(event.toString());
    const ticketId = eventObj.queryParameters.message;
    const url = Url + '/apiv2/tickets/' + ticketId + '.json';
    const params = {
        url: url,
        method: 'GET',
        json: true,
        headers: {
            'content-type': 'application/json',
        },
        auth: {
            user: Email + '/token',
            pass: Token,
            sendImmediately: false,
        },
        body: '',
    };
    let kintoneAuthWithAPIToken = (new kintone.Auth()).setApiToken(MY_TOKEN);
    let kintoneConnection = new kintone.Connection(KINTONE_DOMAIN, kintoneAuthWithAPIToken);
    let kintoneRecord = new kintone.Record(kintoneConnection);
    try {
        const getdata = await request(params);
        let record = getdata.ticket.custom_fields;
        var kdata = {};
        for (var index in record) {
            var fieldName = record[index].name;
            kdata[fieldName] = { value: record[index].value };
        }
        await kintoneRecord.addRecord(appID, kdata);
        const response = Object.assign(baseresponse, {
            body: {
                status: "ok"
            }
        });
        callback(null, response);
    } catch (e) {
        callback(e);
    }
};
module.exports.handler = handler;

请按照实际情况,设置以下内容:

  • 逸创云客服的相关变量:Url,Email,Token
  • kintone的变量:KINTONE_DOMAIN,MY_TOKEN,appID

然后将项目打包并上传。

b1014

代码解析

通过webhook传入的工单id,去调用逸创云客服的API获取它的工单数据,然后再同步到kintone。

2. API网关设置

我们通过配置API网关来作为webhook触发的地址。来调用函数计算上的函数来同步工单数据。
我这里只是做个简单的演示,所以都是使用的最简单的配置。具体可以根据自己的需求,设置好安全认证。

基本信息

b998

设置入参定义: 参数名“message”、参数位置为Query、类型为string

b1012

填写函数计算实例的服务名称和函数名称

b1004

返回类型

b1001

最后将这个API网关保存上线。

测试

好了,我们现在可以测试一下,在逸创云客服的前台添加一个工单,看看我们的kintone是否会及时的把这个工单同步过来呢。
当然,我们的这篇文章只是抛砖引玉。
关于利用无服务器来进行开发,还可以充分结合很多阿里云原生的服务如大数据、IoT、AI等等,然后同步到我们的kintone进行数据展示。让我们的办公变得更加高效和有趣吧!

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
15天前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
222 12
|
2月前
|
运维 NoSQL Serverless
|
15天前
|
人工智能 机器人 Serverless
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
当云计算遇见具身智能,AI咖啡开启零售新体验。用户通过手机生成个性化图像,云端AI快速渲染,机器人精准复刻于咖啡奶泡之上,90秒内完成一杯可饮用的艺术品。该方案融合阿里云FunctionAI生图能力与安诺机器人高精度执行系统,实现AIGC创意到实体呈现的闭环,为线下零售提供低成本、高互动、易部署的智能化升级路径,已在商场、机场、展馆等场景落地应用。
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
|
15天前
|
消息中间件 运维 监控
爆款游戏背后:尚娱如何借助阿里云 Kafka Serverless 轻松驾驭“潮汐流量”?
阿里云 Kafka 不仅为尚娱提供了高可靠、低延迟的消息通道,更通过 Serverless 弹性架构实现了资源利用率和成本效益的双重优化,助力尚娱在快速迭代的游戏市场中实现敏捷运营、稳定交付与可持续增长。
|
10天前
|
人工智能 运维 安全
聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
2025 年 9 月 26 日,为期三天的云栖大会在杭州云栖小镇圆满闭幕。随着大模型技术的飞速发展,我们正从云原生时代迈向一个全新的 AI 原生应用时代。为了解决企业在 AI 应用落地中面临的高成本、高复杂度和高风险等核心挑战,阿里云基于函数计算 FC 发布一系列重磅服务。本文将对云栖大会期间 Serverless+AI 基础设施相关内容进行全面总结。
|
21天前
|
消息中间件 存储 运维
嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%
云消息队列 Kafka 版 Serverless 系列凭借其秒级弹性扩展、按需付费、轻运维的优势,助力嘉银科技业务系统实现灵活扩缩容,在业务效率和成本优化上持续取得突破,保证服务的敏捷性和稳定性,并节省超过 20% 的成本。
107 16
|
10天前
|
人工智能 运维 安全
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
云原生应用平台 Serverless 计算负责人杨皓然在云栖大会发表主题演讲“Serverless Agent 基础设施:助力大规模 Agent 部署与运维”。本议题深入介绍了阿里云以函数计算为核心打造的 Agent 基础设施——AgentRun,阐述其如何通过创新的运行时、模型服务、网关及可观测体系,为企业构筑坚实、高效、安全的 Agent 时代基石。
|
21天前
|
人工智能 Kubernetes 安全
重塑云上 AI 应用“运行时”,函数计算进化之路
回顾历史,电网的修建,深刻地改变了世界的经济地理和创新格局。今天,一个 AI 原生的云端运行时的进化,其意义也远不止于技术本身。这是一次设计哲学的升华:从“让应用适应平台”到“让平台主动理解和适应智能应用”的转变。当一个强大、易用、经济且安全的 AI 运行时成为像水电一样的基础设施时,它将极大地降低创新的门槛。一个独立的开发者、一个小型创业团队,将有能力去创造和部署世界级的 AI 应用。这才是技术平权的真谛,是激发全社会创新潜能的关键。
|
2月前
|
运维 NoSQL Serverless
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
在轻休闲游戏流量波动大、生命周期短的背景下,传统架构难以应对成本与扩展挑战。本文介绍了基于阿里云函数计算 FC 和 Redis 构建的新一代服务器架构,实现弹性伸缩、成本优化与高效运维,助力轻休闲游戏快速迭代与稳定运营,提升开发效率并降低运维复杂度。
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
|
DataWorks 数据挖掘 Serverless
阿里云EMR Serverless StarRocks 内容合集
阿里云 EMR StarRocks 提供存算分离架构,支持实时湖仓分析,适用于多种 OLAP 场景。结合 Paimon 与 Flink,助力企业高效处理海量数据,广泛应用于游戏、教育、生活服务等领域,显著提升数据分析效率与业务响应速度。
154 0

相关产品

  • 函数计算