今日はこの勉強会です。
AWS歴10年目ぐらいの永遠の初心者なので参加しました。 勉強会色々参加してますが、Amazon Chime 使うのは AWS の中の人との打合せや JAWS イベントぐらいで、それ以外では使ったことがない。AWS Chime が使えるのも AWS なイベントならではですね。
JAWS-UG 初心者支部&千葉支部 #26 新人さん歓迎!ハンズオン<(オンライン)
サーバーレスクイックスタート: 手を動かしながら学ぶサーバーレスはじめの一歩
資料
ソース
「ソースは資料からコピーをするとスペースが重要な Python では正しくコピーができない可能性があるため、GitHub からとっておきましょう。」とのこと。
git clone git@github.com:ketancho/aws-serverless-quick-start-hands-on.git
LT1 モリサワの伊藤さん
資料
ソース
「AWSコンソールじゃなくて、違う方法(CDKやaws cli)も試してみよう」とのこと。
LT2 クラスメソッドのbatchiさん
クラスメソッドの千葉さん(埼玉出身)。 アウトプットのお話でした。5年AWSやってて、9冠なのに「AWSいまだにわからん」。 これは「完全に理解した」の向こうの世界の人の言葉だ。 「アウトプットによる情報発信をしましょう!」とのこと。 前回参加して宿題をやった結果をアウトプットしたお話でした。 こちらは前回のアウトプット。
LT3 千葉支部運営の和田さん
iret の中の人の「サーバーレスLT-Lambdaって課金されるの?〜非同期処理でちょっとやらかした話」。 「無限ループとかでLambdaにありえないか金額がきた。」とのこと。 テスト大事。監視大事。
ハンズオン 1 , 2 を SAM でやってみる
「AWSコンソールじゃなくて、違う方法(CDKやaws cli)も試してみよう」とのことなので、SAM でやってみる。
REST API 書くなら、 API Gateway
+ Lambda
が一発でできるのでフレームワーク利用が楽ですね。
自分的には、コンソールよりも SAM のほうが楽なので手を抜きたかったというのもあります。
環境構築
git clone
したディレクトリで環境構築。 sam init
はすべてデフォルトとの 1
。
これで、 API Gateway
+ Lambda
の雛形できあがり。
$ sam init --runtime python3.7 --name hello
ハンズオン1
ソースコピー
$ cp src/translate-function.py hello/hello_world/app.py
IAM 設定
$ cd hello/ $ vi template.yaml
20行目の Lambda 内に追加
## ポリシー追加 Policies: - arn:aws:iam::aws:policy/TranslateFullAccess
ビルドしてデプロイ。
$ sam build $ sam package --s3-bucket <適当なバケット> --output-template-file packaged.yaml $ sam deploy --template-file packaged.yaml --stack-name <適当なスタック名> --capabilities CAPABILITY_IAM
ハンズオン2
ソースコピー
$ cp ../src/translate-function-with-apigw.py ./hello_world/app.py
ビルドしてデプロイ。
$ sam build $ sam package --s3-bucket <適当なバケット> --output-template-file packaged.yaml $ sam deploy --template-file packaged.yaml --stack-name <適当なスタック名> --capabilities CAPABILITY_IAM
SAM だけ追加したソース
所感
プレミアパートナーに並んで LT やった伊藤さんすごい。