Lambda 関数を呼び出すために使用できるトリガーの概要

Lambda Guan Shuwo Hubi Chusutameni Shi Yongdekirutorigano Gai Yao



AWS Lambda は、サーバーレスの世界に革命をもたらした素晴らしいクラウドベースのサービスです。これは実際には、簡単かつ迅速にセットアップできるサービスとしてのソフトウェア (SaaS) であり、クラウド インフラストラクチャの全体的な予算を削減するのに役立ちます。コードを設計し、ラムダ関数を使用して実行するだけです。

さて、ここでのポイントは、関数内でコードを実行する方法であり、これに対する答えは、ラムダ関数を呼び出したりトリガーしたりできるメソッドの長いリストがあるということです。これには、必要に応じて目的の関数を呼び出すために使用できる他の多くの AWS サービスが含まれます。

この記事では、Amazon でラムダ関数を呼び出すために適用できるサービスと手法について簡単に説明します。







呼び出しの種類

先に進む前に、ラムダ関数が処理できる次の 2 つの主要な呼び出しタイプについて説明します。



  • 同期呼び出し
  • 非同期呼び出し
  1. 同期呼び出し
    同期呼び出しでは、ラムダを呼び出すサービスは、結果が返されるまで待機してから、残りのプロセスを続行する必要があります。ラムダ関数の出力は、このラムダを呼び出した関数またはサービス自体に必要であるとも言えます。
  2. 非同期呼び出し

    ここでは、ラムダ関数が呼び出し元に結果を返すのを待つ必要はありません。これは主に、AWS での通知またはその他の独立したイベントのトリガーに使用されます。ラムダ関数を呼び出したいサービスはトリガーを送信するだけで、その操作はラムダでキューに入れられ、順番に実行されます。



Lambda を呼び出すさまざまな方法

ここでは、ラムダ関数を呼び出すさまざまな方法について説明します。これを知っておくと、次にシンプルで費用対効果の高い AWS インフラストラクチャを設計するときに非常に役立ちます。





Lambda 関数を直接呼び出す

ほとんどの場合、ラムダ関数は他のサービスを使用してトリガーされるように設計されていますが、AWS マネジメント コンソール、AWS CLI、および関数 URL を使用して直接呼び出すことができます。

Management Console からの Lambda の呼び出し

AWS コンソールでラムダ関数を作成すると、コンソールのテスト実行オプションを使用して簡単にトリガーできます。の テスト ボタンは、ラムダ関数のコード セクションの下にあります。



カスタム イベントを作成したり、カスタム イベント パターンでコンソールを使用したりできます。

このようにして、AWS コンソールからラムダ関数をトリガーできます。

AWS CLI

AWS では、AWS コマンド ライン インターフェイスを使用してすべてのリソースを使用できます。この CLI を使用して、任意のラムダ関数を呼び出すこともできます。これは、開発段階でのテストに非常に効果的です。以下の AWS CLI コマンドは、ラムダ関数を呼び出すためのトリガーとして使用できます。

[メール保護] :~$ awsラムダ呼び出し\
-- 関数名 < Lambda 関数名を入力します > \
- ペイロード < 入力値 為に ラムダ関数 > \
--cli-binary-format < base64 | | raw-in-base64-out > < 出力ファイル名 >

関数は正常にトリガーされ、出力でも確認できます。

機能 URL

関数 URL は実際には、ラムダ関数用に構成できる HTTP エンドポイントです。この URL を使用してラムダ関数をトリガーできます。また、この URL を他のユーザーと共有することもできます。この URL は、AWS アカウントの外部であっても、ラムダ関数を呼び出すことができます。関数の URL には注意する必要がありますが、このリンクを知っている人は誰でもラムダ関数を何度もトリガーすることができ、すべてのコストはあなたの負担になります。

関数 URL は、ラムダ関数の作成中および作成後に構成できます。これを行うには、構成セクションの詳細設定に移動して、 関数 URL を有効にする 箱。

