処理に関する問題
画像処理、タイムアウト、画質に関するトラブルシューティング
画像の処理に関するよくある問題と解決方法です。
画像が処理されない
画像がアップロードされても処理されない場合は、以下の項目を確認してください。
確認事項
-
ファイルサイズの確認
- 画像サイズがMIN_SIZE〜MAX_SIZE範囲内か確認
- デフォルト: 5KB〜3MB
-
処理済みステータスの確認
- すでに
lightfile-status: doneメタデータがある場合はスキップされます
- すでに
-
ファイル形式の確認
- JPEG(.jpg、.jpeg)またはPNG(.png)のみサポート
- GIF、WebP、TIFF、SVGは非対応
-
ライセンストークンの確認
- トークンが有効か確認
CloudWatchログで確認
aws logs tail /aws/lambda/my-company-lightfile --followS3イベント通知の確認
aws s3api get-bucket-notification-configuration \
--bucket my-company-lightfile-testタイムアウトエラー
原因
- 画像が大きすぎる
- メモリ不足
- タイムアウト設定が短すぎる
解決策1: タイムアウトとメモリを増やす
aws lambda update-function-configuration \
--function-name my-company-lightfile \
--timeout 120 \
--memory-size 512解決策2: MAX_SIZEを下げる
aws lambda update-function-configuration \
--function-name my-company-lightfile \
--environment Variables="{MAX_SIZE=5mb,...}"メモリ不足エラー
症状
- Lambda関数がクラッシュする
signal: killedエラーが表示される
解決策1: メモリを増やす
aws lambda update-function-configuration \
--function-name my-company-lightfile \
--memory-size 1024解決策2: MAX_SIZEを下げる
aws lambda update-function-configuration \
--function-name my-company-lightfile \
--environment Variables="{MAX_SIZE=3mb,...}"メモリを増やすと、Lambdaのコストも増加します。適切なバランスを見つけてください。
画質が悪い
最適化後の画質が期待より低い場合は、品質設定を調整します。
品質を上げる
aws lambda update-function-configuration \
--function-name my-company-lightfile \
--environment Variables="{QUALITY=high,...}"JPEG/PNG個別に設定
aws lambda update-function-configuration \
--function-name my-company-lightfile \
--environment Variables="{JPEG_QUALITY=high,PNG_QUALITY=medium,...}"詳細は画質設定を参照してください。
処理時間
期待される処理時間
- 小さい画像(<100KB): 1〜2秒
- 中程度(100KB〜1MB): 2〜5秒
- 大きい画像(1〜3MB): 5〜15秒
処理が遅い場合
- Lambda関数のメモリを増やすと処理速度が向上します
- メモリサイズとCPU性能は比例します
画像の再処理
方法1: メタデータを削除
aws s3api copy-object \
--bucket my-company-lightfile-test \
--key image.jpg \
--copy-source my-company-lightfile-test/image.jpg \
--metadata-directive REPLACE \
--metadata "{}"方法2: バックアップから復元
aws s3 cp \
s3://my-company-lightfile-backup/my-company-lightfile-test/image.jpg \
s3://my-company-lightfile-test/image.jpg既存画像の一括処理
既存バケットの画像を一括処理したい場合:
aws s3 sync s3://existing-bucket/ s3://my-company-lightfile-test/ \
--exclude "*" \
--include "*.jpg" \
--include "*.png"大量の画像を一括処理する場合:
- 処理に時間がかかります
- CloudWatchでエラーを監視してください
- Lambda同時実行制限に注意してください
異なる品質設定を使い分けるには?
複数のCloudFormationスタックをデプロイして、バケットごとに異なる品質設定を使用します。
例: 商品画像用にhigh品質、ユーザー画像用にmedium品質。
デバッグログの有効化
詳細なログを確認したい場合は、デバッグモードを有効にします:
aws lambda update-function-configuration \
--function-name my-company-lightfile \
--environment Variables="{LOG_LEVEL=debug,...}"ログの確認
# リアルタイムでログを表示
aws logs tail /aws/lambda/my-company-lightfile --follow
# 最新のログを表示
aws logs tail /aws/lambda/my-company-lightfile詳細はログレベル設定を参照してください。