LightFile NextLightFile Next

管理とデバッグ

バックアップ、アンインストール、デバッグに関するトラブルシューティング

バックアップ、運用管理、デバッグに関するよくある問題と解決方法です。

バックアップが機能しない

現在の設定を確認

aws lambda get-function-configuration \
  --function-name my-company-lightfile \
  --query 'Environment.Variables.BACKUP_BUCKET'

バックアップバケットを設定

aws lambda update-function-configuration \
  --function-name my-company-lightfile \
  --environment Variables="{BACKUP_BUCKET=my-company-lightfile-backup,...}"

詳細はバックアップ設定を参照してください。

バックアップはどこに保存されますか?

バックアップバケット内に、元のバケット名をプレフィックスとして保存されます:

s3://my-company-lightfile-backup/
  my-company-lightfile-test/
    image1.jpg       ← 元: s3://my-company-lightfile-test/image1.jpg
    photos/
      photo.jpg      ← 元: s3://my-company-lightfile-test/photos/photo.jpg

BACKUP_PREFIX環境変数でプレフィックスをカスタマイズできます。

コスト削減のヒント

バックアップを無効化

aws lambda update-function-configuration \
  --function-name my-company-lightfile \
  --environment Variables="{BACKUP_BUCKET=,...}"

バックアップのライフサイクル設定

30日後にバックアップを自動削除:

aws s3api put-bucket-lifecycle-configuration \
  --bucket my-backup-bucket \
  --lifecycle-configuration '{
    "Rules": [{
      "Id": "delete-old",
      "Status": "Enabled",
      "Expiration": { "Days": 30 }
    }]
  }'

MIN_SIZEを上げる

小さい画像(サムネイル、アイコン)をスキップしてコスト削減:

aws lambda update-function-configuration \
  --function-name my-company-lightfile \
  --environment Variables="{MIN_SIZE=100kb,...}"

デバッグログの有効化

詳細なログを確認したい場合は、デバッグモードを有効にします:

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

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

処理ステータスの確認

S3メタデータを確認

aws s3api head-object \
  --bucket my-company-lightfile-test \
  --key image.jpg \
  --query 'Metadata'

処理済みの画像にはlightfile-status: doneメタデータが付与されます。

ファイルサイズを比較

# オリジナルサイズ(バックアップ)
aws s3api head-object \
  --bucket my-company-lightfile-backup \
  --key my-company-lightfile-test/image.jpg \
  --query ContentLength

# 最適化後サイズ
aws s3api head-object \
  --bucket my-company-lightfile-test \
  --key image.jpg \
  --query ContentLength

アンインストール

手順

  1. バケットを空にする(重要)
aws s3 rm s3://my-company-lightfile-test/ --recursive
aws s3 rm s3://my-company-lightfile-backup/ --recursive
  1. スタックを削除
aws cloudformation delete-stack --stack-name my-company-lightfile

AWSコンソールから削除

  1. CloudFormationコンソールでスタックを選択
  2. 削除をクリック
  3. バケットに画像が残っている場合は削除が失敗するため、先にバケットを空にしてください

新しいバージョンへの更新

CloudFormationスタックを更新します:

  1. CloudFormationコンソールでスタックを選択
  2. 更新をクリック
  3. 新しいテンプレートURLを指定
  4. パラメータを確認して更新

詳細はアップグレードを参照してください。

CloudWatch アラームの設定

Lambda関数のエラーを監視するアラームを設定することをおすすめします:

aws cloudwatch put-metric-alarm \
  --alarm-name lightfile-lambda-errors \
  --alarm-description "LightFile Lambda function errors" \
  --metric-name Errors \
  --namespace AWS/Lambda \
  --statistic Sum \
  --period 300 \
  --threshold 1 \
  --comparison-operator GreaterThanThreshold \
  --dimensions Name=FunctionName,Value=my-company-lightfile \
  --evaluation-periods 1

よくあるエラーメッセージ

"License token is invalid"

ライセンストークンを確認してください。詳細はセットアップと設定を参照してください。

"Image size exceeds maximum"

MAX_SIZE環境変数を確認してください。詳細はサイズ制限を参照してください。

"Unsupported image format"

JPEG/PNG以外の画像形式は処理できません。サポートされる形式についてはLightFile Lambdaとはを参照してください。

"Access denied"

Lambda実行ロールの権限を確認してください。詳細は手動インストールを参照してください。

さらに詳しい情報