ベストプラクティスAWSラムダ関数

ファンクションコード

  • コアロジックからラムダハンドラ(エントリポイント)を分離します。 これは、あなたがより簡単にユニットテストの機能を作成することができます。

  • 再使用して関数の実行性能を向上させるためにコンテキストを。 あなたのコードは、ローカルストレージと参照の初期の実装後に外部化構成や依存関係を取得していることを確認します。制約変数/各コールに再初期化オブジェクトが、静的な初期化/コンストラクタ、グローバル/静的変数と単一の実施形態の使用。アクティブのままであり、単一のコールの確立に接続(HTTP、データベース、等)を再利用します。

  • 使用  AWSラムダ環境変数  あなたの関数に渡された動作パラメータを。 あなたのAmazon S3バケットを書くときに、例えば、バケット名はハードコーディングされたに書き込むべきでない、とバケット名は環境変数として設定する必要があります。

  • 依存パッケージで展開制御機能。AWSラムダ実行環境は、Node.jsのと(:完全なリストはここに配置されているPythonランタイムAWS開発キット用としていくつかのライブラリが含まAWSラムダランタイムを)。ラムダは、定期的に最新のセキュリティアップデートや機能セットをサポートするために、これらのライブラリを更新します。これらのアップデートは、ラムダ行動の機能の微妙な変化を引き起こす可能性があります。完全に使用され、あなたの関数の依存関係を制御するためには、展開パッケージ内のすべてのパッケージの依存関係することをお勧めします。

  • 展開パッケージのサイズは、時間の実行の一部のみが含まれて合理化する必要があります。 これはあなたが必要とする展開パッケージをダウンロードし、解凍する前に呼び出しまでの時間を短縮します。Javaや.NETのコアで書かれた関数については、パッケージの一部として展開をアップロードするために、全AWS SDKライブラリーを行うが、選択的開発キットのコンポーネントを選択してください(たとえば、DynamoDBのような所望のモジュールによれば、 Amazon S3のモジュール開発キットおよび  ラムダコアライブラリ)。

  • 依存  .jar 別々の/ libディレクトリ内のファイルは、することができます(Javaで書かれた)展開パッケージラムダデコンプレッサに必要な時間を短縮しますこれは、配置されている全ての機能コードの大きな比を有する  .class 同じjarファイル高速にします。手順については、  JavaでAWSラムダ展開パッケージを

  • 最小の複雑さの依存性。 好適な実行コンテキストよりシンプルなフレームワークをすばやく起動時にロードすることができます。例えば、より好適な単純なJava依存性注入(IOC)のようなフレームワーク、  ダガー  又は  Guiceのではなく、より複雑ではなく、  Springフレームワーク

  • ラムダ関数を使用することは避けてください再帰的なコードをいくつかの任意の基準を満たすまで、再帰関数を使用してコードは、自動的に自分自身を呼び出す場合ので、。これは、関数呼び出しの予想外の量につながるとコストをアップグレードすることができます。あなたがそう誤って行うと、すぐに機能が同時セットの数を制限し実行してください  0 コードを更新しつつ、機能に対するすべての呼び出しを制限します。

  ラムダ関数を使う環境変数を、あなたは、任意のコードを変更せず、機能コードやライブラリに渡す動的に設定することができます。あなたが機能の一部として作成し、設定キーと値のペアを変更するには、AWSラムダコンソール、AWSラムダCLIまたはAWSラムダ開発キットを使用する環境変数。AWSラムダは、そのようなのNode.jsの機能と同様に(標準APIでサポートされている適切な言語を使用する  process.env あなたのコードが利用可能なラムダ関数のためにこれらのキー値。

  あなたは使用することができ、環境変数をインストールファイル、出力、ストレージの接続およびログ設定の保存場所:以下の情報を知っている図書館を支援します。これらの設定は、アプリケーションのロジックを分離することによって、あなたは別の関数の動作に基づいて適切な設定を変更する必要があるときに、あなたの関数のコードを更新する必要はありません。

  あなたが経験してラムダ関数たいとしましょう開発から展開に異なるライフサイクル段階は異なる動作をします。例えば、開発、試験および生産フェーズが接続されるデータベース機能を含んでいてもよいし、異なるデータベースの接続情報と異なるテーブル名を使用する必要があります。あなたは、作成することができ、環境変数、関連するデータベース名、テーブル名または接続情報を参照するに、ステージ(例えば、開発、テスト、生産)に対応する機能が実行されているに依存する関数の値を設定し、あなたの関数のコードは同じままになります。

 

おすすめ

転載: www.cnblogs.com/cloudrivers/p/11446102.html