✅ You’re up and running! Dapr logs will appear here.
我们下面利用 Dapr 的 Get Started 的例子,利用 Redis 作为 WASI 应用的状态存储。具体逻辑如下图。
注:下面的应用需要 Rust 和 AssemblyScript 环境配置,请大家自行完成。
我们在 Radu 项目的基础上 fork 了一个版本,首先来下载代码,并进行构建。
$ git clone https://github.com/denverdino/wasi-experimental-http
$ cd wasi-experimental-http
$ cargo build
…
Finished dev [unoptimized + debuginfo] target(s) in 3m 02s
我们利用 AssemblyScript 来实现了这个测试应用,测试代码如下:
$ cat tests/dapr/index.ts
// @ts-ignore
import { Console } from “as-wasi”;
import { DaprClient, StateItem } from “./dapr”;
import { JSON } from “assemblyscript-json”;
Console.log(“Testing Dapr API …”)
let dapr = new DaprClient()
dapr.saveState(“statestore”, “weapon”, JSON.Value.String(“Death Star”))
let o = JSON.Value.Object()
o.set(“name”, “Tatooine”)
o.set(“test”, 123)
let item = new StateItem(“planets”, o)
let items: StateItem[] = [item]
dapr.saveBulkState(“statestore”, items)
let testObj = dapr.getState(“statestore”, “planets”)
let testStr = dapr.getState(“statestore”, “weapon”)
if (testStr.toString() == “Death Star” && testObj.isObj && (<JSON.Integer>(<JSON.Obj>testObj