ラムダ関数の作成中に関数 URL を添付しなかった場合は、後で行うことができます。このためには、構成タブに移動し、関数 URL を選択して、 関数 URL の作成 .

このようにして、関数 URL が作成され、ラムダ関数を呼び出すために使用されます。

AWS サービスを使用して Lambda 関数を呼び出す

ラムダ関数を呼び出すトリガーとして、多くの AWS サービスを設定できます。ラムダ関数を呼び出すトリガーとして AWS サービスを設定するだけです。ここでは、これらすべてのサービスをラムダ トリガーとして使用する方法について説明します。

API ゲートウェイ

これは、アプリケーション モデルで API を作成および管理するために広く使用されている AWS のサービスです。 API は、あるソフトウェア パッケージから別のパッケージへの要求または呼び出しを生成するための非常に柔軟な方法を提供します。これらは、直接公開することはできず、舞台裏で行いたいだけです。

任意のサービスをラムダ関数にトリガーとして追加するには、ラムダ関数に移動し、トリガーの追加をクリックします。

次に、トリガーとしてラムダ関数にアタッチするサービスを選択できます。このセクションでは、ラムダ関数のトリガーとして API ゲートウェイを選択します。

次に、アプリケーション構造で動作するようにサービスを構成します。

API ゲートウェイでサポートされている API には 2 つのタイプがあり、これらを利用してラムダ関数を呼び出すことができます。

HTTP API : ラムダ関数にルーティングされる HTTP エンドポイントを生成するために使用されます。 HTTP API は機能が少なく、使用コストも低くなります。

REST API : API にさらに多くの機能が必要な場合は、REST API を使用する必要があります。これらの API は、ラムダ関数を呼び出して同じ HTTP メソッドを使用できるため、柔軟性と独立性が向上します。

S3 バケット

S3 バケットがラムダ関数を呼び出すトリガーとして機能していることがわかるユースケースはたくさんあります。特定の S3 イベントに対してラムダ関数をトリガーするように S3 バケットを設定できます。

たとえば、ファイルがバケットにアップロードされたときに、そのファイルのメタデータを収集したいとします。このために、コードを開発し、ラムダ関数にデプロイします。 Lambda トリガーには、S3 バケットを選択します。イベントの種類については、 オブジェクトを置く .そのため、新しいファイルがバケットに追加されるたびに、ラムダ関数がトリガーされ、オブジェクトのメタデータが収集され、指定した宛先の場所に保存されます。

ラムダ関数を呼び出すトリガーとして S3 を使用できるシナリオは他にもたくさんあります。

ロードバランサー

アプリケーションがラムダ関数で実行するように設計されているとします。これは、ラムダ関数が単純なクラウドベースのアプリケーションにとって最も費用対効果の高いソリューションであるためです。ここで、アプリケーションをエンド ユーザーに公開するために、アプリケーションの前にロード バランサーを接続することができます。このセクションでは、ラムダ関数を呼び出すトリガーとして機能するロード バランサーを選択します。他のロード バランサーはラムダ関数でサポートされていないため、このタスクにはアプリケーション ロード バランサーのみを設定できることに注意してください。

アプリケーション ロード バランサーをラムダ関数に追加するには、まずターゲット グループを作成する必要があり、ラムダ関数がそのターゲット グループに追加されます。これで、新しく作成したターゲット グループをアプリケーション ロード バランサーのリスナーに追加できます。

クラウドフロント

Amazon CloudFront は実際には CDN (コンテンツ配信ネットワーク) であり、実際のアプリケーション サーバーと比較してエンド ユーザーにはるかに近いエッジ ロケーションでアプリケーション データをキャッシュするために使用されます。 CloudFront を使用すると、世界中のエンドユーザーに静的コンテンツを提供するための応答時間を大幅に改善できます。

ラムダ関数は、CloudFront サービスを使用してトリガーできます。このためには、ラムダ関数を世界中のエッジ ロケーションにデプロイする必要があります。 [メール保護]

