Amazon-web-services-lambda
アマゾンウェブサービス-ラムダ
AWS Lambdaは、アプリケーション内のアクションを検査し、*関数*と呼ばれるユーザー定義コードをデプロイすることで応答するレスポンシブクラウドサービスです。 複数のアベイラビリティーゾーンにわたってコンピューティングリソースを自動的に管理し、新しいアクションがトリガーされるとそれらをスケーリングします。
AWS LambdaはJava、Python、Node.jsで記述されたコードをサポートし、サービスはAmazon Linuxがサポートする言語(Bash、Go、Rubyを含む)でプロセスを起動できます。
以下は、AWS Lambdaを使用する際の推奨されるヒントです。
- Lambda関数コードをステートレススタイルで記述します。
- ハンドラーのスコープ外で関数変数を宣言しないでください。 Lambdaがユーザーに代わってコードを実行できるように、アップロードされたZIPのファイルに+ rx permissions *のセットを必ず設定してください。
- 不要になった古いLambda関数を削除します。
AWS Lambdaを設定する方法は?
AWS Lambdaを初めて設定するには、次の手順に従います。
- ステップ1 *-AWSアカウントにサインインします。
- ステップ2 *-AWSサービスセクションからLambdaを選択します。
- ステップ3 *-ブループリント(オプション)を選択し、[スキップ]ボタンをクリックします。
ステップ4 *-次のスクリーンショットに示すように Lambda関数*を作成するために必要な詳細を指定し、DynamoDBに新しいアイテムが追加されるたびに自動的にトリガーされるNode.jsコードを貼り付けます。 必要なすべての権限を選択します。
- ステップ5 *-[次へ]ボタンをクリックして、詳細を確認します。
- ステップ6 *-[関数の作成]ボタンをクリックします。
ここで、Lambdaサービスを選択し、[イベントソース]タブを選択すると、レコードはありません。 動作するLambda関数に少なくとも1つのソースを追加します。 ここでは、DynamoDBテーブルを追加しています。
DynamoDBを使用してテーブルを作成しました(これについては、DynamoDBの章で詳しく説明します)。
- ステップ7 *-ストリームタブを選択し、Lambda関数に関連付けます。
このエントリは、Lambdaサービスページの[イベントソース]タブに表示されます。
- ステップ8 *-いくつかのエントリをテーブルに追加します。 エントリが追加および保存されると、Lambdaサービスが関数をトリガーする必要があります。 Lambdaログを使用して確認できます。
- ステップ9 *-ログを表示するには、Lambdaサービスを選択し、[監視]タブをクリックします。 次に、CloudWatchで[ログの表示]をクリックします。
AWS Lambdaの利点
以下は、Lambdaタスクを使用する利点の一部です-
- Lambdaタスクは、Amazon SWFアクティビティタイプのように登録する必要はありません。
- ワークフローで既に定義した既存のLambda関数を使用できます。
- Lambda関数は、Amazon SWFによって直接呼び出されます。それらを実装して実行するプログラムを設計する必要はありません。
- Lambdaは、関数の実行を追跡するためのメトリックとログを提供します。
AWS Lambdaの制限
以下は、3種類のLambda制限です。
スロットル制限
スロットル制限は、アカウントごとに100の同時Lambda関数実行であり、同じリージョン内のすべての関数の合計同時実行に適用されます。
関数の同時実行数を計算する式=(関数実行の平均期間)X(AWS Lambdaによって処理されたリクエストまたはイベントの数)。
スロットル制限に達すると、エラーコード429を持つスロットルエラーが返されます。 15〜30分後、作業を再開できます。 スロットル制限は、AWSサポートセンターに連絡することで増やすことができます。
リソース制限
次の表は、Lambda関数のリソース制限のリストを示しています。
Resource | Default Limit |
---|---|
Ephemeral disk capacity ("/tmp" space) | 512 MB |
Number of file descriptors | 1,024 |
Number of processes and threads (combined total) | 1,024 |
Maximum execution duration per request | 300 seconds |
Invoke request body payload size | 6 MB |
Invoke response body payload size | 6 MB |
サービス制限
次の表は、Lambda関数をデプロイするためのサービス制限のリストを示しています。
Item | Default Limit |
---|---|
Lambda function deployment package size (.zip/.jar file) | 50 MB |
Size of code/dependencies that you can zip into a deployment package (uncompressed zip/jar size) | 250 MB |
Total size of all the deployment packages that can be uploaded per region | 1.5 GB |
Number of unique event sources of the Scheduled Event source type per account | 50 |
Number of unique Lambda functions you can connect to each Scheduled Event | 5 |
最新の制限構造と詳細については、https://docs.aws.amazon.com/lambda/latest/dg/limitsl/をご覧ください。