以 Serverfull 方式运行无服务器服务

news2025/5/25 0:41:39

当前 IT 架构中最流行的用例是从 Serverfull 转向 Serverless 设计。在某些情况下,我们可能需要以 Serverfull 方式设计服务或迁移到 Serverfull 作为运营成本的一部分。

在本文中,我们将展示如何将 Kumologica flow 作为 Docker 容器运行。通常,在 Kumologica 上构建的应用程序专注于无服务器计算,例如 AWS Lambda、Azure 函数或 Google 函数,但在这里我们将构建与在容器内运行的 NodeJS Express 应用程序非常相似的服务。

计划

我们将使用低代码集成工具构建一个简单的 hello world API 服务并将其包装为 docker 镜像。然后,我们将使用本地计算机中的映像运行 docker 容器。然后使用外部客户端测试 API。

先决条件

要开始开发,我们需要准备好以下实用程序和访问权限。

1.NodeJS安装

2. Kumologica Designer

3.安装Docker

执行

创建服务

首先,我们通过打开设计器来开始Hello World服务的开发。要打开设计器,请使用以下命令kl open。

打开设计器后,将EvenListener 节点拖放到画布上。单击打开配置并提供以下详细信息。

Provider : NodeJSVerb : GETPath : /helloDisplay Name : [GET] /hello

图片

现在将记录器 节点从托盘拖放到画布上,并将其连接到 EventListener 节点之后。

Display name : Log_Entrylevel : INFOMessage : Inside the serviceLog Format : String

图片

将EventListenerEnd 节点拖放到画布上,将其连接到 Logger 节点并提供以下配置。​​​​​​​

Display Name : SuccessPayload : {"status" : "HelloWorld"}ContentType : application/json

图片

该流程现已完成。让我们将其docker化。

Docker化流程

要对流程进行 docker 化,请打开项目文件夹,并将以下Docker 文件放置在根项目文件夹中(与 package.json 处于同一级别)。​​​​​​​

FROM node:16-alpine WORKDIR /app COPY package*.json ./ RUN npm install ENV PATH /app/node_modules/.bin:$PATH COPY . . EXPOSE 1880CMD ["node","index.js"]

注意:上面的Dockerfile是非常基本的,可以根据您的需要进行修改。

现在我们需要添加另一个文件,将 Kumologica 流视为 NodeJS Express 应用程序运行。

使用以下 Javascript 内容创建一个index.js文件。将“your-flow.json”替换为项目文件夹中 flow.json 的名称。​​​​​​​

const { NodeJsFlowBuilder } = require('@kumologica/runtime');new NodeJsFlowBuilder('your-flow.json').listen();

现在,我们通过从Postman或您选择的任何 REST 客户端调用端点来在本地测试流程。

curl http://localhost:1880/hello

您将收到以下回复:

{"status" : "HelloWorld"} 

当我们完成本地测试后,现在我们将基于 Docker 文件构建一个镜像。

要构建映像,请转到项目文件夹的根目录,然后从 Windows 中的命令行或 Mac 中的终端运行以下命令。

docker build . -t hello-kl-docker-app

现在,案卷图像已构建。让我们通过运行以下命令在本地检查图像。

docker images

让我们通过执行以下命令来测试本地运行图像的图像。

docker images

通过运行以下命令检查容器

docker ps -a

您现在应该会看到列出的容器名称和 ID。现在我们已准备好将映像推送到您选择的任何注册表。


作者:Pranav K

更多技术干货请关注公号【云原生数据库

squids.cn,云数据库RDS,迁移工具DBMotion,云备份DBTwin等数据库生态工具。

irds.cn,多数据库管理平台(私有云)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1355894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣322. 零钱兑换(java语言实现 完全背包问题)

