コードを愛する人のために – AWS Lambda

環境・プラットフォーム

現在ブリッジSEのyoshyです。今回は、プロジェクトでお世話になっているLawrence Beloさんの英語記事を翻訳させていただき、AWS Lambdaの構築方法をマネジメントコンソールを用いて説明していきます。

導入

私がソフトウェア開発者として働き始めたとき、気にしていたのは書いたコードが実行されるのを見ることだけでした。キャリアが進むにつれて、アプリケーション開発は単にコードを書くだけではないことに気づきました。コードが実行されるプラットフォーム、アプリケーションに必要なリソース、ワークロードが増加したときにアプリケーションがどのようにスケールされるかなど、アプリケーションの基盤となるインフラストラクチャについても考慮する必要がありました。

また、AWS (Amazon Web Services) や GCP (Google Cloud Platform) などのクラウド サービスの人気が高まるにつれて、考慮すべきことがさらに増えています。そのため、初めて AWS Lambda について聞いたとき、最初は「学ぶべき AWS サービスがまた一つ増えた」と感じただけでした。しかし、時間をかけて AWS Lambda について学習した後、これがどれほど素晴らしいサービスであるかを知りました。これにより、アプリ開発の基盤となるインフラストラクチャへの考慮が減り、開発者が最も関心のあること、つまりコードの作成に集中できるようになります。

AWS Lambda を他の AWS サービスと一緒に使用する場合は、構築のハードルが上がりますが、AWS Lambda 自体は非常に簡単です。 AWS Lambda を理解するには、関数、マイクロサービス、サーバーレスコンピューティングの概念を理解することから始まります。

機能

関数は、単に 1 つのことを実行するコードのブロックです。関数は通常、関数パラメーターから入力を受け取り、入力に基づいて出力を返します。 AWS Lambda コードは、トリガーとなるイベントに基づいて特定の入力パラメータをセットし、呼び出される関数です。

マイクロサービス

従来のモノリシックアーキテクチャでは、すべてのアプリケーションサービスが 1 つのアプリケーション内に含まれています。コードはモジュール形式で編成されている場合でも、すべてが単一のアプリケーションで実行されます。マイクロサービスアーキテクチャでは、モノリシックアーキテクチャをマイクロサービスに分割できます。各マイクロサービスはアプリケーションのサービスの 1 つであり、単独で動作することも、他のマイクロサービスと連携して動作することもできます。

サーバーレスコンピューティング

すべての Web アプリケーションには、サーバーレスアプリケーションを含め、それをホストするサーバーが必要です。サーバーレス アプリケーションはサーバー上で実行されますが、ハードウェアリソースはプロバイダーによってオンデマンドで割り当てられます。 AWS Lambda の場合、AWS が基盤となるインフラストラクチャを処理するため、考えなければならないのはコードだけです。

LAMBDA 関数を理解する

まず、Lambda コードのセットアップを理解する必要があります。 Lambda コードは、イベントに応答して呼び出される単なる関数であり、イベントは他の AWS サービスによってトリガーされます。 API ゲートウェイからの呼び出し、S3 にアップロードされたファイル、またはエラー通知などが挙げられます。

AWS LAMBDA を使用して関数を作成する方法

  1. AWS アカウントにログインします。
  2. AWS Lambda コンソールに移動します。 ラムダナビゲーション
  3. 関数を作成します。
    • Lambda コンソールで、ページの右上にある [関数の作成]ボタンをクリックします。ラムダ作成
  4. 機能オプションを選択します。
    • [関数名]には、関数を識別するための任意の名前を設定できます。
    • ランタイムでは、最も使いやすい言語を選択できます。
    • 残りのオプションはデフォルトのままにすることができます。
    • ページの下部にある 「関数の作成」をクリックします。ラムダ作成
  5. コードを編集してデプロイします。
    • 関数ページには、関数の視覚的な概要と、コードを記述できる領域が表示されます。デフォルトでは、コード領域にサンプルコードが表示されます。関数には「event」パラメータが渡されることに注意してください。これは、後でコードをテストするときに使用されます。コードに変更を加えた場合は、「デプロイ」ボタンをクリックすることを忘れないでください。 ラムダ関数
  6. コードのテスト イベントをセットアップします。
    • コード領域の上にある「テスト」ボタンをクリックします。ここではイベントを作成する必要があります。[テスト イベントの構成]ダイアログに JSON 値が表示され、これは関数にパラメーターとして渡される「 event 」値です。
    • イベントを識別するためにイベント名を設定します。
    • 「作成」ボタンをクリックします。 ラムダテスト
  7. コードをテストします。
    • [テスト]ボタンを再度クリックして、実行します。関数の結果は、コードセクションの 「実行結果」タブに表示されます。ラムダの結果

関数を作成したら、次に知っておく必要があるのは、特定のイベントに応答するように関数を設定する方法です。

LAMBDA 関数のトリガーイベントを設定する方法

  1. 関数ページに戻ります。
     ラムダトリガー
  2. 機能概要セクションの「トリガーの追加」ボタンをクリックします。これにより、AWS サービスおよびその他のいくつかのサードパーティ サービスのリストからトリガー設定を選択するよう求められます。 ラムダトリガー
  3. トリガーイベントを選択します。選択したトリガーによっては、トリガーを追加する前にいくつかの設定を行う必要がある場合があります。 ラムダトリガー
  4. 「追加」ボタンをクリックします。トリガーが関数の概要に表示されるようになります。それが関数を呼び出すイベントになります。

最後に、関数とトリガー イベントを設定した後、データを処理してそれに応じて動作するために、イベントからどのようなデータが期待されるかを知る必要があります。

Lambda 関数は、event、context、callback の3 つのパラメータを受け入れます。コールバックパラメーターは、関数に「async」キーワードを使用していない場合にのみ使用されます。eventパラメーターには、トリガーイベントに基づく JSON 値が含まれます。各イベントからどのようなデータが渡されるか知るには、テストイベントを構成し、追加したトリガーイベントと一致するイベントテンプレートを選択します。サンプル JSON が表示され、関数の「 event 」パラメーターで受け取ると、期待されるデータの形式が示されます。ラムダテスト

contextパラメータに、AWS リクエスト ID、関数に割り当てられたメモリ、ID 情報など、Lambda 関数の特定の呼び出しに関する情報が含まれています。

コールバックパラメーターは、エラーメッセージと JSON 応答オブジェクトの 2 つのパラメーターを受け取る関数オブジェクトです。

この記事で、AWS Lambda はそれほど難しくないということを感じていただければ幸いです。今回は、関数の作成、トリガーの設定、Lambda 関数パラメーターの理解を通じて Lambda を構築する方法について説明しました。 これにより、私たちが本当に集中する必要があるのは単にコードを書くという好きなことを行うことだけです。

AWS Lambda の詳細については、ここで公式ドキュメントを読むことができます。



オフショア開発ならCRAID!

オフショア開発とは、システム開発業務などを海外の開発会社や海外子会社に委託することです。

CRAIDは東証プライム上場のフリービット株式会社の子会社です。CRAIDのオフショア開発拠点「フルスピードテクノロジーズ」は、当初は月間3000億ものリクエスト処理にも対応できる自社システム開発を行うためのオフショア開発部門として始まりました。各グループ会社の開発やクライアント様の受託開発やラボ型開発も多く手掛けております。

CRAIDやオフショア開発に関して、お気軽にお問い合わせください。

この記事を書いた人

ブリッジSE

yoshyをフォローする
環境・プラットフォーム
CRAID オフショア開発ブログ
タイトルとURLをコピーしました