Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
JOYZO
PDF, PPTX
9,343 views
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携- Developers Summit 2016 【19-F-3】サイボウズ特別トラック
Software
◦
Read more
7
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 160
2
/ 160
3
/ 160
4
/ 160
5
/ 160
6
/ 160
7
/ 160
8
/ 160
9
/ 160
10
/ 160
11
/ 160
12
/ 160
13
/ 160
14
/ 160
15
/ 160
16
/ 160
17
/ 160
18
/ 160
19
/ 160
20
/ 160
21
/ 160
22
/ 160
23
/ 160
24
/ 160
25
/ 160
26
/ 160
27
/ 160
28
/ 160
29
/ 160
30
/ 160
31
/ 160
32
/ 160
33
/ 160
34
/ 160
35
/ 160
36
/ 160
37
/ 160
38
/ 160
39
/ 160
40
/ 160
41
/ 160
42
/ 160
43
/ 160
44
/ 160
45
/ 160
46
/ 160
47
/ 160
48
/ 160
49
/ 160
50
/ 160
51
/ 160
52
/ 160
53
/ 160
54
/ 160
55
/ 160
56
/ 160
57
/ 160
58
/ 160
59
/ 160
60
/ 160
61
/ 160
62
/ 160
63
/ 160
64
/ 160
65
/ 160
66
/ 160
67
/ 160
68
/ 160
69
/ 160
70
/ 160
71
/ 160
72
/ 160
73
/ 160
74
/ 160
75
/ 160
76
/ 160
77
/ 160
78
/ 160
79
/ 160
80
/ 160
81
/ 160
82
/ 160
83
/ 160
84
/ 160
85
/ 160
86
/ 160
87
/ 160
88
/ 160
89
/ 160
90
/ 160
91
/ 160
92
/ 160
93
/ 160
94
/ 160
95
/ 160
96
/ 160
97
/ 160
98
/ 160
99
/ 160
100
/ 160
101
/ 160
102
/ 160
103
/ 160
104
/ 160
105
/ 160
106
/ 160
107
/ 160
108
/ 160
109
/ 160
110
/ 160
111
/ 160
112
/ 160
113
/ 160
114
/ 160
115
/ 160
116
/ 160
117
/ 160
118
/ 160
119
/ 160
120
/ 160
121
/ 160
122
/ 160
123
/ 160
124
/ 160
125
/ 160
126
/ 160
127
/ 160
128
/ 160
129
/ 160
130
/ 160
131
/ 160
132
/ 160
133
/ 160
134
/ 160
135
/ 160
136
/ 160
137
/ 160
138
/ 160
139
/ 160
140
/ 160
141
/ 160
142
/ 160
143
/ 160
144
/ 160
145
/ 160
146
/ 160
147
/ 160
148
/ 160
149
/ 160
150
/ 160
151
/ 160
152
/ 160
153
/ 160
154
/ 160
155
/ 160
156
/ 160
157
/ 160
158
/ 160
159
/ 160
160
/ 160
More Related Content
PDF
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
PDF
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
PDF
こわくない Git
by
Kota Saito
PDF
vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~
by
Juniper Networks (日本)
PDF
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
PPTX
イケてない開発チームがイケてる開発を始めようとする軌跡
by
NTT Communications Technology Development
PDF
ネットワーク構築訓練 入門
by
株式会社 NTTテクノクロス
PDF
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
by
de:code 2017
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
こわくない Git
by
Kota Saito
vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~
by
Juniper Networks (日本)
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
イケてない開発チームがイケてる開発を始めようとする軌跡
by
NTT Communications Technology Development
ネットワーク構築訓練 入門
by
株式会社 NTTテクノクロス
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
by
de:code 2017
What's hot
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
TIME_WAITに関する話
by
Takanori Sejima
PPTX
GitLab CI/CD パイプライン
by
Tetsurou Yano
PDF
Cycloudのストレージ紹介と歴史
by
Hiroki Chinen
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
PDF
systemdを始めよう
by
Preferred Networks
PDF
Apiドキュメンテーションツールを使いこなす【api blueprint編】
by
dcubeio
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
PDF
What's new in Spring Batch 5
by
ikeyat
PDF
ネットワークエンジニアはどこでウデマエをみがくのか?
by
Yuya Rin
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
PDF
これからはじめるインフラエンジニア
by
外道 父
PPTX
kintone x AWSで超ファストシステムを作ろう 〜 AWSでkintone APIをよりよく使う〜
by
Kazuki Murahama
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
BuildKitの概要と最近の機能
by
Kohei Tokunaga
PDF
AWSからのメール送信
by
Amazon Web Services Japan
PPTX
Photon Fusionのはじめの一歩
by
聡 大久保
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
PHP の GC の話
by
y-uti
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
TIME_WAITに関する話
by
Takanori Sejima
GitLab CI/CD パイプライン
by
Tetsurou Yano
Cycloudのストレージ紹介と歴史
by
Hiroki Chinen
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
systemdを始めよう
by
Preferred Networks
Apiドキュメンテーションツールを使いこなす【api blueprint編】
by
dcubeio
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
What's new in Spring Batch 5
by
ikeyat
ネットワークエンジニアはどこでウデマエをみがくのか?
by
Yuya Rin
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
これからはじめるインフラエンジニア
by
外道 父
kintone x AWSで超ファストシステムを作ろう 〜 AWSでkintone APIをよりよく使う〜
by
Kazuki Murahama
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
BuildKitの概要と最近の機能
by
Kohei Tokunaga
AWSからのメール送信
by
Amazon Web Services Japan
Photon Fusionのはじめの一歩
by
聡 大久保
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PHP の GC の話
by
y-uti
Viewers also liked
PDF
[AWS初心者向けWebinar] AWSではじめよう、IoTシステム構築
by
Amazon Web Services Japan
PDF
kintone × IoT 連携による現場業務の改善(kintone hive)
by
JOYZO
PDF
kintone & AWSサーバレスアーキテクチャのベストプラクティス
by
JOYZO
PDF
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
by
JOYZO
PDF
kintoneで使う地図APIをあれこれ調べました
by
Mitsuaki Ando
PPTX
AWS IoTを使った双方向通信システムの実装と注意点
by
Kohei MATSUSHITA
PDF
IoTデザインパターン 2015 JAWS沖縄
by
Toshiaki Enami
PPT
[A 3]SSJSでも使える!Javascriptでオブジェクト指向プログラミング入門
by
Kazunori Tatsuki
PDF
「納品のないkintone受託開発」でお客様が価値を感じたポイントは?
by
士朗 藤原
PDF
JavaScript Basic 01
by
Yossy Taka
PDF
JavaScriptことはじめ
by
Yuki Ishikawa
PDF
AWS歴2週間で IoT に挑戦してみた。
by
Shogo Matsuda
PPTX
超入門クラウド&AWS
by
Hiroyasu Yamada
PDF
AWS IoTアーキテクチャパターン
by
Amazon Web Services Japan
PDF
Serverless Architecture on AWS(20151023版)
by
Keisuke Nishitani
PDF
JavaScript入門-基礎編
by
mactkg
PDF
これでAWSマスター!? 初心者向けAWS簡単講座
by
Serverworks Co.,Ltd.
PDF
最強オブジェクト指向言語 JavaScript 再入門!
by
Yuji Nojima
PDF
AWS Black Belt Tech シリーズ 2015 - AWS IoT
by
Amazon Web Services Japan
PDF
Spring Break Challenge 2015
by
Caroline Patrick
[AWS初心者向けWebinar] AWSではじめよう、IoTシステム構築
by
Amazon Web Services Japan
kintone × IoT 連携による現場業務の改善(kintone hive)
by
JOYZO
kintone & AWSサーバレスアーキテクチャのベストプラクティス
by
JOYZO
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
by
JOYZO
kintoneで使う地図APIをあれこれ調べました
by
Mitsuaki Ando
AWS IoTを使った双方向通信システムの実装と注意点
by
Kohei MATSUSHITA
IoTデザインパターン 2015 JAWS沖縄
by
Toshiaki Enami
[A 3]SSJSでも使える!Javascriptでオブジェクト指向プログラミング入門
by
Kazunori Tatsuki
「納品のないkintone受託開発」でお客様が価値を感じたポイントは?
by
士朗 藤原
JavaScript Basic 01
by
Yossy Taka
JavaScriptことはじめ
by
Yuki Ishikawa
AWS歴2週間で IoT に挑戦してみた。
by
Shogo Matsuda
超入門クラウド&AWS
by
Hiroyasu Yamada
AWS IoTアーキテクチャパターン
by
Amazon Web Services Japan
Serverless Architecture on AWS(20151023版)
by
Keisuke Nishitani
JavaScript入門-基礎編
by
mactkg
これでAWSマスター!? 初心者向けAWS簡単講座
by
Serverworks Co.,Ltd.
最強オブジェクト指向言語 JavaScript 再入門!
by
Yuji Nojima
AWS Black Belt Tech シリーズ 2015 - AWS IoT
by
Amazon Web Services Japan
Spring Break Challenge 2015
by
Caroline Patrick
Similar to kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
PDF
kintone devCamp Vol.5 LT資料
by
Ryu Yamashita
PDF
kintone devCamp Vol.5 LT資料
by
JOYZO
PDF
Kintone hacktokyo1(kintone ×_iot連携による現場業務の改善)
by
Cybozucommunity
PDF
kintone × IoT 連携による現場業務の改善(kintone hive)
by
Ryu Yamashita
PDF
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
by
Ryu Yamashita
PDF
kintothon 新潟
by
Ryu Yamashita
PDF
kintothon 新潟
by
JOYZO
PDF
kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」
by
Ryu Yamashita
PDF
kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」
by
JOYZO
PDF
kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」
by
Ryu Yamashita
PDF
kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」
by
JOYZO
PDF
AWSオンリーで実現するIoTクラウド基盤
by
Godai Nakamura
PDF
kintone Café 神戸 Vol.5 LT資料
by
Ryu Yamashita
PDF
kintone Café 神戸 Vol.5 LT資料
by
JOYZO
PDF
kintone Café 東京 Vol.4 ハンズオン資料(kintone & AWS API Gateway/Lambda/Machine Learning)
by
JOYZO
PDF
kintone Café 東京 Vol.4 ハンズオン資料(kintone & AWS API Gateway/Lambda/Machine Learning)
by
Ryu Yamashita
PDF
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
by
JOYZO
PDF
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
by
Ryu Yamashita
PDF
【kintone café松江#1】kintoneの可能性
by
Koji Asaga
PDF
Festa awsとkintoneでIoT
by
Yukihito Kataoka
kintone devCamp Vol.5 LT資料
by
Ryu Yamashita
kintone devCamp Vol.5 LT資料
by
JOYZO
Kintone hacktokyo1(kintone ×_iot連携による現場業務の改善)
by
Cybozucommunity
kintone × IoT 連携による現場業務の改善(kintone hive)
by
Ryu Yamashita
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
by
Ryu Yamashita
kintothon 新潟
by
Ryu Yamashita
kintothon 新潟
by
JOYZO
kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」
by
Ryu Yamashita
kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」
by
JOYZO
kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」
by
Ryu Yamashita
kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」
by
JOYZO
AWSオンリーで実現するIoTクラウド基盤
by
Godai Nakamura
kintone Café 神戸 Vol.5 LT資料
by
Ryu Yamashita
kintone Café 神戸 Vol.5 LT資料
by
JOYZO
kintone Café 東京 Vol.4 ハンズオン資料(kintone & AWS API Gateway/Lambda/Machine Learning)
by
JOYZO
kintone Café 東京 Vol.4 ハンズオン資料(kintone & AWS API Gateway/Lambda/Machine Learning)
by
Ryu Yamashita
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
by
JOYZO
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
by
Ryu Yamashita
【kintone café松江#1】kintoneの可能性
by
Koji Asaga
Festa awsとkintoneでIoT
by
Yukihito Kataoka
More from JOYZO
PDF
クラウドトレンドを先取り&実践するkintone活用 - kintone hack 2018
by
JOYZO
PDF
釧路地域クラウド交流会LT資料
by
JOYZO
PDF
kintoneで実現 リモートワークという働き方 Cloud days 2016 Tokyo
by
JOYZO
PDF
kintoneで夫婦円満になった理由 Cloud days 2016 Tokyo
by
JOYZO
PDF
Developers Summit 2016 kintone プラグイン開発ハンズオン
by
JOYZO
PDF
kintone devCamp 2015 ~ エンジニアの宴@噂のサイボウズオフィス~ 四宮LT
by
JOYZO
PDF
kintone基本プロセス編 ハンズオン秋祭り
by
JOYZO
PDF
kintone & AWS ハンズオン 秋祭り 2015_kintone JavaScript APIでkintoneのレコードデータを操作しよう!
by
JOYZO
PDF
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
by
JOYZO
PDF
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
by
JOYZO
PDF
kintoneプラグイン とことん紹介
by
JOYZO
PDF
kintone cafe 鹿児島_四宮
by
JOYZO
PDF
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」
by
JOYZO
PDF
kintone Café 新潟 Vol.2 LT
by
JOYZO
PDF
2015/05/22 kintone hive
by
JOYZO
PPTX
Cloud Days Tokyo 2015 春 「kintoneで既存のSIモデルからの脱却」
by
JOYZO
クラウドトレンドを先取り&実践するkintone活用 - kintone hack 2018
by
JOYZO
釧路地域クラウド交流会LT資料
by
JOYZO
kintoneで実現 リモートワークという働き方 Cloud days 2016 Tokyo
by
JOYZO
kintoneで夫婦円満になった理由 Cloud days 2016 Tokyo
by
JOYZO
Developers Summit 2016 kintone プラグイン開発ハンズオン
by
JOYZO
kintone devCamp 2015 ~ エンジニアの宴@噂のサイボウズオフィス~ 四宮LT
by
JOYZO
kintone基本プロセス編 ハンズオン秋祭り
by
JOYZO
kintone & AWS ハンズオン 秋祭り 2015_kintone JavaScript APIでkintoneのレコードデータを操作しよう!
by
JOYZO
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
by
JOYZO
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
by
JOYZO
kintoneプラグイン とことん紹介
by
JOYZO
kintone cafe 鹿児島_四宮
by
JOYZO
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」
by
JOYZO
kintone Café 新潟 Vol.2 LT
by
JOYZO
2015/05/22 kintone hive
by
JOYZO
Cloud Days Tokyo 2015 春 「kintoneで既存のSIモデルからの脱却」
by
JOYZO
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
1.
Twitter: @yamaryu0508 FB: https://www.facebook.com/ryu.yamashita.3 2016年2月19日 株式会社ジョイゾー/kintoneエバンジェリスト/ kintone
Café 運営事務局・東京支部 山下 竜 kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携- Developers Summit 2016 【19-F-3】サイボウズ特別トラック #devsumiF
2.
自己紹介「山下 竜」 2 2013.3 IOTとグループウェア(デヂエ)の連携を試みてkintone に出会う 2014.4 - kintoneエバンジェリストに 2014.11 kintone好きが高じて、界隈初のkintone転職 2015.2 kintone Café
運営事務局開設、事務局メンバーに 2014.5 - 2014.10 kintone Café 福岡 Vol.1 - 3を主催 現在(kintone歴2年ちょっと、AWS歴数ヶ月) 多分、 日本で唯一100%kintoneでご飯食べてる人 株式会社ジョイゾー 山下 竜(33) 福岡県大牟田市出身 「ブルーウェーブ」 という共通点
3.
kintone楽しませてもらっています! 3 Pepperによるアプリ作成 アイディアバナナ (貰いに行っただけ) NKアグリさんの 見学 kintone devCamp 2015 kintone Café
クラウドEXPO ハンズオン祭り cybozu.com developer network デブサミ
4.
会社紹介「株式会社ジョイゾー」 4 会社名 株式会社ジョイゾー 所在地 東京都江東区木場355 設立 2010年12月20日(6期目) 社員数 8名(kintoneエバンジェリスト2名) 主な事業 kintone導入支援・カスタマイズ開発 サイボウズOffice/ガルーン構築支援 案件の9割以上がkintone
5.
日本初定額制来店型システム開発「システム39」 5
6.
1Week20万円の定額kintoneカスタマイズ 6
7.
kintoneエコシステム 背景
8.
新しいSI・働き方 コミュニティ ユーザー コアサービス グローバル 他サービス 開発者/パートナー
9.
kintoneエコシステムの本質 9 作って、使って、 コミュニケーション して、楽しい! ユーザーが、 コミュニティ参加者が、 開発者/パートナーが、 サイボウズの人が、
10.
kintoneエコシステム テクニカルな切り口では・・・
11.
kintoneエコシステム 11 「kintoneエコシステム」構築の3つのテクニカルキーワード Lv.1 kintoneプラグイン kintone連携サービス サーバレスアーキテクチャ Lv.2 Lv.3 帳票 複合機 経費精算 基幹 EAI BI
12.
kintoneエコシステム 12 「kintoneエコシステム」構築の3つのテクニカルキーワード Lv.1 kintoneプラグイン kintone連携サービス サーバレスアーキテクチャ Lv.2 Lv.3 帳票 複合機 経費精算 基幹 EAI BI 最近注目しています!
13.
kintoneとAWS ナイスな相性だと 言われています!
14.
kintoneとAWS 14 • アプリケーション寄りPaaS(SaaS) • クライアントサイド/フロントエンド (UI/UX) •
行動的/解釈の共有でアクションを起こし、 コミュニケーションで業務を回す • インフラ寄りPaas(IaaS、BaaS) • サーバーサイド/バックエンド (コマンド) • 思考的/データを捌き事象を解釈する APIで 結合・補完 良質のインプット 強力なデータ処理
15.
AWS Lambdaによる サーバレスアーキテクチャ 参考・引用「Serverless Architecture
on AWS」 (http://www.slideshare.net/keisuke69/serverless-architecture-on-aws) 肝となる
16.
Lambda イベントソース kintoneエコシステム(王道っぽいAWSとkintoneの連携パターン) Amazon DynamoDB Stream Amazon SNS Amazon
S3 Amazon Kinesis AWS Lambda Amazon EC2 REST API kintone on cybozu.com ・レコード操作 ・ワークフロー操作 ・スペース操作 ・アプリ操作 REST API kintone.proxy() & Amazon API Gateway 経由もやっぱりイイ! R EST A PI プリミティブな連携 ・ホスティング ・バッチ処理 Amazon API Gateway AWS IoT 16
17.
サーバ(EC2)による処理系の例 17 データプッシュ ポーリング・ 待機・監視 データの発生状況を ポーリングチェック 処理(コード)の 実行 ・ロードバランス ・レプリケーション ・オートスケール データ
18.
サーバレス(Lambda)による処理系の例 18 データ トリガー データの発生が トリガーとして渡る ・ロードバランス ・レプリケーション ・オートスケール 処理(コード)の 実行 • インフラ構築不要 • インフラの運用管理不要 •
キャパシティ • スケール • デプロイ • 障害耐性 • モニタリニグ • ロギング • セキュリティパッチ適用 サーバレス(Lambda)の恩恵
19.
Lambda イベントソース kintoneエコシステム(王道っぽいAWSとkintoneの連携パターン) 19 Amazon DynamoDB Stream Amazon SNS Amazon
S3 Amazon Kinesis AWS Lambda Amazon EC2 REST API kintone on cybozu.com ・レコード操作 ・ワークフロー操作 ・スペース操作 ・アプリ操作 REST API kintone.proxy() & Amazon API Gateway 経由もやっぱりイイ! R EST A PI プリミティブな連携 ・ホスティング ・バッチ処理 Amazon API Gateway AWS IoT
20.
kintone & AWSサーバレスアーキテクチャの ベストプラクティス
21.
その3 その2 kintoneとAWSサーバレスアーキテクチャのベストプラクティス 21 その1 AWS各サービスを用いたkintoneへのインプット kintoneへのAPIアクセスのラッピング kintoneからAWS各サービスへのアクセス (従来IoT、kintone controller) (Webhookからの連携、kintoneデータの柔軟な公開) (kintoneデータを元にした機械学習) その4
Schedule Eventによるkintoneバッチ処理 API (定期的な集計、サービス間連携)
22.
AWS各サービスを用いたkintoneへのインプット 22 ・農業(圃場) ・見守り ・建設・工事現場 ・工場設備 ・エネルギー設備 現場 センサー ・温度 ・湿度 ・照度 ・加速度 ・騒音 センサー クラウド kintone ・通知 ・ワークフロー ・スレッド ・カスタマイズビュー 事象・データが発生する データを捌き、 事象を解釈する 解釈の共有でアクションを 起こし、コミュニケーショ ンで業務を回す IoT
23.
ルール (閾値条件) AWS各サービスを用いたkintoneへのインプット 23 X X MQTT REST API Rule Action kintone & AWSによるIoT構成例 センサー
トピック Rule Action 全データ 蓄積 業務アクションのために 即時連携が必要なデータ 通知・ワークフロー 可視化 必要なデータを 必要な分だけ取得 MQTT ルール (全データ) 認証 R ES T A P I
24.
AWS各サービスを用いたkintoneへのインプット 24 kintone controller REST API AWS
LambdaAWS IoT コントローラー IoT連携 ・レコード操作 ・ワークフロー操作 ・スペース操作 ・アプリ操作 ①ボタンを押す ②IoT情報を受け取って、 次のサービスに渡す ③受け取った情報をトリガー にkintoneにアクセス
25.
kintoneへのAPIアクセスのラッピング 25 Webhook Event REST API ①Gitのプッシュ、 課題追加等の発生 ②APIでパラメータを 渡す ③Eventでパラメータを受け取り、 APIでkintoneへ Webhook(通知等)をAPI Gatewayを経由してLambdaで捌いた内容を kintoneに連携 Webhookからのkintoneアクセス
26.
kintoneへのAPIアクセスのラッピング 26 ①kintoneデータへのアクセスをAPI Gatewayで APIを再定義 ②kintoneを意識することなく 有益な情報にアクセス kintoneに蓄積されたデータをAPI Gatewayで再定義したAPIで柔軟に公開 kintoneのデータを再定義したAPIで公開 REST
API Event REST API RESTful Service
27.
kintoneからAWS各サービスへのアクセス 27 kintoneのデータを元にしたMachine Learning AWS Lambda kintone on cybozu.com ①kintoneデータで 予測モデル作成 Amazon API
Gateway Amazon Machine Learning ②kintoneにデータ登録 ③API(クエリ)で パラメータを渡す ④Eventでパラメータを受け取り、 APIでリアルタイム予測へ REST API Event REST API ⑤予測実行後 予測値を返す ※初動のモデル作成は直接実施 (Lambda未経由) ⑥予測値をセット kintone.proxy() kintoneのデータ管理に予測機能を追加!
28.
kintoneからAWS各サービスへのアクセス 28 REST API Event
REST API Device Shadow SOAP API ①スイッチON/OFF ②API GatewayとLambdaを介して、 Device ShadowのREST APIをコール ③Device Shadowで Raspberry Piを制御 ④Raspberry PiからLAN内の Wemoにアクセス ⑤家電の電源をON/OFF
29.
Schedule Eventによるkintoneバッチ処理 29 ①Lambdaを定期起動 スケジュールイベント(定期実行)で、サービス間連携 Event REST API 連携 サービス REST API ②connpassのデータを取得 ③connpassのデータを kintoneへ ④kintoneに入ったデータを kViewerで公開
30.
kintoneエコシステム真時代の到来! なぜ今なのか? 改めて、
31.
サーバーレスアーキテクチャが 登場したから? キーワードですが、 いち要素にすぎません
32.
コミュニティ ユーザー コアサービス グローバル 他サービス 新しいSI・働き方 開発者/パートナー もう一度見返してみましょう!
33.
新しいSI・働き方 コミュニティ ユーザー コアサービス グローバル 他サービス 2011 2006 2014 2014 2015 2013 2011 開発者/パートナー
34.
それぞれの進化によりエコシステム形成の ためのピースが全て実際に埋まったから^^ 紙芝居でなく写真になり、 システムも今日実践しましょう!
35.
いよいよ本題 kintone & AWS
IoT連携 ハンズオンシナリオと構成
36.
ハンズオンモチベーション 36 kintone IoT とは? データベース プロセス 管理 コミュニケー ション ただの「データベース」ではなくて、kintoneならではの 「プロセス管理」や「コミュニケーション」の機能を活かす! ここで大切なのは 「オフィスのデータ」だけでなく 「現場のデータ」も取り込む オフィスで人が入力
現場でセンサーが送信 kintone センサークラウド 連携事例 データ送信 センサークラウド kintone レコード登録 - 通知 - ワークフロー カスタマイズビュー - グラフカスタマイズ megakiku connect (IoTアプリ) ※kintone連携機能有 - 温度・湿度・照度等のデータを蓄積 - 生産予測の精度向上 - 上のノウハウ再利用で、フランチャイズ化に伴う生産管理の効率化 NKアグリ様(東京・和歌山) (kintoneでやっていること) 温度センサー ・低下する就労人口 ・農業経営・技術の継承問題 チームワークプラットフォームの インプットとしてのIoT 引用「kintone IoT 連携による現場業務の改善」 (http://www.slideshare.net/joyzojp/kintone-iot)
37.
Rule Action 全データ 蓄積 可視化 R ES T A P I 必要なデータを 必要な分だけ取得 ルール (全データ) ルール (閾値条件) ハンズオン構成(続き) 37 X X MQTT REST API センサー トピック Rule Action 業務アクションのために 即時連携が必要なデータ 通知・ワークフロー MQTT 認証 kintone &
AWSによるIoT構成例
38.
ハンズオン構成(続き) ①BLE CentralからBLE Peripheralの センサーデータをAWS
IoT Device GWへ MQTT Publish AWS Lambda kintone on cybozu.com MQTT AWS IoT Event REST API IoT Device BLE Peripheral BLE Central ②AWS IoTルール エンジンでイベントドライブ ③Lambdaから kintoneへのレコード操作 AWS IoT/Lambdaからkintoneへの柔軟なデータ取り込みを体験 ※今回BLE CentralはRaspberry Piで代用 38
39.
Special Thanks 39 引用「TechCrunch」 (http://jp.techcrunch.com/2016/01/13/skydisc/) 最近1億円の資金調達をされた福岡の の着脱式センサ「GINGA」を AWS様のご協力でお借りして います! SKYDISC様
40.
• kintone • kintone
REST APIをNode.jsでコールする • レコード操作 • ワークフロー操作(応用編) • AWS • AWS Lambdaの設定方法 • AWS IoTの設定方法 • デバイス、ルール、ポリシー、証明書 • IoT Device • AWS IoT SDKによるMQTT Publishの記述方法 今回のハンズオンに必要とされるスキルセット(目標・成果物) 40
41.
ハンズオンの手順 ①BLE CentralからBLE Peripheralの センサーデータをAWS
IoT Device GWへ MQTT Publish AWS Lambda IoT Device ← AWS IoT ← Lambda ← kintone MQTT AWS IoT Event REST API IoT Device BLE Peripheral BLE Central ②AWS IoTルール エンジンでイベントドライブ ③Lambdaから kintoneへのレコード操作 データやプロセスの終着点側から設定すると、スムーズに進みます! 41
42.
kintone & AWS
IoT連携 ハンズオン予備知識
43.
kintone REST API
44.
kintone3大要素とREST API 44 データベース プロセス管理
コミュニケーション 充実 強化中 弱い APIからの操作も3大要素をバランスよく活用することが重要! API操作で3大機能同士を密に結合できるようになると、更に便利になると期待しています!
45.
kintone3大要素とREST API(ポータル画面) 45 スペースの 作成・メンバー更新等 アプリの作成・更新 (欲しい) (参考:「cybozu.com developer
network > kintone API」)
46.
kintone3大要素とREST API(詳細画面) 46 レコードの 取得・登録・更新・削除 添付ファイルの アップロード・ダウンロード レコードの ステータス変更 (欲しい) (参考:「cybozu.com developer
network > kintone API」)
47.
kintone REST APIの概要 47 •
kintoneアプリのレコードやスペースの操作 kintone REST APIの用途 プロトコル • HTTPSプロトコル フォーマット • JSON 文字コード • UTF-8 認証認証 • ユーザ認証(パスワード、APIトークン) • Basic認証 その他 • 同時処理レコード数100件 • API同時アクセス10件 ※GET/recordsのみ500件
48.
kintone REST APIの概要(続き) 48 •
https://{subdomain}.cybozu.com/k/v1/{command}.json【通常】 • https://{subdomain}.cybozu.com/k/guest/{space id}/v1/ {command}.json【ゲストスペース】 URI リクエストヘッダ • Host: {subdomain}.cybozu.com:443 • Content-Type:application/json • 認証情報
49.
リクエスト例(GET/records) 49 QWRtaW5pc3RyYXRvcjpwYXNzd29y GETメソッドでは Content-Typeは不要 Basic認証を使用していない場合にも 空欄で入れておく分には問題ない様子 https://{subdomain}.cybozu.com/k/v1/records.json?app={app id} 【認証方法の記述】 X-Cybozu-Authorization :
{BASE64-encoded "id:password"} Authorization : Basic {BASE64-encoded "id:password"} ※例の{base64-encoded "id:password"}はidをAdministrator、 passwordをpasswordとした場合の値としています HTTPクライアント設定画面 ※以降、Google Chromeのアドオン「POSTMAN」を利用しています
50.
リクエスト例(GET/records:続き) 50 リクエスト詳細 https://{subdomain}.cybozu.com/k/v1/records.json?app={app id} QWRtaW5pc3RyYXRvcjpwYXNzd29yZA== {subdomain}.cybozu.com {app id}
51.
リクエスト例(GET/records:続き) 51 レスポンス "{field code}": { "type"
: "{field type}", "value" : "{value}" } 各フィールドはこのように記述されます ・複数値を取りうる{value}は配列になります ・POST/PUTの際はtypeが不要です フィールドの記述
52.
リクエスト例(POST/records) 52 HTTPクライアント設定画面 QWRtaW5pc3RyYXRvcjpwYXNzd29y https://{subdomain}.cybozu.com/k/v1/records.json
53.
リクエスト例(POST/records:続き) 53 リクエスト詳細 POST/PUTメソッドではContent-Lengthが 必要(自動補完してくれない言語・ライブラ リを利用する場合は要注意) https://{subdomain}.cybozu.com/k/v1/records.json QWRtaW5pc3RyYXRvcjpwYXNzd29yZA== {subdomain}.cybozu.com
54.
リクエスト例(POST/records:続き) 54 レスポンス 【POSTのレスポンス】 ・ids(レコードID)とrevisions(リビジョン) 【PUTのレスポンス】 ・revisions(リビジョン)
55.
AWS IoT
56.
AWS IoTの概要 56 引用「AWS IoTの仕組み」 (https://aws.amazon.com/jp/iot/how-it-works/) •
DEVICE GATEWAY • メッセージブローカー、MQTT/HTTP1.1 • AUTHENTICATION & AUTHORIZATION • TLS1.2、IAM、SigV4、Cognito • AWS IoT DEVICE SDK • Embedded C、JavaScript、Arduino Yún • RULES ENGINE • SQLライクな記述、AWSサービスへのアクション • DEVICE SHADOWS • オフライン時のメッセージ受信 • REGISTRY • メタデータ管理参考「Everything You Want to Know About AWS IoT」 (http://www.slideshare.net/AmazonWebServices/mbl205-new-everything-you-want-to-know-about-aws-iot)
57.
AWS IoTの概要(DEVICE GATEWAY) 57
58.
AWS IoTの概要(DEVICE GATEWAY・続き) 58 メッセージブローカー Publish Subscribe MQTTイメージ
59.
AWS IoTの概要(DEVICE GATEWAY・続き) 59 メッセージブローカー POST GET RESTイメージ
60.
AWS IoTの概要(AUTHENTICATION &
AUTHORIZATION) 60 認証・アクセス許可
61.
AWS IoTの概要(AUTHENTICATION &
AUTHORIZATION・続き) 61 認証・アクセス許可 X X ポリシー 証明書証明書 モノ
62.
AWS IoTの概要(RULE ENGINE) 62 ルールエンジン ルールエンジンアクション
63.
AWS IoTの概要(RULE ENGINE・続き) 63 ルールエンジン SQLライクな記述が可能なフィルタ 例:
SELECT * FROM things/thing-2/color' WHERE color = red メッセージ交換(文字列操作、算術演算等)
64.
AWS IoTの概要(RULE ENGINE・続き) 64 ルールエンジンアクション 受け取ったメッセージの処理 パブリッシュ
データ格納 Lambda関数呼出 テーブル操作 パブリッシュ リパブリッシュ
65.
AWS IoTを中心にハンズオン構成を見る 65 X X MQTT REST API ①証明書で紐ついたモノから メッセージ(データ)をPublish Event ②受け取ったメッセージを Topic等でフィルタ ③受け取ったメッセージを Lambdaで処理してkintoneへ連携 MQTT { "temp": "14", "humidity":
"80", "time": "2016-02-19T12:23:56+09:00", "device": "Lambda test" } メッセージ kintoneの レコード
66.
ハンズオンの設定概要 66 X X MQTT REST API Event 【kintone】 ①アプリ作成 ②APIトークンの取得 MQTT 【AWS Lambda】 ①eventで送られてきたメッセージを 処理して、kintoneに連携するLambda 関数の作成 【AWS IoT】 ①モノの作成 ②ルールの作成 ②ポリシーの作成 ④証明書の生成 ⑤証明書とモノの紐付け ⑥証明書とポリシーの紐付け 【IoT
Device】 ①BLEによるセンサー値取得 ②AWS IoT Device SDKによる センサー値のMQTT Publishの設定
67.
ハンズオン本編
68.
サンプルダウンロード 68 ①「https://github.com/joyzo/ devsumi-2016-19F3」にアクセス ②「Download ZIP」をクリックして、 ファイル一式をダウンロード
69.
kintoneアプリの設定
70.
kintoneアプリの設定(テンプレートからのアプリ作成) ①「ハンズオンスペース」をクリック して、個別スペースに移動 70
71.
kintoneアプリの設定(テンプレートからのアプリ作成・続き) ②アプリ作成の「+」をクリック ③「テンプレートから 選ぶ」をクリック ④「アプリを作成する」をクリック ⑤今回1つのアプリが追加される 71
72.
kintoneアプリの設定(インシデント管理アプリの概要) 72 フォーム項目 フィールド の種類 フィールド コード 測定日時 日時 time センサー名
文字列(1行) device 温度 数値 temp 湿度 数値 humidity IoT DeviceからAWS IoT/Lambdaを経由して登録されるセンサーデータ用のフォームを準備
73.
kintoneアプリの設定(インシデント管理アプリの概要・続き) 73 フォーム項目 フィールド の種類 フィールド コード タイトル 文字列(1行) タイトル 優先度
ドロップダウン 優先度 内容 文字列(複数 行) 内容 対応期限 日付 対応期限 対応者 ユーザー選択 対応期限 センサーデータをトリガーに発生する業務に関連するフォームを準備
74.
kintoneアプリの設定(インシデント管理アプリのID確認) 74 ①アプリURLの「/k/」の後ろ の数値(アプリID)をメモ
75.
kintoneアプリの設定(インシデント管理アプリのAPIトークン取得) 75 ②「アプリの設定を変更」 をクリック ①「・・・」をクリック
76.
kintoneアプリの設定(インシデント管理アプリのAPIトークン取得・続き) 76 ③「詳細設定」をクリックして展開 ④「APIトークン」をクリック
77.
kintoneアプリの設定(インシデント管理アプリのAPIトークン取得・続き) 77 ⑤「生成する」をクリック ⑥「レコード閲覧」、「レコード追加」、「レコード編集」、 「レコード削除」にチェック ⑦生成されたAPIトークンをメモ ⑧「保存」をクリック
78.
kintoneアプリの設定(インシデント管理アプリのAPIトークン取得・続き) 78 ⑨「設定完了」をクリック ⑩「OK」をクリック
79.
Lambda・関数の設定 AWS IoTのルールエンジンからのアクセ本をトリガー にkintoneのレコードを操作するLambda関数の設定
80.
Lambda・関数の設定 80 ①「Lambda」をクリック ※今回は「東京(ap-northeast-1)」リージョン
81.
Lambda・関数の設定(続き) 81 ②(Lambda利用が初めてでなければ) 「Create a Lambda
function」をクリック ②(Lambda利用が初めてならば) 「Get Started Now」をクリック
82.
Lambda・関数の設定(続き) 82 ③今回は「Skip」をクリック
83.
Lambda・関数の設定(続き) 83 ④「Name」に今回のLambda関数の名前 (例: kintone-iot)を記入 ⑤「Runtime」は「Node.js」 を選択しておく ⑦「APP_ID」の値をメモ しておいたkintoneアプリ のIDで差し替える ⑥サンプルの「./nodejs/ kintone_iot.js」を貼付け ※日本語は貼付け時に文字化けし、 不具合の原因になることがある ※全選択して貼り付けると既存の ソースを残して追加されることが ある ⑧「API_TOKEN」の値を メモしておいたkintoneア プリのAPI Tokenで差し 替える
84.
Lambda・関数の設定(続き) 84 ⑨「Handler」はそのまま ※ZIPコードをアップロードする際にファイル名と同一 である必要がある(index.handler → index.js) ⑪基本実行権限を持つIAMロールを新 しく作る場合には「許可」をクリック ⑬「Next」をクリック ⑩「Role」は基本実行権限を持つ既存ロー ルか「Basic
execution role」を選択 ⑫「Memory」を512、「Timeout」を5で設定 ※ポップアップの許可が必要な場合があります
85.
Lambda・関数の設定(続き) 85 ⑭「Create function」をクリック
86.
Lambda・関数の設定(続き) 86 ⑮Lambda関数の作成完了 ⑯「Test」をクリック ⑰サンプルの「./json/sample_event.json」 を貼付け ※IoT DeviceがPublishしてくるデータ ⑱「Save and
test」をクリック して、テスト実行
87.
Lambda・関数の設定(続き) 87 ⑲テスト実行が成功すると「Execution result」が 「succeeded」になり、kintoneのレスポンスが出力される
88.
• event(PublishされたメッセージがAWS IoT経由で渡される)デー タを用いてkintoneへのレコード登録を行う イベントコード「kintone_iot.js」の概要 88
89.
// Libraries var https
= require('https'); // HTTPS request // constant parameters const KINTONE_HOST = 'kintone-iot.cybozu.com'; const APP_ID = 3; const API_TOKEN = 'Tm8C8ziqgf7fUx2XdvAAIu1PJINczwPHVntFj9ON'; イベントコード「kintone_iot.js」の部分解説 89 HTTPSリクエストを行う標準モジュール Node.jsのモジュール(1行目∼) 設定値(定数)(6行目∼) アプリ毎の固有の情報(今回の編集対象)
90.
// get options
to access to kintone REST API var getOptions = function(path, method) { return { hostname: KINTONE_HOST, port: 443, path: path, method: method, secureProtocol: 'SSLv3_method', headers: { 'X-Cybozu-API-Token': API_TOKEN } }; }; イベントコード「kintone_iot.js」の部分解説(続き) 90 ヘッダ情報は認証情報のみセットしておく (URL渡しのGET/records等以外はContent- Type: application/jsonを別途付加) HTTPSリクエスト時に必要な情報を取得する関数(9行目∼)
91.
// regist record
to kintone var postRecord = function(event, callback) { console.log('start postRecord'); // set request body var params = { "app": APP_ID, "record": { "time": { "value": event.time || event.timestamp || "" }, "device": { "value": event.device || "devsumi_device" }, "temp": { "value": event.temp || "" }, "humidity": { "value": event.humidity || "" } } }; var json = JSON.stringify(params); // set request headers var options = getOptions('/k/v1/record.json', 'POST'); options.headers['Content-Type'] = 'application/json'; // access to kintone REST API var req = https.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function(chunk) { console.log('BODY: ' + chunk); if (res.statusCode === 200) { callback(null, JSON.parse(chunk)); } }); }); req.on('error', function(e) { console.log('problem with request: ' + e.message); callback(e.message); }); req.write(json); req.end(); }; イベントコード「kintone_iot.js」の部分解説(続き) 91 eventを処理してレコード登録を行う関数(24行∼) eventから登録するrecordを作成 「Content-Type: application/json」を リクエストヘッダに付加 POST/recordをコール
92.
Lambda関数のテスト起動で kintoneにレコード登録する動きの確認
93.
ここまでの設定による動き ①BLE CentralからBLE Peripheralの センサーデータをAWS
IoT Device GWへ MQTT Publish AWS Lambda MQTT AWS IoT REST API IoT Device BLE Peripheral BLE Central ②AWS IoTルール エンジンでイベントドライブ ③Lambdaから kintoneへのレコード操作 Event (設定済みの範囲) 先ほどのテスト 93
94.
イベント履歴の確認 94 ①「Monitoring」をクリックする ②直近24時間の履歴を表示 ③詳細をCloudWatchで 確認するためにクリック
95.
イベント履歴の確認(続き) 95 ④直近のログストリームをクリック ⑤テストで挿入したeventデータ ⑥kintoneのレスポンスが表示され正常終了
96.
kintoneのレコード登録確認 96 ⑳Lambdaのテストで登録されたレコード
97.
AWS IoTの設定 モノ周辺の設定を行い、MQTT Publish されたデータをLambdaに渡す
98.
AWS IoTの設定 98 ①「AWS IoT」をクリック ※今回は「東京(ap-northeast-1)」リージョン
99.
AWS IoTの設定 99 ②(AWS IoT利用が初めてでなければ) 「Create
a resource」をクリック ②(AWS IoT利用が初めてならば) 「Get started」をクリック
100.
AWS IoTの設定(モノの作成) 100 ④「Name」に作成するモノの名前 (例: kintone-iot)を記入 ③「Create
a thing」を選択 ⑤「Create」をクリック
101.
AWS IoTの設定(モノの作成・続き) 101 ⑦Shadowのエンドポイント 等が表示される ⑥「View thing」をクリック
102.
AWS IoTの設定(ルールの作成) 102 ⑧「Create a
rule」を選択 ⑨「Name」にルール名 (例: kintone_iot)を記入
103.
AWS IoTの設定(ルールの作成) 103 ⑨「Attribute」に「*」を記入 ⑪「Choose an
action」では 「Insert this message into a code function and execute it (Lambda) 」を選択 ⑩「Topic filter」に「devsumi/ginga」を記入
104.
AWS IoTの設定(ルールの作成・続き) 104 ⑫「Function name」は先程設定した 「kintone-iot」を記入・選択 ⑬「Add
action」をクリック ⑮「Create」をクリック ⑭「Lambda Action」 が追加される
105.
AWS IoTの設定(ルールの作成・続き) 105 ⑰先ほど設定したクエリ情報 等が表示される ⑯「View rule」をクリック
106.
AWS IoTの設定(ポリシーの作成・続き) 106 ⑱「Create a
policy」を選択 ⑲「Name」にポリシー名 (例: kintone-iot)を記入 「Resource」には「*」を記入 「Allow」にチェック 「Add statement」をクリック ⑳「Action」には 「iot:*」を記入
107.
AWS IoTの設定(ポリシーの作成・続き) 107 「Create」をクリック 「Statement 1」が追加される
108.
AWS IoTの設定(ポリシーの作成・続き) 108 設定されたポリシー情報が 表示される 「View policy」をクリック
109.
AWS IoTの設定(証明書の作成) 109 「Create a
certificate」を選択 「1-Click certificate create」をクリック
110.
AWS IoTの設定(証明書の作成・続き) 110 生成された3つの証明書をダウンロード 【ファイル名(今回の命名ルール)】 サンプルの「./ginga/」で「./ginga/cert」フォルダ を作成し、その下に保存 ・public key
-> public.pem ・private key -> private.pem ・certificate -> certificate.pem ※「Download」の部分が「Show」となっている方は コピペしてテキストエディタで保存してください。
111.
AWS IoTの設定(証明書とポリシーの紐付け) 111 先程作成した証明書に「レ(チェック)」を入れる 「Attach a
policy」をクリック 先程作成したポリシー名を記入 「Attach」をクリック
112.
「Attach a thing」をクリック AWS
IoTの設定(証明書とモノの紐付け) 112 選択中の証明書にはチェックのまま 先程作成したモノの名前を記入 「Attach」をクリック
113.
AWS IoT(証明書のアクティベーション) 113 選択中の証明書にはチェックのまま 「Activate」をクリック
114.
AWS IoT(証明書のアクティベーション・続き) 114 「ACTIVE」に変わる
115.
AWS IoTの設定(再掲:AUTHENTICATION &
AUTHORIZATION) 115 認証・アクセス許可 X X ポリシー 証明書証明書 モノ 証明書のアタッチ状況 モノポリシー
116.
AWS IoTの設定(ルート証明書の取得) 116 Symantecからルート証明書を取得 コピペもしくはcURLコマンド等で他の証明書と同じフォルダに 「rootCA.pem」として保存する ※cURLコマンドはサンプルの「howto_curl_rootCA.txt」に記載
117.
AWS IoTへのPublishで kintoneにレコード登録する動きの確認
118.
ここまでの設定による動き AWS Lambda AWS IoT REST API IoT Device BLE Peripheral BLE Central ②AWS
IoTルール エンジンでイベントドライブ ③Lambdaから kintoneへのレコード操作 Event (設定済みの範囲) MQTT Publishテスト ①BLE CentralからBLE Peripheralの センサーデータをAWS IoT Device GWへ MQTT Publish MQTT 118
119.
MQTT Publishの確認(エミュレータの準備) 119 ①「https://github.com/yamaryu0508/ aws-iot-publisher」にアクセス ②「Download ZIP」をクリックして、 ファイル一式をダウンロード ※ハンズオンではUSBにてアプリを配布
120.
MQTT Publishの確認(エミュレータの準備・続き) 120 / ┣ AWS
IoT Publisher-darwin-x64/ (Mac用) ┃ ┗ AWS IoT Publisher.app (エミュレータアプリ) ┣ AWS IoT Publisher-win32-ia32/ (Windows32bit用) ┃ ┗ AWS IoT Publisher.exe (エミュレータアプリ) ┗ AWS IoT Publisher-win32-x64/ (Windwos64bit用) ┗ AWS IoT Publisher.exe (エミュレータアプリ) レポジトリの中身(パッケージ済アプリ部分のみ) ③自分の環境に適したアプリを起動
121.
MQTT Publishの確認(エミュレータによるPublish) ①「Asia Pacific
(Tokyo)[ap-northeast-1]」を選択 ②先程設定した「devsumi/ginga」を記入 ③先程ダウンロードした「rootCA.pem」を選択 ④先程ダウンロードした「certificate.pem」を選択 ⑤先程ダウンロードした「private.pem」を選択 ⑥サンプルの「sample_event.json」 をkey-value形式で入力 ⑦「Publish to AWS IoT !」をクリック 121
122.
MQTT Publishの確認(エミュレータによるPublish・続き) 122 ⑧AWS IoTにConnectして メッセージをPublish 出典:
https://github.com/yamaryu0508/aws-iot-publisher
123.
kintoneのレコード登録確認 123 ⑧MQTT Publishのテストで登録されたレコード ※Lambda-kintone間はチェック済みのため、 LambdaのCloudWatch Logsの確認は省略
124.
AWS IoT内のMQTT Clientを使った確認(続き) 124 ①「MQTT
Client」を選択
125.
AWS IoT内のMQTT Clientを使った確認(続き) 125 ②「Clinet
ID」を入力 (例: devsumi-test) ③「Connect」をクリック
126.
AWS IoT内のMQTT Clientを使った確認(続き) 126 ④「Connection」が 「Connected」になる
127.
AWS IoT内のMQTT Clientを使った確認(続き) 127 ⑤「Publish
to topic」をクリック ⑥サンプルの「./json/sample_event.json」 を貼付け ※IoT DeviceがPublishしてくるデータ ⑦「device」を「MQTT Client test」等 わかりやすいものにしておく ⑧「Publish」をクリック
128.
AWS IoT内のMQTT Clientを使った確認(続き) 128 ⑨「Publish」に成功すると 「Success!」が表示される
129.
kintoneのレコード登録確認 129 ⑩MQTT Clientからのテストで登録されたレコード ※Lambda-kintone間はチェック済みのため、 LambdaのCloudWatch Logsの確認は省略
130.
IoT Deviceの設定
131.
IoT Device周辺の詳細 131 BLE MQTT Publish 温湿度センサー (BLE Peripheral) GW (BLE
Central) AWS IoT ここでの設定対象 Peripheralから送られてくるセンサー値を取得して、 AWS IoTにメッセージ(データ)をパブリッシュする BLE Centralの動き IoT Device周辺の構成
132.
IoT Device周辺の詳細(続き) 132 BLE MQTT Publish センサー (BLE Peripheral) GW (BLE
Central) AWS IoT - Periferalの値を読み取るNode.jsコーディング - AWS IoTアクセス用の証明書のセット - AWS IoT SDKを用いたAWS IoTアクセス用のNode.jsコーディング BLE Centralの設定内容
133.
IoT Deviceの設定 133 {kintoneのログインID(例: user1)}/ ┣
ginga_iot.js (センサーの値を取得してPublishするメインのNode.jsファイル) ┣ node_module/ (Node.jsのモジュール群) ┃ ┣ aws-iot-device-sdk/ (証明書を伴うAWS IoTへのアクセス) ┃ ┣ noble/ (BLE Centralの作成) ┃ ┗ moment/ (日時操作) ┗ cert/ (証明書ファイル群) ┣ rootCA.pem (ルート証明書) ┣ certificate.pem (証明書) ┗ private.pem (秘密鍵) BLE Centralのフォルダ構成 フォルダ名を「ginga/」からkintoneの ログインIDに各自修正しておく
134.
// constant parameters const
DEVICE_NAME = 'dev1'; const TOPIC = "devsumi/ginga"; // MQTT TOPIC const MY_ADDRESS = "f3:2f:85:98:69:ce"; // MAC Address of BLE peripheral, "GINGA" const REGION = 'ap-northeast-1'; IoT Deviceの設定 134 ginga_iot.jsの編集箇所(6行目∼) ①Peripheralの「Dev**」を記入 ②Peripheralのアドレスを記入
135.
• アドレス指定したPeripheralからのadvertisementがあった際にセ ンサーの値を取得する • 証明書を紐付けて、取得したセンサーの値をAWS
IoTにPublishす る • 「AWS IoTのリージョン」、「証明書のパス」、「Topic」の指 定が必要 Centralコード「ginga_iot.js」の概要 135
136.
// libraries var noble
= require('noble'); // BLE central module var awsIot = require('aws-iot-device-sdk'); // AWS IoT SDK var moment = require('moment'); // Date library Centralコード「ginga_iot.js」の部分解説 136 Node.jsのモジュール群(1行目∼) // constant parameters const DEVICE_NAME = 'dev1'; const TOPIC = "devsumi/ginga"; // MQTT TOPIC const MY_ADDRESS = "f3:2f:85:98:69:ce"; // MAC Address of BLE peripheral, "GINGA" const REGION = 'ap-northeast-1'; 設定値(定数)(6行目∼) AWS IoTルールエンジンで設定したTopicと同じ値 AWS IoTの設定を行った東京リージョン
137.
// device config. var
device = awsIot.device({ keyPath: './certs/private.pem', certPath: './certs/certificate.pem', caPath: './certs/rootCA.pem', clientId: DEVICE_NAME, region: REGION }); Centralコード「ginga_iot.js」の部分解説(続き) 137 AWS IoT Device SDKにおけるdeviceオブジェクトの初期化(12行目∼) 証明書のパス
138.
// parse &
publish temperature/humidity data function publish_ginga(data) { // parse temperature data var t1 = parseInt(data[0]); var t2 = parseInt(data[1]) / 100; var temp_value = t1 + t2; // temperature value // parse humidity data var h1 = parseInt(data[2]); var h2 = parseInt(data[3]) / 100; var humidity_value = h1 + h2; // humidity value // create & publish message var message = { "device": DEVICE_NAME, "sensor": 'ginga', "time": moment().format(), "temp": temp_value, "humidity": humidity_value }; message = JSON.stringify(message); console.log("# Publish: " + message); device.publish(TOPIC, message); // publish } Centralコード「ginga_iot.js」の部分解説(続き) 138 GINGAのデータをパースしてAWS IoTにPublishする関数(48行目∼) 温度をパース 湿度をパース Publishするメッセージ AWS IoTへのPublish
139.
// event for
BLE peripheral "discover" noble.on('discover', function(peripheral) { noble.stopScanning(); if (MY_ADDRESS == peripheral.address) { var serviceUUID = peripheral.advertisement.serviceUuids[0]; console.log('# Service UUID: ' + serviceUUID); peripheral.connect(function(error) { if (error) console.log('# Connect error: ' + error); console.log('# Connected to ' + peripheral.uuid); peripheral.discoverServices([serviceUUID], function(error, services) { if (error) console.log('## discoverServices error: ' + error); console.log('## services.length: ' + services.length); var service = services[0]; service.discoverCharacteristics(null, function(error, characteristics) { if (error) console.log('## discoverCharacteristics error: ' + error); console.log('## characteristics.length: ' + characteristics.length); characteristics[0].notify(true, function(error) { if (error) console.log('## notify error: ' + error); setInterval(function() { characteristics[0].read(function(error, data) { if (data) { // publish_humidity(data); // publish humidity // publish_temp(data); // publish temperature publish_ginga(data); // publish GINGA data } }); }, 10 * 1000); // per 10sec }); }); } ); }); } else { console.log("# No my device is discovered"); } }); Centralコード「ginga_iot.js」の部分解説(続き) 139 Peripheralからのadvertisement受信時の処理(80行目∼) BLE Peripheralからのadvertisementを受けて データが取れたら、Publishする関数を呼ぶ nobleモジュールでBLEのadvertisement を受けた時のイベント advertisementが指定したアドレスからの 時にはデータ取得のために処理続行
140.
メインファイルと証明書を Centralに設置 各自のファイルセット → kintone
→ BLE Central SCPコマンドも良いのですが、ファイルの受け渡しのためにkintoneを利用します
141.
{kintoneのログインID(例: user1)}/ ┣ ginga_iot.js ┣
node_module/ ┃ ┣ aws-iot-device-sdk/ ┃ ┣ noble/ ┃ ┗ moment/ ┗ cert/ ┣ rootCA.pem ┣ certificate.pem ┗ private.pem kintoneにファイルセットを保存 141 圧縮して、kintoneの「ユーザー 管理」アプリに保存 BLE Centralのフォルダ
142.
kintoneに保存したファイルセットをCentralにデプロイ 142 $ curl -X
GET "https://kintone-iot.cybozu.com/k/v1/file.json?fileKey={ファイルキー}" -H "X-Cybozu-Authorization:{「ID:Passwrod」のbase64エンコード値}" -o ./{kintoneのログインID(例: user1)}.zip ファイル取得のコマンド $ unzip ./{kintoneのログインID(例: user1)}.zip ファイルセットの展開 今回は代表何名か分を実施させていただきますm(__)m
143.
CentralからMQTT Publish
144.
Peripheralの電源を入れる 144 下に倒れている状態 (バックの枠に合った状態) 上に倒れている状態 (バックの枠に合ってない状態) OFF ON ONに!
145.
Centralでコードを実行 145 $ node ginga_iot.js PeripheralのデータをPublish
146.
kintoneのレコード登録確認 146 IoT DeviceからAWS IoT/Lambda経由で 登録されたレコード
147.
おさらいとまとめ
148.
今回やった内容のおさらい 148 X X MQTT REST API ①証明書で紐ついたモノから メッセージ(データ)をPublish Event ②受け取ったメッセージを Topic等でフィルタ ③受け取ったメッセージを Lambdaで処理してkintoneへ連携 MQTT { "temp": "14", "humidity": "80", "time":
"2016-02-19T12:23:56+09:00", "device": "Lambda test" } メッセージ kintoneの レコード
149.
今回行った設定のおさらい 149 X X MQTT REST API Event 【kintone】 ①アプリ作成 ②APIトークンの取得 MQTT 【AWS Lambda】 ①eventで送られてきたメッセージを 処理して、kintoneに連携するLambda 関数の作成 【AWS IoT】 ①モノの作成 ②ルールの作成 ②ポリシーの作成 ④証明書の生成 ⑤証明書とモノの紐付け ⑥証明書とポリシーの紐付け 【IoT
Device】 ①BLEによるセンサー値取得 ②AWS IoT Device SDKによる センサー値のMQTT Publishの設定
150.
• AWS IoT/LambdaでkintoneへのIoTインプットが容易に実現でき ました •
今回はデータ連携のハンズオンでしたが、kintoneはチームワークプ ラットフォームなので、ただのDBやビューワだけでなく、IoTイン プットからのワークフロー、コミュニケーション、そしてアクション につなげる利用がkinotne IoT活用の鍵となります まとめ 150
151.
ハンズオンは以上です
152.
ハンズオン後片付け(Lambda関数の削除) 152 ①今回作成した関数にチェック ②「Delete function」をクリック ③「Delete」をクリック
153.
ハンズオン後片付け(AWS IoT証明書の削除) 153 ①証明書のリンクをクリック ②ポリシーにチェック ③モノにチェック ④「Detach」をクリック ⑤「Detach」をクリック ※「Detach」、「Deactive」後に、 「Delete」が可能になる
154.
ハンズオン後片付け(AWS IoT証明書の削除・続き) 154 ⑥証明書にチェック ⑧「Deactive」をクリック ⑦「Deactive」をクリック
155.
ハンズオン後片付け(AWS IoT証明書の削除・続き) 155 ⑨証明書にチェックのまま ⑪「Delete」をクリック ⑩「Delete」をクリック
156.
ハンズオン後片付け(AWS IoTポリシーの削除) 156 ③「Delete」をクリック ②「Delete」をクリック ①ポリシーにチェック
157.
ハンズオン後片付け(AWS IoTモノの削除) 157 ③「Delete」をクリック ②「Delete」をクリック ①モノにチェック
158.
ハンズオン後片付け(AWS IoTルールの削除) 158 ③「Delete」をクリック ②「Delete」をクリック ①ルールにチェック
159.
本日の内容は以上です
Download