あんパン

こしあん派

CloudFrontにLambda@EdgeでBasic認証をかけて、originのS3にファイルを追加したらSlackにURLを通知する

この記事で書いたとおり、CloudFrontにLambda@EdgeでBasic認証をかけて、originのS3にファイルを追加したらSlackにURLを通知する仕組みを整えた。

github.com

repoをcloneしてきてCDKでdeployしたら同じ環境を作ることができる。

@aws-cdk/aws-lambda-nodejs はこれまで使ったことなかったのだけど、parcelでバンドルとかうまくやってくれて、 .ts ファイルをポン置きするだけでLambdaにデプロイしてくれて最高に便利。JSだと依存の管理がムズいしGoで書くのがいいかな〜となってGoでちまちま書くことが多かったけど、何も考えずにTypeScriptで書くでもよくなったことで手札が増えて嬉しい。

Basic認証は最初はCloudFront Functionsを使ってみようかと思っていたのだけど、結構制約が厳しそうなのでLambda@Edgeにした。Lambda@Edgeを明示的に使ったのは初めて(Next.jsをAmplifyでSSRしたときに暗黙的には使ってはいた)で、Lambda@Edgeも環境変数渡せなかったりとかいろいろ制約あるんだな〜ということを学んだ。CloudFront Functionsはこれ。

aws.amazon.com

今回はISUCONで便利に使ったけど、結構汎用的に使えるはずなのでよければどうぞ。