Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go言語と事例で学ぶAWS Lambda

Afbe710f9ab725e2f404fd4e79c61c65?s=47 yukpiz
October 17, 2018

Go言語と事例で学ぶAWS Lambda

JAWS-UG 初心者支部#14「AWS Night school & LT」
での発表資料です!
https://jawsug-bgnr.connpass.com/event/101789/

Afbe710f9ab725e2f404fd4e79c61c65?s=128

yukpiz

October 17, 2018
Tweet

Transcript

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

    AWS Night School & LT
  2. Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How

    to use? //\\\\\\\\\ Example //\\\\\\\\\\ Exit
  3. What’s AWS Lambda? //\\\\\\ サーバーレス/FaaSのワードで取り上げられる //\\\\\\\ 単体動作できる関数を実行できるサービス //\\\\\\\\ 関数は様々なイベントに発火して実行できる //\\\\\\\\\

    CrowdWatch, SQS, API Gateway, DynamoDB //\\\\\\\\\\ apexやlamveryを使って簡単デプロイ! //\\\\\\\\\\\ Go, Node.js, Java, C#, Python
  4. Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How

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

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

  7. Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How

    to use? //\\\\\\\\\ Example //\\\\\\\\\\ Exit
  8. How to use? Lambdaが実行されると呼び出されます Lambdaが実行されると呼び出される関数を指定

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

  10. How to use? //\\\\\\ context.Context //\\\\\\\ Lambda関数の実行に関する情報 //\\\\\\\\ - タイムアウトの残り時間

    //\\\\\\\\\ - 実行時のメモリ制限 //\\\\\\\\\\ - 実行時の関数名 //\\\\\\\\\\\ - etc
  11. How to use? //\\\\\\ events.* //\\\\\\\ 関数が発火したイベントの情報 //\\\\\\\\ - DynamoDBに登録されたデータオブジェクト

    //\\\\\\\\\ - API Gatewayが呼び出された時のリクエスト //\\\\\\\\\\ - S3で発生したイベント、ファイルの情報等 //\\\\\\\\\\\ - etc
  12. Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How

    to use? //\\\\\\\\\ Example //\\\\\\\\\\ Exit
  13. Agenda - DynamoDBに配信時間になるまで格納 - 時間になったら最初のLambdaが発火 - SQSで分散して配信を処理 - 失敗した配信はキューに数日間残す -

    数千〜数万ユーザーへの一斉配信を数分で実行
  14. Agenda //\\\\\\ What’s AWS Lambda? //\\\\\\\ What’s golang? //\\\\\\\\ How

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

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

  17. Exit Thank you! Written by @yukpiz Special Thanks! The Go

    gopher was designed by Renée French. Free gophers: https://github.com/egonelbre/gophers