Lambda の開始方法 - AWS Lambda

Lambda の開始方法

Lambda の使用を開始するには、Lambda コンソールを使用して関数を作成します。ほんの数分で、関数を作成し、関数を呼び出して、ログとメトリクスを表示することができます。

前提条件

以下がない場合は、以下のステップを実行して AWS アカウント を作成します。

AWS アカウント にサインアップするには
  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて検証コードを入力するように求められます。

    AWS アカウント にサインアップすると、AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティのベストプラクティスとして、管理ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。

AWS のサインアップ処理が完了すると、ユーザーに確認メールが送信されます。https://aws.amazon.com/[My Account] (アカウント) をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

AWS アカウント にサインアップした後、日常的なタスクにルートユーザーを使用しないように、管理ユーザーを作成します。

AWS アカウントのルートユーザー をセキュリティで保護する
  1. [ルートユーザー] を選択し、AWS アカウント のメールアドレスを入力して、アカウント所有者として AWS Management Console にサインインします。次のページでパスワードを入力します。

    ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「ルートユーザーとしてサインインする」を参照してください。

  2. ルートユーザーの多要素認証 (MFA) を有効にします。

    手順については、IAM ユーザーガイドの「AWS アカウント のルートユーザーの仮想 MFA デバイスを有効にする (コンソール)」を参照してください。

管理ユーザーを作成する
  • 日常的な管理タスクのためには、AWS IAM Identity Center (successor to AWS Single Sign-On) の管理ユーザーに管理アクセスを割り当てます。

    手順については、AWS IAM Identity Center (successor to AWS Single Sign-On) ユーザーガイドの「開始方法」を参照してください。

管理ユーザーとしてサインインする
  • IAM Identity Center ユーザーとしてサインインするには、IAM Identity Center ユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

    IAM Identity Center ユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「AWS アクセスポータルにサインインする」を参照してください。

コンソールで Lambda の関数の作成

この開始方法演習では、ブループリントを使用して Lambda 関数を作成します。ブループリントは、最小限の処理を行うためのサンプルコードを提供します。ほとんどのブループリントは、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、またはカスタムアプリケーションなどの特定のイベントソースからのイベントを処理します。

コンソールで Lambda 関数を作成するには
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. [Create function] (関数の作成) を選択します。

  3. [Use a blueprint] (設計図の使用) を選択します。

  4. [ブループリントを選択] ドロップダウンリストを開き、[Hello world 関数] を検索します。ブループリントの nodejs14.x バージョンまたは python3.7 バージョンを選択します。

  5. [Function name] (関数名) を入力します。

  6. [Execution role] (実行ロール) で [Create a new role with basic Lambda permissions] (基本的な Lambda アクセス権限で新しいロールを作成) を選択します。Lambda が、Amazon CloudWatch にログをアップロードする関数許可を付与する実行ロールを作成します。この Lambda 関数は、ユーザーの関数が呼び出される際に実行ロールを引き受け、そのロールを使用して AWS SDK のための認証情報を作成し、イベントソースからデータを読み取ります。

関数を呼び出す

コンソールから関数を呼び出すには、テストイベントを作成します。

  1. [Test] (テスト) タブを選択します。

  2. [Test event action] (イベントアクションをテスト) で、[Create new event] (新しいイベントを作成) を選択します。

  3. [Event name] (イベント名) には、テストイベントの名前を入力します。

  4. [Event sharing settings] (イベント共有の設定) で、[Private] (プライベート) を選択します。

  5. [Template] (テンプレート) では、デフォルトの [hello-world] オプションを維持します。

  6. [Event JSON] (イベント JSON) で、value1hello, world! に置き換えます。key1 やイベント構造は変更しないでください。例:

    { "key1": "hello, world!", "key2": "value2", "key3": "value3" }
  7. [Save] (保存) を選択してから、[Test] (テスト) を選択します。Lambda がユーザーに代わって関数を呼び出します。関数ハンドラーがサンプルイベントを受け取って、処理します。

  8. [Execution result] (実行結果) を確認します。[Details] (詳細) に、手順 6 で入力した値 ("hello, world!") が表示されます。実行結果には、以下の情報も含まれています。

    • [Summary] (概要) セクションには、呼び出しログの REPORT 行からの主な情報が表示されます。

    • [Log output] (ログ出力) セクションには、完全な呼び出しログが表示されます。Lambda は、呼び出しログのすべてを Amazon CloudWatch に書き込みます。

  9. [Test] (テスト) を選択して関数をさらに数回呼び出し、次のステップで表示できる追加のメトリクスを収集します。

  10. [Monitor] (モニタリング) タブを選択します。このページには、Lambda が CloudWatch に送信するメトリクスのグラフが表示されます。

    注記

    関数の呼び出し後にログが表示されるまでは、5~10 分かかる場合があります。

    これらのグラフの詳細Lambda コンソールでの関数のモニタリングを参照してください。

