やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

AWSエバンジェリストシリーズ 特別編 Lambda Function URLs

表記イベントに参加してみました。

Lambda Function URLsが何者かは、公式では
https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html
とか
https://aws.amazon.com/jp/blogs/news/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/
があるようですが、下記クラメソさんブログ
https://dev.classmethod.jp/articles/try-aws-lambda-function-urls/
の冒頭文が最もピンと来ました。 API Gatewayを介さずにLambdaだけでWebAPIができるということで、かなりラクになるんかな?
(これまでLambdaを触る機会が恵まれず、手間具合がようわからん)

ハンズオンシナリオは
https://github.com/Kenichiro-Wada/aws-lambda-functions-urls-for-aws-cdk
の手順をこなしていくというもの。
AWS CDKとLambda Function URLsを組み合わせて作っていくと認識しました。
最後の片づけを除けば、内容をなぞっていけば動作に困ることはありませんでした。
以下、拾えた分の補足事項や留意点のメモ。

  • Cloud9の初期設定時のインスタンスタイプはt3.small以上を選択すること(デフォルトのt2.microだと、CDKコマンド実行時にメモリ不足で落ちる)
  • CDKのホットスワップデプロイを使ってLambda関数を数秒で置き換えることができるが、本来のCDKデプロイとの差異が大きくなるので乱用しないこと(利用は開発時のみにして、運用時はきちんとcdk deployする方がよい)

ホットスワップデプロイの言及はこの辺っぽい
https://aws.amazon.com/jp/about-aws/whats-new/2021/10/aws-cdk-releases-hotswap-rollback-control/
https://dev.classmethod.jp/articles/cdk-watch-mode/

  • CDKにはL1 ConstructsとL2 Constructsという2つのレイヤーがあり、今現在ではL2>L1の優先順でやればよい

※Constructsについてはこの辺りを読めばいいみたい
https://docs.aws.amazon.com/cdk/v2/guide/constructs.html
https://dev.classmethod.jp/articles/aws-cdk-layer/

  • Lambda Function URLsはWAFとの連携ができない(アプリ側に脆弱性があったらノーガードで攻撃を喰らう)ため、API Gatewayの置き換えにはならない
  • 片づけ時は手順書の内容に加えて、下記を手動で削除する
    • Lambda関数
    • DynamoDBテーブル
    • Cloud9環境
  • cFnスタック削除で諸々リソースを消す手順になっているが、リソースを直接消す方が早いのではないか?
     →リソースを直接消すこともできるが、削除できないcFnスタックができて
      余計にややこしいことになるのでやめた方がよい
  • S3バケットやcFnスタックの表示の設定で作成日時を出しておくといろいろと便利

<戦利品>
ユニコーン企業のひみつ
DNSがよくわかる教科書