管理とデバッグ
バックアップ、アンインストール、デバッグに関するトラブルシューティング
バックアップ、運用管理、デバッグに関するよくある問題と解決方法です。
バックアップが機能しない
現在の設定を確認
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.jpgBACKUP_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アンインストール
手順
- バケットを空にする(重要)
aws s3 rm s3://my-company-lightfile-test/ --recursive
aws s3 rm s3://my-company-lightfile-backup/ --recursive- スタックを削除
aws cloudformation delete-stack --stack-name my-company-lightfileAWSコンソールから削除
- CloudFormationコンソールでスタックを選択
- 削除をクリック
- バケットに画像が残っている場合は削除が失敗するため、先にバケットを空にしてください
新しいバージョンへの更新
CloudFormationスタックを更新します:
- CloudFormationコンソールでスタックを選択
- 更新をクリック
- 新しいテンプレートURLを指定
- パラメータを確認して更新
詳細はアップグレードを参照してください。
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実行ロールの権限を確認してください。詳細は手動インストールを参照してください。