SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
The Go gopher was designed by Renée French.
The gopher stickers was made by Takuya Ueda.
Licensed under the Creative Commons 3.0 Attributions license.
Cloud Functionsの紹介
2017/04/15(土)
Google Cloud Next’17 報告会 @福岡
自己紹介
メルカリ/ソウゾウ
上田拓也
twitter: @tenntenn
■ コミュニティ活動
GCPUG Tokyo, Goビギナーズ, golang.tokyo,
Go Conference
■ 業務
GAE/Goでメルカリアッテを作ってます
GoやGCPコミュニティを盛り上げる仕事
Gopherを描く仕事(LINEスタンプ)
2
参考にしたセッション
● Serverless computing options with Google
Cloud Platform
● Building serverless applications with Google
Cloud Functions
● Google Cloud Functions and Firebase
● Extending the Google Assistant with Actions
on Google
3
※このスライド内でセッションで使われている図などを使ってます
4
Cloud Functions
オープンベータ!
https://cloud.google.com/functions/
Cloud Functions
5
● サーバレス
● イベント駆動
● ステートレス
● アプリではなく単一の関数
● Node.js
関数の種類
■ HTTP functions
● HTTPSのリクエストがトリガー
● 同期実行
■ Background functions
● Cloud Pub/Sub
● Cloud Storage
● 非同期実行
6
HTTP functions
■ ExpressJSのreqとresを用いる
7
HTTP functionsのデプロイ
■ アップロードするバケットとトリガーを指定
8
Background functions
■ 処理が終わったらcallbackを呼ぶ
9
Promiseも使える
Background functionsのデプロイ
10
依存関係を記述する
■ package.jsonに書くだけ
11
npm install
はCloud上で行われる
ログ
■ ログはStackdriver Loggingへ
● console.logを使う
■ エラーはStackdriver Errorsへ
● キャッチされない例外はエラーへ
12
モニタリング
■ 呼び出し数
● 関数の呼び出し回数
■ 実行時間
● 1回の呼び出しあたりの実行時間
■ メモリ使用量
● 1回の呼び出しあたりのメモリ使用量
13
Cloud Functionsの実行環境
14
(Googleサービスは自動で認証される)
ローカルの開発環境
■ エミュレータが用意されている(アルファ)
● https://github.com/GoogleCloudPlatform/cloud-functi
ons-emulator/
15
デモ
16
Cloud Functions デモ
17
YouTubeで見る
ローカル開発環境 デモ
18
YouTubeで見る
Image Magickのデモ
■ 画像をjpegに変換する
19
参考:https://github.com/firebase/functions-samples/tree/master/convert-images
PNG画
像
JPG
画像
UP 通知&DL
UP
変換
PNG→JPG
slackのslash commandのデモ
20
ユーザ
/hi Webhook
hellohello
参考:https://cloud.google.com/functions/docs/tutorials/slack
API.AIを使ったデモ
■ API.AI
● botなどに使う会話型AIを作るサービス
21
参考:https://github.com/actions-on-google/apiai-webhook-template-nodejs
22
Thank you!
twitter: @tenntenn
Qiita: tenntenn
connpass: tenntenn

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
 
Go Friday 傑作選
Go Friday 傑作選Go Friday 傑作選
Go Friday 傑作選
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発
 
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使うGAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
 
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろうGo mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発
 
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
 
Go初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろうGo初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろう
 
Goだけでモバイルアプリを作る
Goだけでモバイルアプリを作るGoだけでモバイルアプリを作る
Goだけでモバイルアプリを作る
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
GAE/Goとsyncパッケージ
GAE/GoとsyncパッケージGAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
 
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
 
GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
 
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
過去に自作したGoプロダクトの紹介 - Goオールスターズ
過去に自作したGoプロダクトの紹介 - Goオールスターズ過去に自作したGoプロダクトの紹介 - Goオールスターズ
過去に自作したGoプロダクトの紹介 - Goオールスターズ
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 

