ラムダ関数の構築
AWS Lambda関数は、呼び出されるとコードを実行します。この章では、AWSLambda関数のライフサイクルに関連するこれらすべてのステップについて詳しく説明します。
ラムダ関数を構築するための手順
ラムダ関数のライフサイクルには、4つの必要なステップが含まれています-
- Authoring
- Deploying
- Monitoring
- Troubleshooting
Lambdaコードのオーサリング
AWSLambda関数コードは次の言語で記述できます-
- NodeJS
- Java,
- Python
- C#
- Go.
AWSコンソール、AWS CLI、Eclipse IDE、Visual Studio IDE、サーバーレスフレームワークなどを使用してAWSLambdaのコードを記述できます。
次の表は、Lambda関数の記述に使用できる言語とさまざまなツールおよびIDEのリストを示しています。
言語 | LambdaコードをオーサリングするためのIDE |
---|---|
NodeJS | AWSLambdaコンソール Visual Studio IDE |
Java | Eclipse IDE |
Python | AWSLambdaコンソール |
C# | Visual Studio IDE .NETコア |
行く | AWSLambdaコンソール |
Lambdaコードのデプロイ
Lambda関数を作成する言語を決定したら、コードをデプロイする2つの方法があります-
- AWSコンソールでコードを直接記述します
- すべてのファイルと依存関係を含むファイルをZipまたはjarします
ただし、zipファイルに適切な許可を与える必要があることに注意してください。
Lambdaコードのテスト
Lambdaコードは、AWSLambdaコンソール内のイベントについてテストできます。AWSCLIおよびサーバーレスCLIからLambda関数をテストすることもできます。AWSコンソールには、AWSLambda関数のテスト中にサンプルイベントとして使用できるイベントデータもあります。
ラムダ関数の監視
Lambda関数のモニタリングは、AWSCloudWatchを使用して実行できます。選択した言語で必要なログメッセージを追加し、AWSCloudWatchで同じものを表示できます。
Lambda関数の記述を開始するには、従うべきパターンがあります。以下は、Lambda関数を作成するために従うべき主要なコアコンセプトです。
ハンドラ
ハンドラーは、実行が開始されるAWSラムダ関数の名前です。以下に示すように、AWSコンソールに表示されます-

ここで、デフォルトのハンドラーを別の名前に変更し、ハンドラーで同じ名前を更新したことに注意してください-

ハンドラーの呼び出し方法は、ランタイムとして選択された言語とは異なることに注意してください。
ハンドラーに渡されるパラメーター
ハンドラー関数を観察すると、渡されるパラメーターは次のとおりです。 event, context そして call back function 以下に示すように-

Event パラメータには、使用されるトリガーのすべての詳細が含まれます。
Contextパラメータは基本的に、Lambda関数が実行する実行時の詳細を処理します。を使用してLambda関数と対話できますcontextparam。AWS Lambdaが関数を終了するまでの残り時間、つまりLambda関数の作成中に指定されたタイムアウト、Lambda関数の名前、クラウドウォッチグループ名、arnの詳細などの詳細が含まれます。
例
例を使用して、AWSLambdaコンテキストオブジェクトから取得した詳細を理解しましょう-
exports.lambdahandler = (event, context, callback) => {
// TODO implement
console.log("context object details");
console.log(JSON.stringify(context));
callback(null, 'Lambda test');
};
上記のLambda関数を実行すると、次の出力が表示されます。
出力

ザ・ context 詳細は以下のとおりです。
{
"callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
"logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
"myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
"c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
"invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}
functionName、memorylimit、requestIdなどの詳細があることを確認してください。
ロギング
Lambda関数内に追加されたログは、AWS関数の実行時にAWSCloudWatchに表示されます。ログの構文は、選択した言語によって異なります。例nodejs、それはconsole.logです。
これは、AWSCloudWatchで確認できる出力です-

エラー処理
AWS Lambda関数は、エラーまたは成功が発生したことをLambda関数に通知するために使用されるコールバック関数を提供します。ここでは、ランタイムとしてnodejsを使用していることに注意してください。エラー処理は、選択した言語によって異なります。
より良い理解のためにここに与えられた例を観察してください-
exports.lambdahandler = (event, context, callback) => {
// TODO implement
var error = new Error("There is error in code");
callback(error);
};
出力
Lambdaコードをテストすると、次のような出力が見つかります-

ログの詳細は次のとおりです-
