LightFile NextLightFile Next

処理に関する問題

画像処理、タイムアウト、画質に関するトラブルシューティング

画像の処理に関するよくある問題と解決方法です。

画像が処理されない

画像がアップロードされても処理されない場合は、以下の項目を確認してください。

確認事項

  1. ファイルサイズの確認

    • 画像サイズがMIN_SIZE〜MAX_SIZE範囲内か確認
    • デフォルト: 5KB〜3MB
  2. 処理済みステータスの確認

    • すでにlightfile-status: doneメタデータがある場合はスキップされます
  3. ファイル形式の確認

    • JPEG(.jpg、.jpeg)またはPNG(.png)のみサポート
    • GIF、WebP、TIFF、SVGは非対応
  4. ライセンストークンの確認

    • トークンが有効か確認

CloudWatchログで確認

aws logs tail /aws/lambda/my-company-lightfile --follow

S3イベント通知の確認

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

詳細はログレベル設定を参照してください。

さらに詳しい情報