旧Lambda関数からLightFile Lambdaへ
旧LightFile Lambda関数から新LightFile Lambdaへの移行ガイド
旧LightFile Lambda関数から新しいLightFile Lambdaへの移行方法を説明します。
移行の概要
LightFile Lambdaは、旧Lambda関数を完全に再設計したAWS Lambda画像最適化ソリューションです。
主な改善点
- ARM64アーキテクチャ対応 - より高速で低コスト
- 多言語サポート - 英語・日本語のログ出力
- シンプルな環境変数 - より直感的な設定項目
- CloudFormationテンプレート改善 - デプロイが簡単に
- パフォーマンス向上 - 処理速度とメモリ効率が改善
移行の手順
1. 現在の設定を確認
旧Lambda関数の環境変数を記録しておきます。
AWS コンソール → Lambda → 該当の関数 → 設定 → 環境変数
主な環境変数:
QUALITY/JPEG_QUALITY/PNG_QUALITYMIN_SIZE/MAX_SIZEUPLOAD_ACLまたはDESTINATION_ACLBACKUP_BUCKET/BACKUP_PREFIX/BACKUP_ACLLOGGING/VERBOSE
2. 新しいLightFile Lambdaをデプロイ
新しいCloudFormationスタックとして、LightFile Lambdaをデプロイします。
- ダウンロードURLから最新のCloudFormationテンプレートURLを取得
- AWS CloudFormationコンソールで新しいスタックを作成
- パラメータを設定:
- MyToken: LightFile6ライセンストークン
- MyBucketName: 対象のS3バケット名
- その他のパラメータは必要に応じて設定
詳細はインストールを参照してください。
3. 環境変数を移行
旧Lambda関数の設定を新しい環境変数に変換します。
一部の環境変数名が変更されています。環境変数の変更点を参照してください。
4. テスト実行
新しいLambda関数をテストします。
# S3に画像をアップロードしてテスト
aws s3 cp test-image.jpg s3://your-bucket/test/
# CloudWatch Logsでログを確認
aws logs tail /aws/lambda/your-function-name --follow5. 旧Lambda関数の無効化
新しいLambda関数が正常に動作することを確認したら、旧Lambda関数のイベントソースを無効化します。
- AWS コンソール → Lambda → 旧関数 → 設定 → トリガー
- S3トリガーを無効化または削除
6. 旧Lambda関数の削除(オプション)
一定期間問題なく動作することを確認したら、旧Lambda関数のCloudFormationスタックを削除できます。
バックアップバケットにオリジナル画像が保存されている場合は、削除前に確認してください。
移行時の注意点
ライセンストークンが必須に
新しいLightFile Lambdaでは、LICENSE_TOKEN環境変数が必須です。CloudFormationデプロイ時に自動設定されますが、直接編集する場合は注意が必要です。
削除された機能
以下の機能は新バージョンでサポートされていません:
- カスタムメタデータ設定 (
METADATA環境変数) - SNS通知機能 (
SNS_TOPIC_ARN,SNS_DEFAULT_VALUES) - 環境変数エイリアス (
MIN_SOURCE_SIZE,MAX_SOURCE_SIZE,DESTINATION_ACL)
これらの機能が必要な場合は、別の方法での実装を検討してください。
ACL設定の変更
- 旧:
UPLOAD_ACLまたはDESTINATION_ACL - 新:
ACL
機能は同じですが、環境変数名が短くなりました。
ログ設定の変更
- 旧:
LOGGING=normalまたはLOGGING=debug、VERBOSEフラグ - 新:
LOG_LEVEL=info/LOG_LEVEL=debug
より細かいログレベル制御(debug / info / warn / error / fatal)が可能になりました。
並行運用
移行期間中、旧Lambda関数と新Lambda関数を並行して運用することも可能です:
- 別のS3バケットを使用 - 新Lambda関数を別のバケットに接続
- 同じバケット、異なるプレフィックス - プレフィックスフィルターを使用
- 段階的移行 - 一部のファイルタイプのみ新Lambda関数で処理
トラブルシューティング
Lambda関数が実行されない
- S3イベント通知が正しく設定されているか確認
- Lambda関数の実行ロール権限を確認
- CloudWatch Logsでエラーメッセージを確認
詳細はトラブルシューティングを参照してください。
パフォーマンスが期待より低い
- ARM64アーキテクチャを使用しているか確認(デフォルトで有効)
- メモリ設定を確認(CloudFormationパラメータ)
- タイムアウト設定を確認
次のステップ
- 環境変数の変更点 - 環境変数の詳細な対応表
- 機能比較表 - 旧版と新版の機能比較
- CloudFormationパラメータ - デプロイ時の設定