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書こう
コード化しておくことで未来の自分を救える(かもしれない)