openwhisk

OpenWhisk 编程模型

notion image

What is an Action?

在 OpenWhisk 平台上运行的无状态函数(代码片段)。封装了为响应事件而执行的应用程序逻辑。
可以通过一下三种方式进行调用:
  • OpenWhisk REST API
  • OpenWhisk CLI
  • 简单的用户创建的API手动调用
  • 触发器调用

部署Openwhisk

Running OpenWhisk locally

使用 Docker 中启用的 Kubernetes(Minikube)

Alternative options

Standalone

开始使用 OpenWhisk 的最简单方法是安装“独立”OpenWhisk 堆栈。这是一个功能齐全的 OpenWhisk 堆栈,为方便起见,作为 Java 进程运行。无服务器函数在 Docker 容器中运行。您的机器上需要有 Docker、Java 和 Node.js。
首先需要安装java、nodejs 参考文章
然后可以clone编译
运行生成的可执行文件:
服务起来后设置提示的命令:设置apihost和auth

Docker Compose

Ansible

Vagrant

使用Openwhisk

wsk

wskdeploy

OpenWhisk REST API

OpenWhisk Clients

Openwhisk架构

What happens on an invocation?

notion image
notion image
Scala

What is a Trigger?

一种声明式的事件源。触发器用于描述一类事件的发生,例如文档上传、代码提交或定时器触发。它本身不包含业务逻辑,而是作为事件的“命名通道”。

What is a Rule?

规则(Rule)是连接触发器(Trigger)和动作(Action)的桥梁。它规定了当某个触发器所代表的事件发生时,应该调用哪一个动作。这种关联使得事件驱动的逻辑变得清晰和模块化。

架构图解释

上面的架构图展示了一次函数调用的完整生命周期: 1. Nginx: 作为入口网关,接收所有来自客户端的HTTP请求。 2. Controller: 是系统的“大脑”,负责认证、授权和路由请求。它接收到请求后,会将其转化为一个消息,并发布到Kafka消息队列中。 3. Kafka: 是一个高吞吐量的分布式消息队列,作为系统核心组件之间的缓冲,实现了削峰填谷和异步处理。 4. Invoker: 是实际执行函数代码的“工人”。它会从Kafka消费消息,如果本地没有可用的容器来执行该函数,它会启动一个新的Docker容器,将函数代码注入并执行,然后将结果返回给Controller。
上一篇
Scala
下一篇
serverless
Loading...
文章列表

加载中