Problem: 322. 零钱兑换 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 该题目可以归纳为完全背包问题,最少需要多少物品能填满背包。该类问题大体思路如下 状态: int dp[ n n n][ w 1 w 1 w1] (其中 n n n表示有 n n n个物品, …

Python常用模块之hashlib

常用模块 - hashlib模块 一、简介 Python的hashlib提供了常见的摘要算法,如MD5、SHA1、SHA224、SHA256、SHA384、SHA512等算法。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的…

14.用户管理

目录 1、权限表 1、user表 1.用户列 2.权限列 3.安全列 4.资源控制列 2、db表和host 表 1.用户列 2.权限列 3. tables_priv 表和 columns _priv 表 4.procs_priv 表 2、账户管理 1. 登录和退出MySQL服务器 2、创建普通用户: 1.使用CREATE USER语创建…

URLDecoder: Illegal hex characters in escape (%) pattern - negative value

1、前提: 使用URLDecoder.decode(“字符串”“utf-8”);进行解码出现上述问题 2、原因: 字符串的内容出现%后不是一个16进制的数(即从0——FF) 3、解决方法: 检查传入的字符看是否%后有不是16进制的数…

【python测验】数字游戏 取模数 数位dp

这题目看得人感觉要失去梦想…… 题目: 看不懂也做不出来,python方法未知,记录几个可供参考的帖子。 LightOJ 1068 Investigation 算法提高篇–动态规划(八):数位DP(3)

Python处理音频

从video中抽取audio from moviepy.editor import VideoFileClip from pydub import AudioSegmentvideo_path /opt/audio/audios/video1.mp4 audio_path /opt/audio/audios/video1.wav # 提取的音频保存路径# 加载视频文件 video VideoFileClip(video_path)# 提取音频 audi…

多个微信的朋友圈如何高效管理?

大家都知道,在当今社交媒体盛行的时代,微信朋友圈已成为了我们交流和分享生活的重要平台。但是,对于那些同时管理多个微信号的人来说,如何高效省时地管理这些账号的朋友圈就成了一项挑战。 今天我将分享一个神奇的微信管理工具&a…

智能分析网关V4初始配置步骤大揭秘

众所周知,EasyCVR与智能分析网关V4相结合,打破了传统监控的桎梏,通过人工智能传统监控的方式,做到了网关与监控的完美融合。收到了很多用户的追捧,但很多用户在拿到网关后都不知道如何配置,本期小编就和大家…

【DevOps-02】Code编码阶段工具

一、简要说明 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。 Git安装安装GitLab配置GitLab登录账户二、Git安装 Git官网 Githttps://git-scm.com/

【Redux】自己动手实现redux和react-redux

1. React提供context的作用 在class组件的世界里,如果后代组件共享某些状态,比如主题色、语言键,则需要将这些状态提升到根组件,以props的方式从根组件向后代组件一层一层传递,这样则需要在每层写props.someData&#…

【模拟电路】非接触测电笔绘制、电子琴NE555

一、非接触测电笔原理图绘制 二、非接触测电笔PCB绘制 三、电子琴NE555制作过程及元器件选型 四、电子琴NE555原理图绘制 五、电子琴NE555PCB绘制 六、电子琴NE555最终效果 点击跳转 一、非接触测电笔原理图绘制 材料 电池 2032 电池底座 适用电池:CR2032 白色 C964762 NPN三…

2024年怎么提升学历?三大成人学历提升方式一次看懂!

2024年想提升到大专、本科学历该怎么做? 成人提升学历有自考、成考、开放大学三种途径。 不同的途径有不同的报名条件和拿证方式。 考生可以根据自己的实际情况选择适合自己的方式。 下面我们一起来看下,2024年怎么选适合自己的学历提升方式。 成人学…

数据结构【树篇】(二)

数据结构【树篇】(二) 文章目录 数据结构【树篇】(二)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件? 目录树(一)、树的存储(二)、树和森林的遍历——并查集(三)、并查集的优化 结语 前言 为什么突然想学算法了&#xf…

构建异步高并发服务器:Netty与Spring Boot的完美结合

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言IONetty1. 引入依赖2. 服务端4. 客户端结果 总结引导类-Bootstarp和ServerBootstrap连接-NioSocketChannel事件组-EventLoopGroup和NioEventLoopGroup 送书…

StarRocks 在小红书自助分析场景的应用与实践

作者:小红书 OLAP 研发负责人 王成 近两年 StarRocks 一直是小红书 OLAP 引擎体系里非常重要的部分,过去一年,小红书的 StarRocks 使用规模呈现出翻倍的增长速度,目前整体规模已经达到 30 个集群,CPU 规模已经达到了 3…

一文讲透怎样用SPSS做二项Logistic回归分析?结果如何解释?

推荐采用《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“7.4 二元Logistic回归分析” 的解答。 本节内容选自《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“7.4 二元Logi…

新手必看!STM32通用定时器-输入捕获!

一、用途与工作原理 用途:用于测量信号的参数,比如周期和频率。   工作原理:在输入捕获模式下,当捕获单元捕捉到外部信号的有效边沿(上升沿/下降 沿/双边沿)时,将计数器的当前值锁存到捕获/比较寄存器TIMx_CCR&#…

如何制定知识竞赛活动的竞赛规则

知识竞赛既然是知识的竞赛,就应该制定相应的细则或规则。竞赛规则一般应包括以下内容:竞赛编组、答题形式、每场题量、竞赛记分、违例处罚、观众答题、名次奖励及对参赛人员的要求。 1、竞赛编组 竞赛编组一般由抽签决定。在参赛人员较多、场次较多的…

JS数据类型转换注意事项【建议收藏】

ToPrimitive(obj, Number) 和 ToPrimitive(obj, String) 调用顺序不同在于: 区别在于调用 toString 方法和 valueOf 方法的顺序,区分这一点就行了。 ToPrimitive(obj, Number) > Number({}) 如果 obj 是基本类型,直接返回否则,调用 valueO…