シューマイGo編の発表資料です。 登壇用とは別に読みやすいように間のスライドを省きました。
Go x AWSによるシンプルなサーバーレス実装Written by @yukpizMar 27, 2019#shuuumai #golang
View Slide
Who?Yuuki Zayasu(@yukpiz)リディッシュ株式会社 テックリード#golang #aws #engineers_lt(エンジニアの登壇を応援する会)釣りスノボ小型船舶操縦士1級第二種電気工事士生コン打設養鶏野菜栽培
Who?Please follow me!@yukpizhttps://labo.yukpiz.me
Go言語への入り口Go言語触ったことありますか?
Go言語への入り口Go言語に興味を持っている、もしくは普段使っている皆さんに少しでも知らなかった事を知って欲しいAWSと簡単に組み合わせて様々な使い方ができる事を知ってほしい是非、持ち帰って自分でGo言語を触ってみるキッカケにして欲しい
Go言語への入り口コマンドラインツールを作る(urfave/cli等)A Tour of Goをやる(https://go-tour-jp.appspot.com/)Webフレームワークを使ってWebサイトを作る(gin, echo等)AWSを組み合わせてサービスを作ってみる(New!)DynamoDB, Lambda, SQS, API Gateway, ECS/EKS, EC2, etc...
Go言語への入り口AWS Lambda
Go言語への入り口機能を実装してクラウド上で実行可能(FaaS)Go言語(1.x Runtime)が使える様々なAWSの各種サービスと連携が可能API Gateway AWS IoT Alexa Skills KitAlexa Smart Home Application Load Balancer CloudWatch EventsCloudWatch Logs CodeCommit Cognito Sync TriggerDynamoDB Kinesis S3SNS SQS + Invoke Lambda
活用事例
活用事例サービス内メッセージの一斉配信サービスレストランに関連するデータの収集サービスSendGridを使ったメール配信サービス...etc
活用事例配信予定時刻に処理を開始SQSで一定速度でLambdaに排出配信処理を担うLambdaユーザーの端末へ処理に失敗した配信レコード
活用事例各種サービスの制限についてサービスごとに制限項目があるLambdaなら実行時間や同時実行数など他のサービスと連携させる場合、その考慮も必要詳細は各種サービスのドキュメントに記載がある以下はLambdaの制限事項ドキュメントhttps://docs.aws.amazon.com/ja_jp/lambda/latest/dg/limits.html
Go × Lambdaへの入り口デプロイツールの選定(Apex, Lamvery, Serverless Framework)実装したLambda関数をツールを使ってアップロードするLambdaはApex、それ以外のサービスはterraformに一元化関数の実装
Go × Lambdaへの入り口必要なのは2パッケージLambda実行時に呼び出される関数発火元から受け取るイベント引数処理結果を返すerrorインターフェース型
Go × Lambdaへの入り口デプロイツールの選定(Apex, Lamvery, Serverless Framework)実装したLambda関数をツールを使ってアップロードするLambdaはApex、それ以外のサービスはterraformに一元化関数の実装Handlerの引数で受け取れるイベントはgodocで確認できるhttps://godoc.org/github.com/aws/aws-lambda-go/eventsAWSの各種サービスとの連携
Go × Lambdaへの入り口Lambdaの発火元
その他の用途BOTを作ってみよう!Slack BOTやTwitter BOTで遊んでみるAPI Gatewayと連携して、Webhook駆動のBOTCloudwatchと連携して、定期実行するBOT
最後にGo言語入門の選択肢にAWS Lambdaを!連携できるサービスを組み合わせて、簡単に作ろう仕事じゃなくても、まずはプライベートの簡単なツールから!こういうのも作れそうとか面白いアイデア、是非教えてください
Written by @yukpizMar 27, 2019#shuuumai #golangSlides PolicyThe Go gopher was designed by Renée French.#f3f3f3#434343 #da6272