Más contenido relacionado
La actualidad más candente (19)
Similar a AWS re:Invent 2015に初参戦→気づいたらOSS二つ作ってた (20)
AWS re:Invent 2015に初参戦→気づいたらOSS二つ作ってた
- 9. re:Invent 2015すごいよ
• 開発者向けカンファレンス(印象)
• 数百人参加してそうなよくばりセッション
• AWS中の人のDeep Dive(技術的な深い話)、ユーザによる事例紹介、AWS
利用するサービス・フレームワーク紹介、etc.
なんでもある
• 10000人くらい参加してそうなキーノート
• 新サービス・新機能を大々的に発表→エンジニア盛り上がる
• ライブ会場ですか?
- 10. re:Invent 2015体験記
• 食料確保
• 広大な会場、人の波をかき分けながら右往左往
• セッション、ブースめぐり
• ネットワーキング
• 受講料無料のハンズオンラボでAWSコンソールいじりながら試験勉強
→現地で試験受けてSolution Architect Asociate認定取得
→認定者限定パーティで交流
• 知り合いいなくてコミュ力なくても安心
• レポート「初めてのAWS re:Invent 2015参戦を写真で振り返る」
- 14. LambdaのScheduled Event
• 分散cron的なものという認識
• 指定日時または周期でLambda FunctionをInvoke
• 他の選択肢
• EC2インスタンスにcrond立てる or Mesos上にChronos立てる or Unreliable
Town ClockというAWS SNSトピックにsubscribeさせる or etc.
→最終的にLambda Function実行
• あせ?せっかくLambdaでサーバレスにしようと持ったのにサーバいるやん
• →運用めんどい
- 16. • Slack Outgoing WebHook
↓
API Gateway Scheduled Event
↓ ↓
Lambda Function
↓
Slack Incoming WebHook
設計
- 18. コード例
var LambdaBot = require('lambda_bot'),
env = require('node-env-file');
env(__dirname + ‘/.env'); // .envファイルから環境変数読むよ
var bot = new LambdaBot({
iconEmoji: process.env['SLACK_ICON_EMOJI'],
userName: process.env['SLACK_USER_NAME'],
channelName: process.env['SLACK_CHANNEL_NAME'],
slackIncomingWebhookURL: process.env['SLACK_INCOMING_WEBHOOK_URL']
});
bot.hear(/foo/, function(res) {
return res.send(‘bar'); // 誰かがfooと言ったらbarと言うよ
});
bot.respond(/hi/, function(res) {
return res.reply(‘hi'); // 誰かがfooと話しかけてきたら、hiと返すよ
});
bot.on('10am', function(res) {
return res.send("It's 10am.”); // 毎日午前10時に「It’s 10am.」と言うよ
});
exports.handler = bot.createHandler();
- 25. Afer Joumae
• hubotが実行するアプリのデプロイスクリプトで
$ joumae run --resource-name $APP-$ENV -- bundle exec
cap $ENV deploy
• Werckerで動いているインフラのデプロイスクリプトで
$ joumae run --resource-name $APP-$ENV -- scripts/
mumo.sh deploy $APP-$ENV
• クラスタを排他的ロック
• 一方が終わる前に一方を実行→エラー→Happy!(^ω^)