CloudFront をトリガーとして設定して、リクエストを [メール保護] CloudFront を介して応答時間を改善します。として [メール保護] が世界中のすべてのエッジ ロケーションにデプロイされているため、エンド ユーザーは、ラムダ デプロイされた最も近いエッジ ロケーションにアクセスすることで、最小限の応答時間に直面します。

これを設定するには、単に トリガーを追加 CloudFront サービスを選択します。そこに、 デプロイ先 [メール保護] オプション。

あとは、構成手順を完了して開始するだけです。

CloudWatch ログ

AWS クラウドでの監視について考えるときはいつでも、最初に頭に浮かぶのは CLoudWatch です。これは、さまざまなサービスに対して非常に役立つ方法で構成できる非常に広大な監視サービスであるためです。

名前が定義するように、CloudWatch ログは、あらゆる種類のログを保存するために使用できるログ サービスです。ログを別々に保つために、サービスごとに異なるログ グループを作成できます。これらのログは、これらのイベントを生成するサービスまたは手順に関係なく、受信するイベントに基づいてラムダ関数をトリガーするために使用できます。

トリガーは、ラムダ関数コンソールから、または CloudWatch ログから直接構成できます。 CloudWatch コンソールからこれを行うには、CloudWatch サービスに移動してログ グループを開きます。ここでは、ラムダ サブスクリプション フィルターを作成する必要があります。

次に、必要なラムダ関数を選択すると、準備完了です。

これで、CloudWatch がそのログ ストリームを取得するたびに、ラムダ関数を呼び出すトリガーとして機能します。

イベントブリッジ

Amazon EventBridge (以前の CloudWatch Events) は、AWS アカウントで発生する特定のイベントで特定の AWS サービスをトリガーするイベント ルールを作成できる AWS サービスです。

AWS サービス (EC2 インスタンス作成や RDS データベース イベントなど) やサードパーティ サービス (GitHub プッシュ イベントなど) に対して設定できるさまざまなルールがあります。これらのルールは、このルールが満たされるたびにラムダ関数を呼び出すような方法で、ラムダ関数などの他のサービスとさらにリンクできます。

EventBridge ルールが既に設定されている場合は、このルールをトリガーとしてラムダ関数に簡単に追加できます。 EventBridge をトリガーとして選択し、ルールの名前を指定するだけです。

トリガーとして既存のルールがここに追加されますが、この時点でルールを作成することもできます。

DynamoDB

DynamoDB は単なる NoSQL データベースであり、AWS では完全に独立したサービスとして表示されることをご存知かもしれません。これは完全に構成されたサーバーレス データベースであり、テーブルの作成を直接開始できます。これらの DynamoDB テーブルは、ラムダ関数を呼び出すトリガーとして機能するように設定できます。

DynamoDB からのデータは、ラムダにバッチ形式で入力としてロードでき、ラムダにデプロイされたコードを使用して処理されます。

キネシス

リアルタイムのデータを高速で収集して分析したい場合は、AWS Kinesis を利用できます。ラムダ関数を使用して、Kinesis データストリームによって収集されたデータを処理するとします。 Kinesis によってデータが記録されるたびに、ラムダ関数をトリガーするだけです。

これで、ラムダ関数を呼び出すように Kinesis データ ストリームの設定が完了しました。

SNS

あるサービスから別のサービスに通知を直接設定する方法がない場合があるため、ある AWS サービスから別のサービスに通知を送信するために一般的に使用される通知サービスです。ラムダ関数は、このサービスを使用してトリガーできます。

最初に SNS トピックを作成し、それを使用してラムダ関数を呼び出します。

SNS トピックの名前を選択する必要があります。他の構成や設定はありません。

結論

Amazon Lambda は、まさにクラウド アーキテクチャのブレークスルーです。アプリケーションの開発と展開は、これまでになく簡単で単純なものでした。一般的なフレームワークでコードを作成し、コードをラムダにアップロードするだけで実行できます。 AWS ラムダと組み合わせて、必要な場合にのみラムダ関数を呼び出すトリガーとして機能する他のサービスの長いリストがあります。サーバーの継続的な運用コストはありませんが、トリガーの数とコードの実行時間に応じて課金されます。