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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月免费额度15元,12个月
简介: 前言本文为转载文章,原文地址: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进行数据展示。让我们的办公变得更加高效和有趣吧!

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
5天前
|
弹性计算 Kubernetes 安全
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
45 8
|
2天前
|
消息中间件 关系型数据库 Serverless
【阿里云】一键部署创建函数计算服务以处理多媒体文件
通过阿里云的一键部署功能,轻松创建函数计算服务以处理多媒体文件。首先选择地域并配置资源栈名称及其他必要参数,如登录凭证、实例类型及数据库配置。过程中可能需开通相关服务如消息服务MNS,并确保账户有足够的余额。完成配置后,系统自动创建资源栈。当状态显示“创建成功”即部署完毕。最后,通过提供的URL及凭据访问应用,上传PPTX文件进行处理,并下载处理后的结果。
25 4
|
5天前
|
关系型数据库 MySQL Serverless
在部署云数据库PolarDB MySQL版 Serverless集群的过程中问题点
在部署PolarDB MySQL Serverless过程中,常见问题包括配置误解、网络配置错误、资源未及时释放及压测不熟练。建议深入理解配置项,确保合理设置伸缩策略;明确业务需求,使PolarDB与现有服务同处一地域与VPC;利用提醒功能管理资源生命周期;按官方指南执行压测。新用户面临的学习曲线、资源管理自动化不足及成本控制难题,可通过增强文档友好性、引入智能成本管理与用户界面优化来改善。
23 1
|
5天前
|
弹性计算 运维 关系型数据库
云上Serverless高可用架构一键部署体验与测评
在数字化转型背景下,Serverless架构因其实现业务敏捷、降低成本及提升服务可靠性而备受青睐。本文以阿里云Serverless应用引擎(SAE)为核心,展示了一种高可用、低成本且易于扩展的解决方案。通过单地域双可用区部署,构建了具备自动伸缩与故障恢复能力的架构。借助阿里云的一键部署功能,大幅简化了搭建流程,实现了快速部署,并通过性能与成本分析验证了其优势。对比传统ECS,SAE在资源利用与运维效率上表现更佳,特别适合平均负载较低的应用场景。
|
7天前
|
运维 物联网 关系型数据库
关于阿里云Serverless 框架的产品体验
阿里云Serverless框架简化运维,实现5分钟一键部署。弹性伸缩、按需付费等特点让企业专注业务创新,降低成本与运维负担。适用于Web应用、数据分析、物联网等多种场景,支持快速迭代与多语言开发。尽管面临资源配额、网络配置等挑战,其竞争力在于成本节约、功能集成与性能优化,尤其适合追求高效开发与弹性扩展的团队。
29 1
|
12天前
|
自然语言处理 Serverless Docker
量化交易大揭秘:如何将TA-Lib神兵利器部署于云端函数计算,让策略飞升!
【8月更文挑战第8天】在量化交易中,TA-Lib作为技术分析库备受青睐,支持多语言包括Python。本教程指导如何将其移植至函数计算平台,实现云端交易策略。首先安装Python与TA-Lib;接着选择云服务商并创建实例。确认TA-Lib与平台Python版本兼容,必要时构建自定义运行时。使用`pip`安装TA-Lib并打包依赖。编写函数计算代码示例,如计算移动平均线。部署代码与依赖至平台,定制Dockerfile以支持自定义运行时。最后,通过平台测试功能验证功能正确性。完成移植后,即可享受Serverless架构的自动扩展与成本效益优势。
26 4
|
1天前
|
缓存 JavaScript Serverless
阿里云云效产品使用合集之如何在Serverless Devs阶段指定Node.js版本
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
14天前
|
人工智能 Serverless API
AI 创业及变现新思路:零门槛 AI 绘图,定制 ComfyUI Serverless API 应用
为了帮助用户高效率、低成本应对企业级复杂场景,本文介绍 ComfyUI API Serverless 版解决方案,通过使用该方案,用户可以充分利用 ComfyUI +Serverless 技术优势快速开发上线 AI 绘画应用,期待为广大开发者 AI 绘画创业及变现提供思路。
|
20天前
|
运维 Serverless Docker
Serverless 应用引擎使用问题之如何设置初始值和自动扩容策略
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
20天前
|
弹性计算 Dubbo Serverless
Serverless 应用引擎操作报错合集之遇到400错误,该如何处理
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

热门文章

最新文章

相关产品

  • 函数计算