自建 Apache OpenWhisk 平台
OpenWhisk 简介
OpenWhisk 部署
apt install git
git clone https://github.com/apache/incubator-openwhisk.git openwhisk
cd openwhisk && cd tools/ubuntu-setup && ./all.sh
Apache OpenWhisk 安装配置
limits:
invocationsPerMinute: "{{ limit_invocations_per_minute | default(60) }}"
concurrentInvocations: "{{ limit_invocations_concurrent | default(30) }}"
concurrentInvocationsSystem: "{{ limit_invocations_concurrent_system | default
(5000) }}"
firesPerMinute: "{{ limit_fires_per_minute | default(60) }}"
sequenceMaxLength: "{{ limit_sequence_max_length | default(50) }}"
invocationsPerMinute 表示同一个 Namespace 每分钟调用 Action 的数量。 concurrentInvocations 表示同一个 Namespace 的并发调用数量。
concurrentInvocationsSystem 表示系统中所有 Namespace 的并发调用数量。 firesPerMinute 表示同一个 Namespace 中每分钟调用 Trigger 的数量。
sequenceMaxLength 表示 Action 的最大序列长度。
export OW_DB=CouchDB
export OW_DB_USERNAME=root
export OW_DB_PASSWORD=PASSWORD
export OW_DB_PROTOCOL=http
export OW_DB_HOST=172.17.0.1
export OW_DB_PORT=5984
ansible-playbook -i environments/local/ setup.yml
./gradlew distDocker
部署过程可能报错示例
apt install npm
ansible-playbook -i environments/local/ couchdb.yml
ansible-playbook -i environments/local/ initdb.yml
ansible-playbook -i environments/local/ wipe.yml
ansible-playbook -i environments/local/ apigateway.yml
ansible-playbook -i environments/local/ openwhisk.yml
ansible-playbook -i environments/local/ postdeploy.yml
执行脚本过程
docker ps --format "{{.Image}} \t {{.Names }}"
开发者工具
API host 用于部署 OpenWhisk 的主机名或 IP 地址的 API。 Authorization key(用户名或密码)用来授权操作 OpenWhisk 的 API。
./bin/wsk property set --apihost '172.17.0.1'
./bin/wsk property set --auth `cat ansible/files/auth.guest
设置权限
wsk action invoke /whisk.system/utils/echo –p message hello –result
{
"message": "hello"
}
体验测试
# test.py
def main(args):
num = args.get("number", "30")
return {"fibonacci": F(int(num))}
def F(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return F(n - 1) + F(n - 2)
/bin/wsk action create myfunction ./test.py --insecure
./bin/wsk -i action invoke myfunction --result --blocking --param nember 20
Serverless 工程实践系列
评论