クリーンアップ

サンプル関数の使用が終了したら、削除します。コンソールが作成した実行ロールと、関数のログを保存するためのロググループも削除できます。

Lambda 関数を削除するには
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. 関数を選択します。

  3. [Actions] (アクション)、[Delete] (削除) の順に選択します。

  4. [Delete function] (関数の削除) ダイアログボックスに「削除」と入力してから、[Delete] (削除) を選択します。

ロググループを削除するには
  1. Amazon CloudWatch コンソールの [Log groups (ロググループ)] ページを開きます。

  2. 関数のロググループ (/aws/lambda/my-function) を選択します。

  3. [アクション]、[ロググループの削除] の順にクリックします。

  4. ロググループの削除ダイアログボックスで、[削除] をクリックします。

実行ロールを削除するには
  1. AWS Identity and Access Management (IAM) コンソールの [Roles (ロール)] ページを開きます。

  2. 関数の実行ロールを選択します (my-function-role-31exxmpl など)。

  3. [Delete] (削除) をクリックします。

  4. [Delete role] (ロールの削除) ダイアログボックスにロール名を入力し、[Delete] (削除) を選択します。

AWS CloudFormation と AWS Command Line Interface (AWS CLI) を使用して、関数、ロググループ、ロールの作成とクリーンアップを自動化できます。完全に機能するサンプルアプリケーションについては、「Lambda サンプルアプリケーション」を参照してください。

その他のリソース

最初の Lambda 関数を作成したら、以下のチュートリアルを試してください。

Lambda を使用したサーバーレスアプリケーション開発の詳細については、以下を参照してください。

Lambda へのアクセス

Lambda 関数は、以下のインターフェイスのいずれかを使用して、作成、呼び出し、および管理できます。

  • AWS マネジメントコンソールは、関数にアクセスするためのウェブインターフェースを提供します。詳細については、「Lambda コンソール」を参照してください。

  • AWS Command Line Interface (AWS CLI) – Lambda を含むさまざまな AWS サービス用のコマンドを備え、Windows、macOS、Linux でサポートされています。詳細については、「AWS CLI での Lambda の使用」を参照してください。

  • AWS SDK – 言語固有の API を提供し、署名の計算、リクエストの再試行処理、エラー処理など、各種接続の詳細を管理します。詳細については、AWSSDK をご参照ください。

  • AWS CloudFormation – Lambda アプリケーションを定義するテンプレートを作成します。詳細については、「AWS Lambda アプリケーション 」を参照してください。AWS CloudFormation は AWS Cloud Development Kit (AWS CDK)もサポートしています。

  • AWS Serverless Application Model (AWS SAM) – AWSサーバレスアプリケーションを設定および管理するためのテンプレートと CLI を提供します。詳細については、「AWS SAM の使用開始」を参照してください。

関数の作成とデプロイ

以下の表は、Lambda がサポートする言語と、それらで使用できるツールとオプションのリストです。利用できるツールとオプションは、以下の応じて異なります。

  • Lambda 関数コードの書き込みに使用する言語。

  • コードで使用するライブラリ。Lambda ランタイムは、いくつかのライブラリを提供しています。使用するライブラリを追加する場合、それらをアップロードする必要があります。

言語 コードを作成するためのツールとオプション

Node.js

Java

C#

Python

Ruby

  • Lambda コンソール

  • 独自の作成環境

Go

  • 独自の作成環境

PowerShell

デプロイパッケージを使用して、関数コードを Lambda にデプロイします。Lambda では、次の 2 種類のデプロイパッケージがサポートされます。