13
1 openwhisk-slackinvite を試してみました 第2回 OpenWhisk meetup LT 2017/03/06 @ibmamnt

Open whisk slackinvite - public

Embed Size (px)

Citation preview

Page 1: Open whisk slackinvite - public

1

openwhisk-slackinviteを試してみました

第2回 OpenWhisk meetup LT

2017/03/06 @ibmamnt

Page 2: Open whisk slackinvite - public

2

自己紹介 ~

名前: 天野 武彦

所属:IBM 東京ソフトウェア開発研究所

主な活動: 先端クラウド技術・サービスの開発・推進・啓蒙

(エリア: Cloud Foundry, DevOps, OpenStack, OpenWhisk , Blockchain ), IBM Garage Developer

趣味: 目下のところ育児に没頭

Twitter: @ibmamnt

ブログ: http://amanoblog.wordpress.com

Page 3: Open whisk slackinvite - public

3

text

動機

– Garage の開発者として、定型業務はできるだけ自動化したい

– Slack のユーザー招待なんて自動化したいよね

Page 4: Open whisk slackinvite - public

4

text

いままでのやりかた(@ibmamnt が知っている範囲)

https://github.com/avinassh/slackipy https://github.com/rauchg/slackin

※ paas勉強会のSlack 招待の画面スクリーンショットです

Page 5: Open whisk slackinvite - public

5

text

あたらしいやりかた OpenWhisk + GitHub pages

– OpenWhisk で Slack invite のアクションを作成する

– API Gateway を定義する

– GitHub ページを公開する

30分でできます!

https://github.com/openwhisk/openwhisk-slackinvite

Page 6: Open whisk slackinvite - public

6

text

対費用効果

従来

500 円/月の VPS を利用した場合、年 6,000円

新しい方法

10,000ユーザーを招待した場合、約2円

(10000users x $0.000017 x 0.25 (256MB) x 400ms* 155円/$ = 1.955)

Page 7: Open whisk slackinvite - public

7

text

説明しよう

Page 8: Open whisk slackinvite - public

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 [email protected]

{

"message": "Success! Check [email protected] 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;

Page 9: Open whisk slackinvite - public

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/[email protected] {

"message": "Success! Check [email protected] for an invite from Slack."

}

Page 10: Open whisk slackinvite - public

10

text

(゜∀゜)キター!!!!

Page 11: Open whisk slackinvite - public

11

text

もう少し。。。

GitHub ページの作成

–サンプル index.html を修正

• actionUrl の修正

• その他、体裁など

–<github-org>.github.io リポジトリを作成して index.html を放り込む

ここ

Page 12: Open whisk slackinvite - public

12

text

完成!

Page 13: Open whisk slackinvite - public

13

text

まとめ

–定型業務は自動化して、開発作業に集中できるようにしましょう

–定型業務は OpenWhisk で自動化するとコスト的にもうれしい