Slide 1

Slide 1 text

API Gatewayのwebsocket対応について

Slide 2

Slide 2 text

Who am I func main() { profile := map[string]string{ "Name": " 石澤直人 (youyo_)", "Company": " ヘプタゴン", "Job": " エンジニア", "Language": "Go, Python...", "Likes": "AWS, GCP, serverless...", } fmt.Println(profile) }

Slide 3

Slide 3 text

ラスベガスの思い出

Slide 4

Slide 4 text

お品書き API Gateway? AWS SAM? API Gateway+Nuxt.jsでチャットアプリ構築をデモ

Slide 5

Slide 5 text

API Gateway REST APIを簡単に作成できるフルマネージドサービス リクエストに対してバックエンドのAWS Lambdaやその他サービス がレスポンスを返す ログはCloudWatchLogsへ スロットリングもできる WebSocket対応

Slide 6

Slide 6 text

疑問 API Gatewayってサーバーレスなやつじゃなかったっけ? WebSocketって双方向通信のあれだよね? ステートフルだよね? サーバーレス????

Slide 7

Slide 7 text

WebSocket API in API Gateway ref: https://aws.amazon.com/jp/blogs/news/announcing‑websocket‑ apis‑in‑amazon‑api‑gateway/

Slide 8

Slide 8 text

AWS SAM AWS Serverless Application Model Cloudformationのwrapperフレームワーク サーバーレスアプリケーションを作りやすいようにちょっと記法追 加されてる AWS::Serverless::Function AWS::Serverless::SimpleTable etc... Document: https://github.com/awslabs/serverless‑application‑ model/blob/master/versions/2016‑10‑31.md

Slide 9

Slide 9 text

AWS SAM CLIで操作 (samコマンド) 基本的には次のコマンドだけ覚えればいい sam build aws cloudformation package aws cloudformation deploy

Slide 10

Slide 10 text

sam build $ sam build 2019-02-12 16:49:25 Building resource 'OnConnectFunction' 2019-02-12 16:49:26 Running PythonPipBuilder:ResolveDependencie 2019-02-12 16:49:29 Running PythonPipBuilder:CopySource Build Succeeded Built Artifacts : .aws-sam/build Built Template : .aws-sam/build/template.yaml Commands you can use next ========================= [*] Invoke Function: sam local invoke [*] Package: sam package --s3-bucket

Slide 11

Slide 11 text

aws cloudformation package $ aws cloudformation package ... Uploading to 366553b37d93dd7db652e2f24ccf3d45 6373889 / 637388 Successfully packaged artifacts and wrote output template Execute the following command to deploy the packaged template aws cloudformation deploy --template-file /Users/youyo/src/gith

Slide 12

Slide 12 text

aws cloudformation deploy $ aws cloudformation deploy ... Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - example-apigateway-websock

Slide 13

Slide 13 text

API Gateway+Nuxt.jsでチャットアプリ構築 https://github.com/youyo/example‑apigateway‑websocket

Slide 14

Slide 14 text

まとめ API GatewayでWebSocketを使い始めるのは簡単 実際の処理やエラーハンドリングなどは頑張ってLambda書こう コード化しておくことで未来の自分を救える(かもしれない)