自建 Apache OpenWhisk 平臺(tái)
OpenWhisk 簡介

OpenWhisk 部署
apt install gitgit 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 表示同一個(gè) Namespace 每分鐘調(diào)用 Action 的數(shù)量。 concurrentInvocations 表示同一個(gè) Namespace 的并發(fā)調(diào)用數(shù)量。
concurrentInvocationsSystem 表示系統(tǒng)中所有 Namespace 的并發(fā)調(diào)用數(shù)量。 firesPerMinute 表示同一個(gè) Namespace 中每分鐘調(diào)用 Trigger 的數(shù)量。
sequenceMaxLength 表示 Action 的最大序列長度。
export OW_DB=CouchDBexport OW_DB_USERNAME=rootexport OW_DB_PASSWORD=PASSWORDexport OW_DB_PROTOCOL=httpexport OW_DB_HOST=172.17.0.1export OW_DB_PORT=5984
ansible-playbook -i environments/local/ setup.yml
./gradlew distDocker
部署過程可能報(bào)錯(cuò)示例
apt install npm
ansible-playbook -i environments/local/ couchdb.ymlansible-playbook -i environments/local/ initdb.ymlansible-playbook -i environments/local/ wipe.ymlansible-playbook -i environments/local/ apigateway.ymlansible-playbook -i environments/local/ openwhisk.ymlansible-playbook -i environments/local/ postdeploy.yml
執(zhí)行腳本過程
docker ps --format "{{.Image}} \t {{.Names }}"
開發(fā)者工具
API host 用于部署 OpenWhisk 的主機(jī)名或 IP 地址的 API。 Authorization key(用戶名或密碼)用來授權(quán)操作 OpenWhisk 的 API。
./bin/wsk property set --apihost '172.17.0.1'
./bin/wsk property set --auth `cat ansible/files/auth.guest
設(shè)置權(quán)限
wsk action invoke /whisk.system/utils/echo –p message hello –result{"message": "hello"}
體驗(yàn)測(cè)試
# test.pydef main(args):num = args.get("number", "30")????return?{"fibonacci":?F(int(num))}def F(n):if n == 0:return 0elif n == 1:return 1else: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 工程實(shí)踐系列
評(píng)論
圖片
表情
