狠狠撸

狠狠撸Share a Scribd company logo
1
openwhisk-slackinvite
を試してみました
第2回 OpenWhisk meetup LT
2017/03/06 @ibmamnt
2
自己紹介 ~
名前: 天野 武彦
所属:IBM 東京ソフトウェア開発研究所
主な活動: 先端クラウド技術?サービスの開発?推進?啓蒙
(エリア: Cloud Foundry, DevOps, OpenStack, OpenWhisk , Blockchain ), IBM Garage
Developer
趣味: 目下のところ育児に没頭
Twitter: @ibmamnt
ブログ: http://amanoblog.wordpress.com
3
text
動機
– Garage の開発者として、定型業務はできるだけ自動化したい
– Slack のユーザー招待なんて自動化したいよね
4
text
いままでのやりかた(@ibmamnt が知っている範囲)
https://github.com/avinassh/slackipy https://github.com/rauchg/slackin
※ paas勉強会のSlack 招待の画面スクリーン
ショットです
5
text
あたらしいやりかた OpenWhisk + GitHub pages
– OpenWhisk で Slack invite のア
クションを作成する
– API Gateway を定義する
– GitHub ページを公開する
30分でできます!
https://github.com/openwhisk/openwhisk-slackinvite
6
text
対費用効果
?従来
500 円/月の VPS を利用した場合、年 6,000円
? 新しい方法
10,000ユーザーを招待した場合、約2円
(10000users x $0.000017 x 0.25 (256MB) x 400ms* 155円/$ = 1.955)
7
text
説明しよう
8
text
actionの登録 1. https://api.slack.com/docs/oauth-test-tokens からアクセストー
クン入手。
2. action を登録。Slack チーム名(org) / slacktoken はデフォル
トパラメータとしてセットする。
$ wsk action create slackinvite action.js -p org
"opencrane" -p slacktoken "xoxp-…”
ok: created action slackinvite
3. action の試験。
$ wsk action invoke -b -r slackinvite -p email amnt@jp.ibm.com
{
"message": "Success! Check amnt@jp.ibm.com for an invite
from Slack.”
}
$ cat action.js
//jshint esversion:6
var request = require("request");
function main({email, org, slacktoken}) {
return new Promise((resolve, reject) => {
request.post({
url:
`https://${org}.slack.com/api/users.admin.invite`,
form: {
email: email,
token: slacktoken,
set_active: true
}
},(err, httpResponse, body)=>{
if(err) reject({Error:"Error"+err});
resolve({
message:`Success! Check ${email}
for an invite from Slack.`
});
});
});
}
exports.main = main;
9
text
API Gateway の作成
# API Gatewayの作成
$ wsk api-experimental create /opencrane /slackinvite GET slackinvite
ok: created API /opencrane/slackinvite GET for action /_/slackinvite
https://44081aec-c239-490d-a990-f0c37efa4746-gws.api-
gw.mybluemix.net/opencrane/slackinvite
# API Gateway 試験
$ curl -X GET https://44081aec-c239-490d-a990-f0c37efa4746-gws.api-
gw.mybluemix.net/opencrane/slackinvite?email=temp.amano@outlook.com {
"message": "Success! Check temp.amano@outlook.com for an invite from Slack."
}
10
text
(゜?゜)キター!!!!
11
text
もう少し 。。。
GitHub ページの作成
–サンプル index.html を修正
? actionUrl の修正
? その他、体裁など
–<github-org>.github.io リポジトリを
作成して index.html を放り込む
ここ
12
text
完成!
13
text
まとめ
–定型業務は自動化して、開発作業に集中できるようにしましょう
–定型業務は OpenWhisk で自動化するとコスト的にもうれしい

More Related Content

Open whisk slackinvite - public