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

当前 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.mzph.cn/news/597177.shtml

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

相关文章

相机FOV是什么英文单词的缩写,是什么意思。

问题描述:相机FOV是什么英文单词的缩写,是什么意思。 问题解答: FOV 是 "Field of View" 的缩写,翻译成中文是视场角或视野。在相机领域,相机的 FOV 表示相机能够捕捉到的场景范围的大小,通常用…

HarmonyOS页面和自定义组件生命周期

页面和自定义组件生命周期 在开始之前,我们先明确自定义组件和页面的关系: 自定义组件:Component装饰的UI单元,可以组合多个系统组件实现UI的复用。页面:即应用的UI页面。可以由一个或者多个自定义组件组成&#xff…

通信管理之设备管理

点击标题栏 【系统】--【通信管理】 串口通信指串口按位(bit)发送和接受字节。尽管比特字节的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接受数据,串口通信协议是指规定了数据包的内容,内容包含了起始位、主体…

52、全连接 - 特征与样本空间的对应关系

上一节说到经过全连接层之后,神经网络学习到的特征,会从隐层特征空间逐步映射到样本空间,这主要是由于全连接层可以融合全局的特征。 在经过全连接层之后,在 ResNet50 这个神经网络中会输出1000个特征的得分值,这1000个特征的得分值,便可以对应到图像的分类。 怎么对应…

居然在Web上就可以体验下苹果电脑的操作系统啦?

发现一款宝藏项目 MacOS ,在Web上打造一款原汁原味的 MacOS系统,不同于以外的仿操作系统的web应用,该应用底层基于 HTML5的 FileSystem 和 IndexedDB 构建了文件系统,理论上可以基于这套系统实现任何的上层应用。作者还制定了可以…

洛谷P1024[NOIP2001 提高组] 一元三次方程求解(cpp)(二分查找)

目录 1.题目 2.思路 3.AC 1.题目 # [NOIP2001 提高组] 一元三次方程求解 ## 题目描述 有形如: 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在 -…

【JavaEE进阶】 关于Spring mvc 响应

文章目录 🎍序言🌳 返回静态⻚⾯🌲RestController 与 Controller 的关联和区别🌴返回数据 ResponseBody🎋返回HTML代码⽚段🍃返回JSON🍀设置状态码🎄设置Header🚩设置Con…

Python循环语句

for 循环 for循环主要用来实现固定次数的循环,用于将一段代码重复的执行固定次数。 比如:循环打印数字,打印1-100之间的每个整数 for i in range(100):print(i1)while 循环 while循环用于实现不知道要执行多少次的循环,一般需…

【hyperledger-fabric】部署和安装

简介 对hyperledger-fabric进行安装,话不多说,直接开干。但是需要申明一点,也就是本文章全程是开着加速器进行的资源操作,所以对于没有开加速器的情况可能会由于网络原因导致下载资源失败。 资料提供 1.官方部署文档在此&#…

PyTorch|transforms

在将图片输入到神经网络进行训练时,一般都需要对输入的图像进行预处理。对图片进行操作有很多种方法,这里我们使用torchvision库的transforms模块。 tansforms有很多种方法(一些可以用在张量和PIL图像,一些仅能用于张量,而另一些…

解密!电梯机房温差之谜

小伍:大家好,本次小伍带大家来到【电梯机房】,我们来先测一下温度 电梯机房【外屋】:23.2 度 小伍:好,我们再看里面的设备温度 电梯机房【外里】:74 度 523能源:哇塞,…

写了个在线 SQL 转换工具,支持 Oracle、Mysql、SQLServer 语句互转。

原本用户公司要迁移 oracle 到 mysql 上,数据库方言上有一定的区别,老的 SQL 又臭又长转起来也不太方便,尤其是日期类的完全无法适用,所以才写了这个工具:不同类型sql互转在线工具-开发者工具 可以用于不同数据库之间的…

XML解析神器:Apache Commons Digester

第1章:引言 大家好,我是小黑。今天咱们聊聊一个在现代编程中经常遇到的话题:XML解析。你可能知道,XML(可扩展标记语言)因其灵活性和可读性,在配置文件、数据交换等方面广泛使用。但是&#xff…

第一节 初始化项目

系列文章目录 第一节 初始化项目 文章目录 操作步骤 总结 操作步骤 打开cmd 输入 vue ui 在打开的网页中点击“创建”,复制文件夹路径并粘贴点击“在此创建新项目” 输入项目名称 点击下一步选择手动配置 选择babel、router、vuex、css pre-processors、 linter建…

(Linux)虚拟机配置固定IP

Linux操作系统的IP地址是通过DHCP服务获取的,也就是动态获取IP地址,每次重启设备后都会获取一次,会导致IP地址频繁变更,为了不频繁更新映射关系,我们需要IP地址固定下来。 1.在VM中配置IP地址网关和网段 打开虚拟网络…

学生成绩管理系统半成品

C语言的老师在给我们讲指针的时候,讲的并不深入,她用了一个学生成绩管理系统来引入指针这个东西并给我们讲解,但我觉得她的管理系统功能有一些不足,并且不是很美观,所以说心血来潮,自己也动手写了一个学生成…

toRefs的用法

文章目录 toRefs是什么toRefs的作用以及为什么要用它? toRefs是什么 toRefs 是 Vue 3 Composition API 中的一个函数,它用于将响应式对象转换为普通对象,其中对象的每个属性都是 ref 对象。这是因为在 Vue 3 中,reactive 创建的对…

【程序】USART串口通信接收数据(标准库带printf)

🌟博主领域:嵌入式领域&人工智能&软件开发 前言:本程序使用stm32f429作为主控,使用串口1,使用的是标准库程序版本。(其它主控/串口x,实现过程类似)。本程序亲测无误。 目录…

HubSpot集成怎么样?有哪些优势和特点?

HubSpot在集成方面表现出色,并为用户提供了强大的集成能力。以下是HubSpot集成的一些特点和优势: 1.丰富的集成生态系统: HubSpot拥有丰富的应用市场,用户可以轻松访问并集成多种第三方应用。这包括与营销、销售、客户服务等领域…

python bad case边界不准确问题

目录 问题描述 问题解决: 问题描述 针对bad case中,错误的主要原因是边界定位不准确问题,sub,obj抽取过短。 因此想要通过jieba分词,然后调用GPT4的api判断当前的新span是否符合条件。 问题解决: import json from…