1回答
- 新しい順
- 投票が多い順
- コメントが多い順
0
Lambda@Edge には、関数のサイズに関して厳しい制限があります。Lambda@Edge 関数の最大サイズは、圧縮された状態(ZIP ファイル)で 1MB に制限されています。これは、エッジロケーションでの迅速な展開と実行を確保するためです。
この制限内で機能する関数を作成するには、以下のアプローチを検討してください:
-
依存関係の最小化:
- 必要最小限のライブラリのみを使用します。
- 使用していない依存関係を package.json から削除します。
-
軽量な代替ライブラリの使用:
- 可能な場合、より軽量なライブラリに置き換えます。
-
コードの最適化:
- 不要なコードを削除し、効率的なコーディング practices を使用します。
-
ビルドプロセスの最適化:
- webpack や rollup などのツールを使用して、コードを最小化およびバンドルします。
- Tree shaking を活用して、使用されていないコードを除去します。
-
外部サービスの利用:
- 一部の処理を別の AWS サービス(例:DynamoDB、S3)に移行することを検討します。
-
コードの分割:
- 機能を複数の Lambda@Edge 関数に分割し、それぞれを 1MB 以下に保ちます。
-
CDN キャッシングの活用:
- 可能な場合、処理結果を CloudFront でキャッシュし、関数の呼び出し頻度を減らします。
これらの方法を組み合わせて、1MB の制限内に収まりつつ、必要な機能を維持する Lambda@Edge 関数を作成することができます。パッケージのサイズを小さくしながら、必要なモジュールが含まれていることを確認することが重要です。
また、Lambda@Edge の制限を超える複雑な処理が必要な場合は、アーキテクチャの見直しを検討し、一部の処理を別のサービスに移行することも考慮に入れてください。
Sources
Restrictions on Lambda@Edge - Amazon CloudFront
Introducing an enhanced in-console editing experience for AWS Lambda | AWS Compute Blog
回答済み 1ヶ月前
関連するコンテンツ
- AWS公式更新しました 3年前
- AWS公式更新しました 2年前