Destaque

Destaque (13)

Apache 2.4 新機能 “SSL編”
Apache 2.4 新機能 “SSL編”Apache 2.4 新機能 “SSL編”
Apache 2.4 新機能 “SSL編”
 
HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会
 
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
 
Go静的解析ハンズオン
Go静的解析ハンズオンGo静的解析ハンズオン
Go静的解析ハンズオン
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
 
Static Analysis in Go
Static Analysis in GoStatic Analysis in Go
Static Analysis in Go
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
 
うしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードwうしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードw
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
 
Go入門
Go入門Go入門
Go入門
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGo
 
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
 

Semelhante a Cloud functionsの紹介

Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。
Eiichi Tsuru
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介
Kenichi Kambara
 
GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ | エピック・ゲームズ・ジャパ...
GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ |  エピック・ゲームズ・ジャパ...GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ |  エピック・ゲームズ・ジャパ...
GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ | エピック・ゲームズ・ジャパ...
Game Tools & Middleware Forum
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
 

Semelhante a Cloud functionsの紹介 (20)

Gcpug in fukuoka!20150411 #gcpug
Gcpug in fukuoka!20150411 #gcpugGcpug in fukuoka!20150411 #gcpug
Gcpug in fukuoka!20150411 #gcpug
 
gcp ja night #27 Google Cloud Endpoints with Golang
gcp ja night #27 Google Cloud Endpoints with Golanggcp ja night #27 Google Cloud Endpoints with Golang
gcp ja night #27 Google Cloud Endpoints with Golang
 
Google I/O 2021 Flutter 全体報告
Google I/O 2021 Flutter 全体報告Google I/O 2021 Flutter 全体報告
Google I/O 2021 Flutter 全体報告
 
Android6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみたAndroid6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみた
 
GCP でも Serverless!!
GCP でも Serverless!!GCP でも Serverless!!
GCP でも Serverless!!
 
Google VR - Google I/O Extended 報告会 2016 in 関西 -
Google VR - Google I/O Extended 報告会 2016 in 関西 -Google VR - Google I/O Extended 報告会 2016 in 関西 -
Google VR - Google I/O Extended 報告会 2016 in 関西 -
 
Google VRと開発ノウハウ
Google VRと開発ノウハウGoogle VRと開発ノウハウ
Google VRと開発ノウハウ
 
Cardboard勉強会
Cardboard勉強会Cardboard勉強会
Cardboard勉強会
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
 
Google I/O 2013に行ったついでにラスベガス戦果報告
Google I/O 2013に行ったついでにラスベガス戦果報告Google I/O 2013に行ったついでにラスベガス戦果報告
Google I/O 2013に行ったついでにラスベガス戦果報告
 
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidDroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for Android
 
Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告
 
Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。
 
DaydreamではじめるVR
DaydreamではじめるVRDaydreamではじめるVR
DaydreamではじめるVR
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介
 
GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ | エピック・ゲームズ・ジャパ...
GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ |  エピック・ゲームズ・ジャパ...GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ |  エピック・ゲームズ・ジャパ...
GTMF 2015: UE4で開発環境は次なるステージへ~才能のコラボーレーションでクリエイティビティはさらなる高みへ~ | エピック・ゲームズ・ジャパ...
 
Google Gadgetsを看取る
Google Gadgetsを看取るGoogle Gadgetsを看取る
Google Gadgetsを看取る
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
モバイルVR「Daydream」でVRの世界にふれてみる
モバイルVR「Daydream」でVRの世界にふれてみるモバイルVR「Daydream」でVRの世界にふれてみる
モバイルVR「Daydream」でVRの世界にふれてみる
 
[Io2012]android41+開発ツール紹介
[Io2012]android41+開発ツール紹介[Io2012]android41+開発ツール紹介
[Io2012]android41+開発ツール紹介
 

Cloud functionsの紹介