SlideShare une entreprise Scribd logo
1  sur  27
SES と Lambda でメールを Slack に
通知してみよう     
2016 年 3 月 21 日
木村健一郎
名前:木村健一郎
所属:株式会社コム・アンド・コム
お仕事:技術に関することはなんでも
好きな言語: perl
好きな DB : PostgreSQL
今日のお題:
  SES と Lambda でメールを Slack に通知してみよう
Slack 使ってますか?
• チャットツールです
• WEB ブラウザ、 iOS/Android/Windows/Mac アプリで使えます
• API あります
• 詳しくは http://slack.com/  へ
メール使ってますか?
• なんだかんだで使わざるを得ない
重要なメールを携帯に飛ばすとかよくあるよね?
• 監視システムからの通知もメールが基本
最近は API 叩けたり、 slack プラグインがあることも
• できれば通知系は slack にまとめたいよね?
メールの内容を slack に飛ばそう!
ぱっと思いつくレガシーなやり方
1.SMTP サーバを作る。例えば postfix 。
2.受信するメールアドレスを作って、そこ宛のメールをコマン
ドに渡す
3.コマンドにはメールが標準入力経由で渡されるので、頑張っ
てパースして slack に飛ばす
hoge: “ | /path/to/command”
/etc/aliases  にこんな感じで書く
・・・超めんどくさい (´ ・ ω ・ `)
( 特にサーバのお守りなんてしたくない )
やっぱ時代はサーバレスでしょ! ( `・ ω ・ ´)
( 言ってみたかった )
構成
インターネット
SES
メール
S3
S3 に保存
イベント通知
メール読み込み
API 呼び出し
1. S3 を設定する
受信したメールを保存する S3 を設定します。
適当な名前でバケット作りましょう。
( )S3※ オブジェクトは Lambda に渡すためにしか使わないから
、期限を設定して自動で消しましょう!
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "GiveSESPermissionToWriteEmail",
"Effect": "Allow",
"Principal": {
"Service": [
"ses.amazonaws.com"
]
},
"Action": [
"s3:PutObjectAcl",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::BUCKET_NAME/*",
"Condition": {
"StringEquals": {
"aws:Referer": "ACCOUNT_NO"
}
}
}
]
}
Policy はこんな感じで。
2. SES を設定する
受信するドメインを決めます。
自分で持ってるドメインでサブドメイン作るなり、新しいド
メイン取るなりでまず準備しましょう。
手順
1.メールアドレスを登録する
2.ドメインの verify をする (Route53 なら早いです )
3.アクションを追加する
S3 に保存するので、先ほどのバケット名を設定します
今更ですが、なんで S3 ?
なんで S3 経由?アクションに Lambda ってあるやん?
S3 使わないと、本文や添付ファイルが取れないから
(多分理由は、 Lanbda 呼び出すときに渡すデータがでかいと嫌ってことかと思います)
3. Lambda ファンクション書くぜ!
今回は Python で書きます。理由は以下の通り。
1.メールを取り扱うライブラリが標準である
2.Slack 連携のライブラリがある
3.新しく使えるようになったから試してみたい
4.matetsu さんの記事を参考にしたから
下準備
Python2.7 のインストールは適当に。
ワークディレクトリを作って、 slack 用のライブラリ
をインストールします。
%mkdir ses-slack
%cd ses-slack
%pip install slackweb -t ./
コード書くぜ(1)
lambda_function.py というファイルで作ります。
utf-8 で書きます。
# coding: utf-8
from __future__ import print_function
import boto3
import json
import ConfigParser
import email
from email.parser import FeedParser
from email.header import decode_header
import slackweb
出だしはこんな感じで。
コード書くぜ(2)
ハンドラーの前半。 S3 からメールを取得。
def lambda_handler(event, context):
try:
record = event["Records"][0]
bucket_region = record["awsRegion"]
bucket_name = record["s3"]["bucket"]["name"]
mail_object_key = record["s3"]["object"]["key"]
s3 = boto3.client('s3', region_name=bucket_region)
mail_object = s3.get_object(Bucket = bucket_name, Key = mail_object_key)
mail_body = ''
try:
mail_body = mail_object["Body"].read().decode('utf-8')
except:
try:
mail_body = mail_object["Body"].read().decode('iso-2022-jp')
except:
mail_body = mail_object["Body"].read()
  msg_object = email.message_from_string(mail_body)
コード書くぜ(3)
ハンドラーの中盤。本文、サブジェクト、送信元を取得します。
if msg_object.is_multipart():
body = msg_object.get_payload()[0]
else:
body = msg_object
try:
body = body.get_payload(decode=True).decode(body.get_content_charset())
except:
#iso-2022-jp なのに丸文字があるとき
code = 'iso-2022-jp-2004'
body = body.get_payload(decode=True).replace('033$B', '033$(Q').decode(code)
(d_sub, sub_charset) = decode_header(msg_object['Subject'])[0]
if sub_charset == None:
subject = d_sub
else:
subject = d_sub.decode(sub_charset)
(d_from, from_charset) = decode_header(msg_object['From'])[0]
if from_charset == None:
mfrom = d_from
else:
mfrom = d_from.decode(from_charset)
コード書くぜ( 4 )
ハンドラーの後半。エラーハンドリングします。
except:
  subject = u"Error!"
  body = u" メールを受信しましたが、エラーが発生しました。 "
mfrom = u" 送信元不明 "
どうしてもおかしな形式のメールというのはあるものでして・・・
コード書くぜ( 5 )
ハンドラーの終盤。いよいよ slack に流します。
inifile = ConfigParser.SafeConfigParser()
inifile.read("./config.ini")
attachments = []
attachment = {
"fallback": u"From:%snSub:%s" % (mfrom,subject),
"pretext": u“From:%snSub:%s" % (mfrom,subject),
"color": "#aaaaaa",
"text": body
}
attachments.append(attachment)
slack = slackweb.Slack(url=inifile.get('slack', 'hook_url'))
slack.notify(attachments=attachments,
channel=inifile.get('slack', 'channel'),
username=inifile.get('slack', 'username'),
icon_emoji=inifile.get('slack', 'icon_emoji'))
return "CONTINUE"
コード書くぜ( 6 )
設定ファイルを config.ini という名前で準備します。
[slack]
hook_url = https://hooks.slack.com/services/***
username = alert_bot
channel = 流す先のチャンネル名
icon_emoji = :guardsman:
hook_url は slack の設定から取得します。
Web ブラウザでアクセスし、設定の「 Apps & Custom
Integrations 」→「 Incoming WebHooks 」です。
アップロードするよ!
zip でまとめます。
%zip -r ses-s3-lambda-slack.zip config.ini lambda_function.py slackweb
で、これを管理コンソールからアップします
S3 のイベント設定するよ!
先ほどの S3 バケットに更新イベントを追加します。
Lambda の管理コンソールだけでなく、以下のように S3 の管理コンソール
からも追加できます。
先ほど設定したメールアドレスにメールを送ってみましょう。
動かないときは以下のようにちょっと修正してローカルで動かしてみる ( 引数にテ
キストファイルとして保存したメールを渡す ) とデバッグしやすいです。
もしくは、 print すると CloudWatch のログに出力されるので print デバッグで。
import sys
def lambda_handler(m):
try:
mail_object = email.message_from_string(m)
……
return "CONTINUE"
if __name__ == "__main__":
if len(sys.argv)>1:
raw=open(sys.argv[1]).read()
else:
print "no args"
exit
lambda_handler(raw)
5 .試験するよ!
6 .応用するよ!
ここまでできたら色々遊べますね。
•キーワードをハイライトしたり色を変える
•本文に応じて通知するメールを取捨選択する
•Slack から返信もできるようにしてみる
•添付ファイルも見れるようにしてみる
•Twilio と連携して SMS も送ってみる
色々遊んでみましょう!
7 .感想
• Lambda 超便利 (^o^)
• SES はウィルスメールフィルタなどもあって便利
• この組み合わせ、スロッティングとか考えなくていいし楽
ちん
• もっと楽にデバッグできない?
• Perl on Lambda マダー?
たぶん永久に来ない? (´ ・ ω ・ `)
• Qiita にまとめてますのでコードはこちらを参考に
http://goo.gl/2m0dqK
SESとLambdaでメールをSlackに通知してみよう

Contenu connexe

Tendances

20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)Amazon Web Services Japan
 
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設修平 富田
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方Amazon Web Services Japan
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかJun Kato
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テストTakahiro Moteki
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Noritaka Sekiyama
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAmazon Web Services Japan
 
DevAx::connect はじめました
DevAx::connect はじめましたDevAx::connect はじめました
DevAx::connect はじめました政雄 金森
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道Jun Kato
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてNobuyuki Sasaki
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAmazon Web Services Japan
 
go generate 完全入門
go generate 完全入門go generate 完全入門
go generate 完全入門yaegashi
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)NTT DATA Technology & Innovation
 

Tendances (20)

20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
 
DevAx::connect はじめました
DevAx::connect はじめましたDevAx::connect はじめました
DevAx::connect はじめました
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
go generate 完全入門
go generate 完全入門go generate 完全入門
go generate 完全入門
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 

En vedette

Serverlessでサイト監視
Serverlessでサイト監視Serverlessでサイト監視
Serverlessでサイト監視shigeyuki azuchi
 
AWSで自作CGIをサーバレス実装してみた ~その2~
AWSで自作CGIをサーバレス実装してみた ~その2~AWSで自作CGIをサーバレス実装してみた ~その2~
AWSで自作CGIをサーバレス実装してみた ~その2~祐樹 夏目
 
Visual StudioでAWS開発してみよう
Visual StudioでAWS開発してみようVisual StudioでAWS開発してみよう
Visual StudioでAWS開発してみようYutaka Fujisaki
 
Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話civic Sasaki
 
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介civic Sasaki
 
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編Masayuki KaToH
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことHirata Tomoko
 
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編Yoshihiro Ohsuka
 
CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話Yuki Maeto
 
Androidを中心に紐解くIoT
Androidを中心に紐解くIoTAndroidを中心に紐解くIoT
Androidを中心に紐解くIoTKeisuke Nishitani
 
AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017
AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017
AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017Alex Smith
 
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録Fumiya Sakai
 
エバを弄る会 LT
エバを弄る会 LTエバを弄る会 LT
エバを弄る会 LT安隆 沖
 
Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化Akihiro Matsuura
 
Lambdaについて
LambdaについてLambdaについて
LambdaについてAra Jo
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係Hiraku Komuro
 

En vedette (20)

Serverlessでサイト監視
Serverlessでサイト監視Serverlessでサイト監視
Serverlessでサイト監視
 
AWSで自作CGIをサーバレス実装してみた ~その2~
AWSで自作CGIをサーバレス実装してみた ~その2~AWSで自作CGIをサーバレス実装してみた ~その2~
AWSで自作CGIをサーバレス実装してみた ~その2~
 
Visual StudioでAWS開発してみよう
Visual StudioでAWS開発してみようVisual StudioでAWS開発してみよう
Visual StudioでAWS開発してみよう
 
AWS x MLB
AWS x MLBAWS x MLB
AWS x MLB
 
Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話
 
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
 
Shell入門
Shell入門Shell入門
Shell入門
 
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
 
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
 
CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話
 
Androidを中心に紐解くIoT
Androidを中心に紐解くIoTAndroidを中心に紐解くIoT
Androidを中心に紐解くIoT
 
AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017
AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017
AWS User Group Singapore / Amazon Lex -- JAWSDAYS 2017
 
TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方
 
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
 
エバを弄る会 LT
エバを弄る会 LTエバを弄る会 LT
エバを弄る会 LT
 
Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化
 
20150425 JAWS-UG Okinawa
20150425 JAWS-UG Okinawa20150425 JAWS-UG Okinawa
20150425 JAWS-UG Okinawa
 
Lambdaについて
LambdaについてLambdaについて
Lambdaについて
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 

Similaire à SESとLambdaでメールをSlackに通知してみよう

Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platformToru Yamaguchi
 
Enable Skype to favorite the messages
Enable Skype to favorite the messagesEnable Skype to favorite the messages
Enable Skype to favorite the messagesdaipanchi
 
C++ lecture-0
C++ lecture-0C++ lecture-0
C++ lecture-0sunaemon
 
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~Takeuchi Yuichi
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段Pierre3 小林
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るKiyoshi SATOH
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜Naruhiko Ogasawara
 
"Hello World!" から始める Calc で LibreOffice Basic
"Hello World!" から始める Calc で LibreOffice Basic"Hello World!" から始める Calc で LibreOffice Basic
"Hello World!" から始める Calc で LibreOffice Basic78tch
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)Masanori Machii
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?Hiroshi Tokumaru
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24Kazuhiro Sera
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~decode2016
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2Atsuo Yamasaki
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会naka hide
 
AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜Yuki Hirai
 
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 OmoidenoteCouchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenotekitsugi
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 

Similaire à SESとLambdaでメールをSlackに通知してみよう (20)

Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
 
Enable Skype to favorite the messages
Enable Skype to favorite the messagesEnable Skype to favorite the messages
Enable Skype to favorite the messages
 
C++ lecture-0
C++ lecture-0C++ lecture-0
C++ lecture-0
 
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
"Hello World!" から始める Calc で LibreOffice Basic
"Hello World!" から始める Calc で LibreOffice Basic"Hello World!" から始める Calc で LibreOffice Basic
"Hello World!" から始める Calc で LibreOffice Basic
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会
 
AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜
 
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 OmoidenoteCouchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
BBBBB
BBBBBBBBBB
BBBBB
 
1MB
1MB1MB
1MB
 

Plus de Ken'ichirou Kimura

SORACOM UGの運営メンバーになってみませんか?
SORACOM UGの運営メンバーになってみませんか?SORACOM UGの運営メンバーになってみませんか?
SORACOM UGの運営メンバーになってみませんか?Ken'ichirou Kimura
 
SORACOM LTE-M Buttonならびにシミュレータについて
SORACOM LTE-M ButtonならびにシミュレータについてSORACOM LTE-M Buttonならびにシミュレータについて
SORACOM LTE-M ButtonならびにシミュレータについてKen'ichirou Kimura
 
SORACOM LTE-M Button for Enterpriseシミュレータについて
SORACOM LTE-M Button for EnterpriseシミュレータについてSORACOM LTE-M Button for Enterpriseシミュレータについて
SORACOM LTE-M Button for EnterpriseシミュレータについてKen'ichirou Kimura
 
スマートフォンでもSORACOM Arc!
スマートフォンでもSORACOM Arc!スマートフォンでもSORACOM Arc!
スマートフォンでもSORACOM Arc!Ken'ichirou Kimura
 
AWS App RunnerでASP.NET Core Webアプリケーションを動かしてみた
AWS App RunnerでASP.NET Core Webアプリケーションを動かしてみたAWS App RunnerでASP.NET Core Webアプリケーションを動かしてみた
AWS App RunnerでASP.NET Core Webアプリケーションを動かしてみたKen'ichirou Kimura
 
ひげボタンをAzure IoT Centralにつないでみる
ひげボタンをAzure IoT CentralにつないでみるひげボタンをAzure IoT Centralにつないでみる
ひげボタンをAzure IoT CentralにつないでみるKen'ichirou Kimura
 
Fukuoka Engineers Day 2021 SORACOM UG紹介
Fukuoka Engineers Day 2021 SORACOM UG紹介Fukuoka Engineers Day 2021 SORACOM UG紹介
Fukuoka Engineers Day 2021 SORACOM UG紹介Ken'ichirou Kimura
 
AWS IoT Eventsで遊んでみた
AWS IoT Eventsで遊んでみたAWS IoT Eventsで遊んでみた
AWS IoT Eventsで遊んでみたKen'ichirou Kimura
 
AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~Ken'ichirou Kimura
 
Amazon Forecastで未来を予測しよう
Amazon Forecastで未来を予測しようAmazon Forecastで未来を予測しよう
Amazon Forecastで未来を予測しようKen'ichirou Kimura
 
SORACOM-UG岡山 LT資料 2019-08-17
SORACOM-UG岡山 LT資料 2019-08-17SORACOM-UG岡山 LT資料 2019-08-17
SORACOM-UG岡山 LT資料 2019-08-17Ken'ichirou Kimura
 
あのボタンで子育て支援!
あのボタンで子育て支援!あのボタンで子育て支援!
あのボタンで子育て支援!Ken'ichirou Kimura
 
LogicAppsでお天気ボットを作ろう
LogicAppsでお天気ボットを作ろうLogicAppsでお天気ボットを作ろう
LogicAppsでお天気ボットを作ろうKen'ichirou Kimura
 
API Gateway + LambdaでLINE通知サービス構築
API Gateway + LambdaでLINE通知サービス構築API Gateway + LambdaでLINE通知サービス構築
API Gateway + LambdaでLINE通知サービス構築Ken'ichirou Kimura
 

Plus de Ken'ichirou Kimura (20)

SORACOM UG紹介
SORACOM UG紹介SORACOM UG紹介
SORACOM UG紹介
 
SORACOM UGの運営メンバーになってみませんか?
SORACOM UGの運営メンバーになってみませんか?SORACOM UGの運営メンバーになってみませんか?
SORACOM UGの運営メンバーになってみませんか?
 
SORACOM LTE-M Buttonならびにシミュレータについて
SORACOM LTE-M ButtonならびにシミュレータについてSORACOM LTE-M Buttonならびにシミュレータについて
SORACOM LTE-M Buttonならびにシミュレータについて
 
SORACOM LTE-M Button for Enterpriseシミュレータについて
SORACOM LTE-M Button for EnterpriseシミュレータについてSORACOM LTE-M Button for Enterpriseシミュレータについて
SORACOM LTE-M Button for Enterpriseシミュレータについて
 
スマートフォンでもSORACOM Arc!
スマートフォンでもSORACOM Arc!スマートフォンでもSORACOM Arc!
スマートフォンでもSORACOM Arc!
 
AWS App RunnerでASP.NET Core Webアプリケーションを動かしてみた
AWS App RunnerでASP.NET Core Webアプリケーションを動かしてみたAWS App RunnerでASP.NET Core Webアプリケーションを動かしてみた
AWS App RunnerでASP.NET Core Webアプリケーションを動かしてみた
 
ひげボタンをAzure IoT Centralにつないでみる
ひげボタンをAzure IoT CentralにつないでみるひげボタンをAzure IoT Centralにつないでみる
ひげボタンをAzure IoT Centralにつないでみる
 
Fukuoka Engineers Day 2021 SORACOM UG紹介
Fukuoka Engineers Day 2021 SORACOM UG紹介Fukuoka Engineers Day 2021 SORACOM UG紹介
Fukuoka Engineers Day 2021 SORACOM UG紹介
 
Cloudshell 20201229
Cloudshell 20201229Cloudshell 20201229
Cloudshell 20201229
 
AWS IoT Eventsで遊んでみた
AWS IoT Eventsで遊んでみたAWS IoT Eventsで遊んでみた
AWS IoT Eventsで遊んでみた
 
Soracomug 20200701
Soracomug 20200701Soracomug 20200701
Soracomug 20200701
 
AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~
 
Fukuten 20200117 up
Fukuten 20200117 upFukuten 20200117 up
Fukuten 20200117 up
 
Amazon Forecastで未来を予測しよう
Amazon Forecastで未来を予測しようAmazon Forecastで未来を予測しよう
Amazon Forecastで未来を予測しよう
 
SORACOM-UG岡山 LT資料 2019-08-17
SORACOM-UG岡山 LT資料 2019-08-17SORACOM-UG岡山 LT資料 2019-08-17
SORACOM-UG岡山 LT資料 2019-08-17
 
Serverless meetuplt 201903_up
Serverless meetuplt 201903_upServerless meetuplt 201903_up
Serverless meetuplt 201903_up
 
あのボタンで子育て支援!
あのボタンで子育て支援!あのボタンで子育て支援!
あのボタンで子育て支援!
 
LogicAppsでお天気ボットを作ろう
LogicAppsでお天気ボットを作ろうLogicAppsでお天気ボットを作ろう
LogicAppsでお天気ボットを作ろう
 
API Gateway + LambdaでLINE通知サービス構築
API Gateway + LambdaでLINE通知サービス構築API Gateway + LambdaでLINE通知サービス構築
API Gateway + LambdaでLINE通知サービス構築
 
Jawsug福岡 201606 up
Jawsug福岡 201606 upJawsug福岡 201606 up
Jawsug福岡 201606 up
 

Dernier

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Dernier (9)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

SESとLambdaでメールをSlackに通知してみよう