Slide 1

Slide 1 text

Go言語と事例で学ぶAWS Lambda Written by @yukpiz(redish Inc engineer) Oct 17, 2018 AWS Night School & LT

Slide 2

Slide 2 text

Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How to use? //\\\\\\\\\ Example //\\\\\\\\\\ Exit

Slide 3

Slide 3 text

What’s AWS Lambda? //\\\\\\ サーバーレス/FaaSのワードで取り上げられる //\\\\\\\ 単体動作できる関数を実行できるサービス //\\\\\\\\ 関数は様々なイベントに発火して実行できる //\\\\\\\\\ CrowdWatch, SQS, API Gateway, DynamoDB //\\\\\\\\\\ apexやlamveryを使って簡単デプロイ! //\\\\\\\\\\\ Go, Node.js, Java, C#, Python

Slide 4

Slide 4 text

Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How to use? //\\\\\\\\\ Example //\\\\\\\\\\ Exit

Slide 5

Slide 5 text

What’s golang? //\\\ 2012年にv1.0リリース(現在v1.11、go2のドラフト発表) //\\\\ 静的型付け言語、並列実行に強い、シンプルな構文 //\\\\\ コマンドラインツール、WebAPI、バッチ処理 //\\\\\\ AWS Lambda、GAE/Go、Cloud Function(Coming soon!)

Slide 6

Slide 6 text

What’s golang? mainパッケージだとコマンドライン実行可能 標準で言語に含まれるパッケージでも、 利用するときはimportする mainパッケージの場合、 実行時にmain関数が呼び出される

Slide 7

Slide 7 text

Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How to use? //\\\\\\\\\ Example //\\\\\\\\\\ Exit

Slide 8

Slide 8 text

How to use? Lambdaが実行されると呼び出されます Lambdaが実行されると呼び出される関数を指定

Slide 9

Slide 9 text

How to use? ハンドラは引数にコンテキストとイベントソースを受けられる

Slide 10

Slide 10 text

How to use? //\\\\\\ context.Context //\\\\\\\ Lambda関数の実行に関する情報 //\\\\\\\\ - タイムアウトの残り時間 //\\\\\\\\\ - 実行時のメモリ制限 //\\\\\\\\\\ - 実行時の関数名 //\\\\\\\\\\\ - etc

Slide 11

Slide 11 text

How to use? //\\\\\\ events.* //\\\\\\\ 関数が発火したイベントの情報 //\\\\\\\\ - DynamoDBに登録されたデータオブジェクト //\\\\\\\\\ - API Gatewayが呼び出された時のリクエスト //\\\\\\\\\\ - S3で発生したイベント、ファイルの情報等 //\\\\\\\\\\\ - etc

Slide 12

Slide 12 text

Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How to use? //\\\\\\\\\ Example //\\\\\\\\\\ Exit

Slide 13

Slide 13 text

Agenda - DynamoDBに配信時間になるまで格納 - 時間になったら最初のLambdaが発火 - SQSで分散して配信を処理 - 失敗した配信はキューに数日間残す - 数千〜数万ユーザーへの一斉配信を数分で実行

Slide 14

Slide 14 text

Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How to use? //\\\\\\\\\ Example1 //\\\\\\\\\\ Exit

Slide 15

Slide 15 text

Exit //\\\\\\ Lambdaめっちゃ便利! //\\\\\\\ サーバーは用意せずに何かを動かしたい //\\\\\\\\ 個人用途だとSlack BOTやクローラーに使ってます //\\\\\\\\\ 是非、皆さんも使ってみてください!

Slide 16

Slide 16 text

Exit - エンジニアの登壇を応援する会 - 10月26日(金) - 執筆の技術を勉強する会 - https://techplay.jp/event/700825

Slide 17

Slide 17 text

Exit Thank you! Written by @yukpiz Special Thanks! The Go gopher was designed by Renée French. Free gophers: https://github.com/egonelbre/gophers