久しぶりにハンズオン形式の勉強会に参加しました。
せっかくなので久しぶりに備忘兼ねてブログにしておきます。
Comassの勉強会ページ
https://jawsug-bgnr.connpass.com/event/278270/
◇参加目的
・AWS SAMの概要・使い方を知りたい
・Lambdaを使ったAPI開発の雰囲気を知る
・AWS SummitのLTに興味がある
◇API開発ハンズオン内容
詳細内容や手順はハンズオンページを見て頂ければと思いますが、SAM、FastAPI、Mangum とを組み合わせて、API GatewayとLambdaを使った簡易的な API 開発とOpenAPIを使ってAPIのドキュメント化を体験する内容となっております。
ハンズオンページ:
https://aws.amazon.com/jp/builders-flash/202304/api-development-sam-fastapi-mangum/
●ハンズオンで使ったツールやサービス
ハンズオンで私が初めて触ったツールやサービスについて紹介します。
・AWS Serveless Application Model
サーバーレスアプリケーション構築用のオープンソースフレームワークです。
CloudFormationの拡張機能でより簡潔にテンプレートを記述できるようです。また、ローカル環境にビルドして様々な方法で検証が可能であり、実際の環境に構築する前にローカルでデバッグできるのは良さそうだと感じました。
勉強会中の質問で、「SAMの使い道や他(Amplifyなど)との違い」を聴かれていたのですが、「サーバーレスサービスを使ったバックエンド機能の自動構築に使える。サービスは限られているので、その範囲の構築をするなら便利。範囲外のサービスを使うならCloudFormationやCDKで書いた方がよい」と回答されておりタメになりました。
・FastAPI
https://fastapi.tiangolo.com/ja/
PythonでAPIを構築するためのWebフレームワークです。PythonでAPI開発をするときの一般的なOSSという認識で名前は知っていました。特徴はハンズオンページに記載されています。
・Mangum(読み:マンガム)
AWS Lambda で ASGI アプリケーションを実行し、Lambda Function URL、Amazon API Gateway、Application Load Balancer、Lambda@Edge の各イベントを処理するためのアダプタだそうです。このハンズオンで初めて聞きました。
FastAPIと互換性があり、LambdaでAPIを構築するときにFastAPIとMangumを使うことで書かないといけないソースコード量を減らすことができるようです。
一例として、Lambdaの標準方法でコーティングする場合と比較して、下記の冗長的なソースコードの記述量を削減できるみたいです。
・イベントオブジェクトからデータを読み込んで、メソッドごとの分岐条件を書く
・レスポンスするJSONを書く
●ハンズオンの副次的な学び
当初目的ではなかったですがハンズオンの流れで知ることができました。
・Lambdaのコンテナイメージを作成して関数を構築する実例
・AWSサービスの最新バージョンの確認手順
→AWSの公式ドキュメントではなく、Githubのリリースノートを参照していた。
・Cloud9のローカル環境でWebアプリを立ち上げる方法
◇AWS Summit LT
初めて参加する方向けに過去のAWS Summitの写真を見ながら雰囲気を伝えたり、どんなセッションがあるのか、何に参加するのか話をしておりました。ゲームのセッションが人気あるねという話題が出て、バイオハザードのセッションに行く人がいらして羨ましかったです。私が見たときは既に満席でした泣 代わりにスクエニさんのセッションを登録しましたが、AWSエンジニア受賞発表の時間と被り、泣く泣くキャンセルしました。。。
また、メモをどうやって取っていたかという話題も出ました。電源や座席のサイズの問題でノートでメモを取っていたと話を聴き、勉強会終了後に慌ててノートを買いに行きました笑 数年ぶりのオフラインイベントで忘れていたのですが、私もノートにメモを取っていたのを思い出してので聞いて良かったです。
◇最後に
久しぶりのハンズオンの勉強会参加とブログ執筆でした。 API開発の雰囲気を知ることができてよかったです。LTを聞いて明日からのAWS Summitが楽しみになりました!!
最後までご閲覧ありがとうございました。