kotlin 无障碍服务_手把手教你使用Kotlin Native无服务器功能!

【IT168 编译】之前,我们都是通过Apache OpenWhisk 来使用Kotlin Serverless功能。为什么会是这种情况呢?这是因为Kotlin Native应用程序是不能在JVM中运行的,必须依靠OpenWhisk、Vagrant和Virtual Box等等。

Kotlin Native Serverless

首先,要设置环境:

使用ssh登录机器:

$ vagrant ssh

直接测试,使用上传到Docker 的Docker容器 :

如果要新的测试动作,只需运行:

输出结果如下:

OpenWhisk允许使用docker容器,并包含一个在动作调用时执行的二进制文件。二进制文件使用JSON字符串接收1个参数,并且需要返回一个JSON字符串。

首先是安装和配置kotlin native:

注意:最后一行可能导致错误,因为没有为编译器提供任何参数。

现在开始创建项目,初步设置如下:

使用gradle.properties指定kotlin-native的安装位置:

konan.home=/kotlin-native/dist

在src / main.kt文件夹中创建一个简单的main:

编译:

$ gradlew clean build

使用clean build的原因是文件修改之后,有时gradle不会重新编译文件。

由于在此没有使用JVM构建任何Java代码,所以这里使用C JSON库。

首先克隆或者是在git中创建一个子模块:

创建shell脚本将C代码编译成可以使用的库:

该脚本将创建一个LLVM格式的库 ,这是Kotlin Native使用的体系结构。

更新gradle脚本来编译C代码,并将其链接到程序中:

最后,我们需要为C代码添加一个定义文件,这样Kotlin可以为它创建和存根。

该文件应放在src / c_interop / Parson.def中:

检查一切是否正常:

生成文件:

build/clang/parson.bc - 这是链接库。

build/konan/interopStubs/genParsonInteropStubs/Parson/Parson.kt - 这是用于调用库的Kotin存根。

使用parson来修改程序:

为了能够调用Parson,创建Kotlin/Native互操作性功能:

再次构建程序后,我们可以这样使用:

现在,我们需要为它创建一个docker。OpenWhisk具有基于alpine linux的docker base image。任何人都可以通过docker base image来制作Kotlin Native Serverless功能。

image的docker文件是:

因为构建需要使用gradle,所以选择了openjdk 8,使用OpenWhisk提供的actionProxy python3脚本来创建一个可以通过HTTP服务于操作的flask服务器。操作放在folder /action中,并命名为exec。

为fibonacci功能创建一个docker image:

最后,创建一个简单的脚本来发布docker hub中的镜像:

以相同的方式将文件添加到docker中,运行该命令来更新映像。

最后将所有内容汇总在一起:

这是学习Kotlin Native很好的例子,对Kotlin将来使用更多功能会很有帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值