以 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,一经查实,立即删除!

相关文章

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

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

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…

【hyperledger-fabric】部署和安装

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

解密!电梯机房温差之谜

小伍:大家好,本次小伍带大家来到【电梯机房】,我们来先测一下温度 电梯机房【外屋】: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地址网关和网段 打开虚拟网络…

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

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

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

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

Vue 单文件组件的基础入门指南

本文是我2年前做的一个学习小demo,在这里分享一下 希望对想要学习Vue的小伙伴能有一丢丢的小帮助~_~ 1 Vue CLI Vue CLI (opens new window)是一个基于Vue.js进行快速开发的完整系统。 这里我使用 Vue CLI 生成了一个Vue项目,命令为:vue cr…

算法导论复习——CHP16 贪心算法

定义 每一步都做出当前看来最优的操作。 问题引入——活动选择问题 问题描述 活动选择问题就是对给定的包含n个活动的集合S,在已知每个活动开始时间和结束时间的条件下,从中选出最多可兼容活动的子集合,称为最大兼容活动集合。 不失一般性&a…

解析《个人信息保护法》实施以来主要的变化

文章目录 前言一、二十一部配套的立法二、数据入表三、跨境规则转向四、未成年个人信息保护五、数据交易六、监管创新七、执法全覆盖八、地方聚焦场景执法九、个人信息保护诉讼十、个人信息保护公益诉讼十一、包容审慎十二、双清单上线十三、外部独立监督机构十四、个性化推荐便…

计算机丢失VCRUNTIME140_1.dll怎么办,6个不同方法教你解决问题

一、什么是vcruntime140_1.dll? vcruntime140_1.dll是Visual C Redistributable Packages的一部分,它是Microsoft Visual Studio开发环境中使用的运行时库文件。它包含了许多常用的函数和类,为开发者提供了丰富的功能支持。 二、vcruntime1…

大数据可视化Web框架——飞致云Dataease在Windows端的安装指南(多图说明版)V2.2最新版

DataEase开源代码在Windows系统开发环境搭建与调试指南_怎么部署dataease 2.0-CSDN博客https://blog.csdn.net/tllhc01/article/details/135220598?spm1001.2014.3001.5502参考这一篇,基于dataease2.2源码进行构建 需要先下载三个文件,且版本一一对应均…

C++多态性——(4)纯虚函数与抽象类

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 我们不能选择命运,但我们可…

基于注解的IOC配置

基于注解的IOC配置 学习基于注解的IOC配置&#xff0c;大家脑海里首先得有一个认知&#xff0c;即注解配置和xml配置要实现的功能都是一样的&#xff0c;都是要降低程序间的耦合。只是配置的形式不一样。 1.创建工程 pom.xml <?xml version"1.0" encoding&qu…