SlideShare a Scribd company logo
1 of 14
Download to read offline
API Gateway + Lambdaで
匿名Slack投稿APIを
つくってみた
@hilotter
きっかけ
• エンジニア以外でもSlackを使う人が増えてきた
• エンジニア同士の会話が中心になってしまいSlackに慣れ
てない人は投稿する際のハードルが高そう
• 現状の問題点やサービス改善につながるアイデアやを持っ
ていたとしても、投稿ハードルが高いのが理由で周りに共
有されないのはもったいない
• 匿名で気軽に投稿できるようにすれば、投稿のハードルを
下がり改善につながるかもしれない(仮説)
注意事項
• つくったはいいものの実践導入はしておりません!
• 本当に効果があるのかは分かっておりません!!
• 実践導入したいと思った方には詳細に伝授します
JAWS
Serverless Application Framework
API
Gateway
Lambda Slack
Chrome拡張
AnonymouSlack
Serverless Architecture
Chrome拡張内で直接SlackAPIに
アクセスさせた場合
• Slackトークン情報が漏れてしまう不安
• 投稿チャンネルが後で変わった時にChrome拡張を再イ
ンストールしてもらう必要がある
API Gatewayのメリット
• Lambda側の設定を変えれば投稿先チャンネルの変更が
可能
• SlackAPIトークンはLambda側に持っているので安全
JAWSでプロジェクト作成
• npm install jaws-framework -g
• jaws project create
• cd AnonymouSlack
• npm install slack-node ̶save
• jaws module create slack post
Lambdaコード# aws_modules/slack/post/index.js
var Slack = require('slack-node');
module.exports.run = function(event, context, cb) {
var apiToken = process.env.API_TOKEN;
var channel = process.env.CHANNEL;
var icon_emoji = process.env.ICON_EMOJI ¦¦ ':innocent:';
var username = process.env.USERNAME ¦¦ 'bot'
var slack = new Slack(apiToken);
var text = event.text;
if (!text) { return cb(400, null); }
slack.api('chat.postMessage', {
text: text,
channel: channel,
icon_emoji: icon_emoji,
username: username
}, function(err, response){
if (err) {
return cb(null, err);
}
return cb(null, response);
});
};
環境変数設定
• jaws env set dev ap-northeast-1 API_TOKEN
your_api_token
• jaws env set dev ap-northeast-1 CHANNEL
'#anonymous_diary'
デプロイ
• jaws dash
•
• JAWS: Dashboard for project "AnonymouSlack"
• -------------------------------------------
• Project Summary
• -------------------------------------------
• Stages:
• dev ap-northeast-1
• Lambdas: 1
• Endpoints: 1
• -------------------------------------------
• Select Resources To Deploy
• -------------------------------------------
• slack/post
• L) lSlackPost
• E) /slack/post - POST
• - - - - -
• > Deploy Selected -->
• JAWS: -------------------------------------------
• JAWS: Dashboard: Deploying Lambdas...
• JAWS: -------------------------------------------
•
ハマりポイント
• CORS設定
• クロスドメイン通信の設定
• マネージメントコンソールからいじる
• APIキーの作成と設定
• APIキーを設定していても、JAWSでデプロイする
と無効に戻ってしまう(1.4で対応されるらしい)
• マネージメントコンソールからいじる
API
Gateway
Lambda Slack
Chrome拡張
AnonymouSlack
Serverless Architecture
詳細に関してはこちらもご参考ください
http://bit.ly/1MtBtLy

More Related Content

Similar to API Gateway + Lambdaで匿名Slack投稿APIをつくってみた

20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+LambdaKazuki Ueki
 
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話Noritaka Sekiyama
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版貴志 上坂
 
Sparkにプルリク投げてみた
Sparkにプルリク投げてみたSparkにプルリク投げてみた
Sparkにプルリク投げてみたNoritaka Sekiyama
 
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open APIRESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open APIKohei Saito
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~拓将 平林
 
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイントMotohiro Yamada
 
Awsで作るビッグデータ解析今とこれから
Awsで作るビッグデータ解析今とこれからAwsで作るビッグデータ解析今とこれから
Awsで作るビッグデータ解析今とこれからShohei Kobayashi
 
AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825Yasuharu Suzuki
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsShuhei Eda
 
マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021Yusuke Suzuki
 
xUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキストxUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキストmizuky fujitani
 
01 slack導入の提案
01 slack導入の提案01 slack導入の提案
01 slack導入の提案ssuser68dea4
 
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれSalesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ寛 吉田
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
ログ分析勉強会 おんらいん
ログ分析勉強会 おんらいんログ分析勉強会 おんらいん
ログ分析勉強会 おんらいんKenji Kobayashi
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能Masaki Suzuki
 
ファイルサーバーを SharePoint に移行するためのアプローチ
ファイルサーバーを SharePoint に移行するためのアプローチファイルサーバーを SharePoint に移行するためのアプローチ
ファイルサーバーを SharePoint に移行するためのアプローチ日本マイクロソフト株式会社
 

Similar to API Gateway + Lambdaで匿名Slack投稿APIをつくってみた (20)

20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda
 
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
 
ENGINEER WORK!!
ENGINEER WORK!!ENGINEER WORK!!
ENGINEER WORK!!
 
serverless
serverlessserverless
serverless
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
 
Sparkにプルリク投げてみた
Sparkにプルリク投げてみたSparkにプルリク投げてみた
Sparkにプルリク投げてみた
 
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open APIRESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
 
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
 
Awsで作るビッグデータ解析今とこれから
Awsで作るビッグデータ解析今とこれからAwsで作るビッグデータ解析今とこれから
Awsで作るビッグデータ解析今とこれから
 
AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
 
マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021
 
xUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキストxUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキスト
 
01 slack導入の提案
01 slack導入の提案01 slack導入の提案
01 slack導入の提案
 
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれSalesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
ログ分析勉強会 おんらいん
ログ分析勉強会 おんらいんログ分析勉強会 おんらいん
ログ分析勉強会 おんらいん
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能
 
ファイルサーバーを SharePoint に移行するためのアプローチ
ファイルサーバーを SharePoint に移行するためのアプローチファイルサーバーを SharePoint に移行するためのアプローチ
ファイルサーバーを SharePoint に移行するためのアプローチ
 

API Gateway + Lambdaで匿名Slack投稿APIをつくってみた