syossan27.qrunch.io読者になる1S3にファイルがアップロードされた時にCloudFrontのキャッシュを削除してみるAWSlambdaS3CloudFront投稿日:2018-11-08最終更新:2018-11-08筆者のブログで記事をみるやりたいことS3に置いた静的HTMLをCloudFrontを通してアクセスする、という形で配信しているシステムがあり、運用する中で静的HTMLを置き換えた時にすぐに切り替わるようにしたいということで、CloudFrontのキャッシュを都度削除する必要がありました。毎日切り替わる代物なのでその都度手動でCloudFrontの特定Bucketに対してInvalideするのは面倒だなーと思ったので、それならファイルを置いた時に自動的にInvalidateが実行されるようにしたいというのが目的です。やるかさて、やり方ですが今回はLambdaを使って実現しました。Lambdaのイベント発火条件として「S3のObjectCreatedByPut」を使います。これでS3の指定したBucketにObjectが生成・更新された際にLambdaの関数が動いてくれます。以下のようなLambda関数を作成します。lambda.Start(invalidate)}簡単に説明すると、発火したイベント詳細を引数として受け、そこからバケット名を取得してCloudFrontのDistoributionのドメイン名と合致するものを探します。関数を使ってinvalidationを実行するだけです。こんなにも簡単に作成出来てしまうのだからLambdaの力は凄いですね。Qrunch.netサーバー提供フィードバックを送信する。