LightFile Lambda ドキュメント
S3バケットにアップロードされた画像を、AWS Lambda で即座に最適化します。CloudFormation テンプレートを実行するだけで導入できます。
はじめに
- LightFile LambdaとはS3にアップロードされた JPEG・PNG を自動で圧縮する仕組みです。見た目を変えずに容量を減らす動作、対応する画像形式・AWSサービス・アーキテクチャを説明します。
- ダウンロードURLLightFile Lambda の CloudFormation テンプレートと関数プログラムのダウンロードURLです。リージョンごとにURLが異なり、未対応のリージョンは無償で追加します。
- インストールCloudFormation テンプレートで、IAMロール・ロググループ・Lambda関数・S3イベント通知をまとめて作成する手順です。画面ごとの入力内容を順に説明します。
- プログラムの更新Lambda 関数のプログラムを最新版へ更新する手順です。ダウンロードURLの取得から差し替えまでと、arm64 と x86_64 でURLが異なる点を説明します。
設定ガイド
- 画質設定環境変数 QUALITY で画質とファイルサイズのバランスを決めます。low・medium・high の違いと、JPEG・PNG を個別に指定する方法を説明します。
- バックアップ設定軽量化する前の元画像を別のS3バケットへ残す設定です。保存先バケット、パスのプレフィックス、プレースホルダ、バックアップ側のACLを指定できます。
- ACL設定軽量化した画像をS3へ上書き保存するときの権限(ACL)の決め方です。規定ACLの指定、元のACLを引き継ぐ keep、詳細なACLの3通りを説明します。
- 対象サイズの設定軽量化の対象にする画像サイズの下限と上限です。既定では 5KB 超〜3MB 以下で、小さすぎる画像を除く理由と Lambda のメモリ制限もあわせて説明します。
- 言語設定CloudWatch Logs に出力されるログメッセージの言語を、環境変数 LANGUAGE で英語か日本語に切り替えます。既定値は英語です。
- ログレベル設定CloudWatch Logs に出力するログの詳しさを環境変数 LOGLEVEL で決めます。fatal から debug までの各レベルで何が出るかを説明します。
使い方
- 画像のアップロードと処理S3へ画像を置くと自動で軽量化が始まります。AWSコンソールとCLIでのアップロード方法、処理される画像の条件、スキップされる条件を説明します。
- 処理結果の確認LightFile Lambda の動作を CloudWatch Logs で監視する方法と、よくある不具合の切り分け手順をまとめています。ログの見方、エラーメッセージの意味、確認すべき設定を順に説明します。
リファレンス
- 環境変数一覧LightFile Lambda の設定はすべて環境変数で行います。指定できる変数の一覧と、AWSコンソール・AWS CLI それぞれからの変更手順をまとめています。
- CloudFormationパラメータCloudFormation スタックの作成・更新時に指定するパラメータの一覧です。リソース名のプレフィックス、ライセンストークン、ACL の既定値などを説明します。
トラブルシューティング
- セットアップと設定インストールとライセンスでつまずいたときの対処です。トークンの書式や有効期限の確認、既存バケットへの適用可否、元画像の扱いなどをまとめています。
- 処理に関する問題画像が処理されない、タイムアウトする、画質が期待と違うといった処理面の問題と対処です。確認すべきサイズ・メタデータ・イベント通知を順に挙げます。
- 管理とデバッグバックアップが作られない、保存先がわからないといった運用面の問題と対処です。ライフサイクルによる自動削除やコスト削減のこつもあわせて紹介します。
- 手動インストールCloudFormation を使わず、IAMロールの作成から Lambda 関数の登録・環境変数の設定・S3イベント通知の紐付けまでを手作業で行う上級者向けの手順です。