AWS ツールキットを使った AWS Lambda 関数の使用 - AWS Cloud9

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS ツールキットを使った AWS Lambda 関数の使用

AWS ツールキットは AWS Lambda 関数をサポートします。AWS ツールキットは、AWS Cloud9 の Lambda プラグインで以前に提供されていた機能を置き換えます。AWS ツールキットを使うと、サーバーレスアプリケーションのパートとなる Lambda 関数のコードを作成できます。さらに、Lambda 関数をローカルまたは AWS で呼び出すことができます。

Lambda は、カスタムコードまたはさまざまな AWS のサービスで生成されるイベントに応答してコードを実行する、フルマネージドのコンピューティングサービスです。これらのサービスには、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、Amazon Kinesis、Amazon Simple Notification Service (Amazon SNS)、Amazon Cognito などがあります。

重要

サーバーレスアプリケーションモデル (SAM) が提供するリソースを使用する Lambda アプリケーションを構築する場合は、「AWS ツールキットを使用した AWS サーバーレスアプリケーションの操作」を参照してください。

リモートの Lambda 関数を呼び出す

AWS ツールキットを使用して AWS Lambda 関数をさまざまな方法で操作できます。

Lambda の詳細については、「AWS Lambda デベロッパーガイドhttps://docs.aws.amazon.com/lambda/latest/dg/」を参照してください。

注記

例えば、AWS Management Console または別の方法で Lambda 関数を作成済みであるとします。これらは、AWS ツールキットから呼び出すことができます。AWS Lambda にデプロイできる AWS ツールキットを使って新しい関数を作成するには、まず、サーバーレスアプリケーションを作成する必要があります。

前提条件

  • 設定した認証情報に、AWS Lambda サービスに対する適切な読み取り/書き込みアクセス権が含まれていることを確認します。AWS Explorer[Lambda] の下に、「Error loading Lambda resources」 (Lambda リソースのロードエラー) のようなメッセージが表示される場合は、これらの認証情報にアタッチされているアクセス許可をチェックしてください。アクセス許可に加えた変更は、AWS ツールキットの AWS Explorer に反映されるまで数分かかります。

Lambda 関数の呼び出し

重要

AWS ツールキットを使って API メソッドを呼び出すと、リソースが変更され、取り消せなくなる可能性があります。たとえば、POST メソッドを呼び出すと、呼び出しが成功すれば API のリソースが更新されます。

AWSで AWS ツールキットを使って Lambda 関数を呼び出すことができます。

  1. AWS Explorer で、呼び出したい Lambda 関数の名前を選択し、コンテキストメニューを開きます。

  2. AWS での呼び出し]を選択します。

  3. 開いている[呼び出し関数 ]ウィンドウで、Lambda 関数が必要とするペイロードのオプションを選択します。(ペイロードは、入力として Lambda 関数に提供したい JSON です)。[Browse] (参照) を選択して、ペイロードとして使用するファイルを選択するか、ドロップダウンフィールドを使用してペイロードのテンプレートを選択します。この場合、テキストボックスに示されているように、Lambda 関数は、入力としての文字列として表示される可能性があります。

[Invoke] (呼び出し) を選択して Lambda を呼び出し、ペイロードで渡します。

[AWS Lambda] タブに Lambda 関数の出力が表示されます。

Lambda 関数のダウンロード、アップロード、削除

AWS ツールキットには、AWS Cloud9 IDE で Lambda 関数をインポートおよびアップロードするためのオプションが用意されています。

Lambda 関数のダウンロード

Lambda 関数をダウンロードすると、AWS クラウドの関数を記述し、これらの関数を AWS Cloud9 IDE で使用するためのプロジェクトファイルもダウンロードされます。

Lambda 関数のダウンロード

  1. AWS Explorer の [Lambda] ノードの下で、関数を右クリックしてコンテキストメニューを開き、[Download] (ダウンロード) を選択します。

  2. 新しいプロジェクトの WorkSpace フォルダの選択を求められた時には、次のいずれかを試すことができます。

    • Lambda プロジェクトと同じ名前でサブフォルダを作成するために提案されたフォルダを選択します。

    • 別のフォルダを選択を選択して、参照するダイアログボックスを開き、プロジェクトサブフォルダに別の親フォルダを選択します。

    IDE で新しいエディタウィンドウが開きます。

ダウンロードされた Lambda 関数の実行とデバッグの設定

ダウンロードした Lambda 関数をサーバーレスアプリケーションとして実行およびデバッグするには、launch.json ファイルで起動設定を定義する必要があります。AWS Management Consoleで作成した Lambda 関数は、起動設定に含まれていない場合があります。その場合は、手動で追加する必要があります。

起動設定に Lambda 関数を追加するには

  1. Lambda 関数をダウンロードしたら、[Environment] (環境) ウィンドウを開いてフォルダとファイルを表示します。

  2. 次に、Lambda 関数が /home/ec2-user/.c9/launch.json ファイルに含まれていることを確認します。存在しない場合は、次の操作を実行して、関数のコードに CodeLens リンクを追加します。

    1. Lambda 関数を定義するソースコードファイル (.js ファイルや .py ファイルなど) を開きます。次に、Lambda 関数を launch.json ファイルに追加するために使用できる CodeLens リンクがあるかどうかを確認します。CodeLens は関数の上に表示され、Add Debug Config リンクが含まれています。

    2. IDE の左側にある [Go] (移動) (虫眼鏡アイコン) を選択し、「sam hint」と入力して AWS: Toggle SAM hints in source files コマンドを表示します。コマンドを選択して実行します。

    3. Lambda ソースコードファイルを閉じて、再度開きます。

    4. ファイルを再度開いた後で CodeLens がソースコードで使用可能である場合は、Add Debug Config を選択して起動設定を追加します。

  3. SAM ヒントオプションを切り替えた後でも CodeLens を追加できない場合は、次の手順を実行して起動設定を追加します。

    1. IDE の左側にある [Go] (移動) (虫眼鏡アイコン) を選択し、「config」と入力して AWS: SAM Debug Configuration Editor コマンドを表示します。コマンドを選択して実行します。

    2. [SAM Debug Configuration Editor] (SAM デバッグ設定エディタ) が表示されます。このエディタを使用して、起動設定のプロパティを定義できます。詳細については、「サーバーレスアプリケーションの実行とデバッグのため、SAM テンプレートを使用」で「configuring launch properties」のステップを参照してください。

      注記

      Lambda 関数に SAM アプリケーション用の template.yaml がない場合は、これを追加する必要があります。詳細については、「AWS SAM テンプレートの作成」を参照してください。

    3. エディタで必要な設定情報の入力を完了すると、起動設定が launch.json ファイルに追加されます。

Lambda 関数の起動設定を定義したら、次の手順に従って実行できます。

  1. IDE の上部で、[Auto] (自動) の横にある矢印を選択し、該当する起動設定を選択します。

  2. 続いて、[Run] (実行) を選択します。

Lambda 関数のアップロード

既存の Lambda 関数をローカルコードで更新できます。この方法でコードを更新すると、デプロイに AWS Serverless Application Model CLI は使用されず、AWS CloudFormation スタックは作成されません。これにより、Lambda でサポートされている任意のランタイムを使って Lambda 関数をアップロードできます。

AWS Toolkit を使用して Lambda 関数をアップロードするには、いくつかのインターフェイスオプションがあります。

  1. プロジェクトファイルの [Environment] (環境) ウィンドウで、アップロードする Lambda アプリケーションの template.yaml を右クリックしてコンテキストメニューを開き、[Upload Lambda] (Lambda のアップロード) を選択します。

    または、Ctrl+P を押して [どこにでも移動] ペインを開き、「lambda」と入力して [AWS Lambda のアップロード] コマンドにアクセスします。続いて、このコマンドを選択してアップロードプロセスを開始します。

  2. 次に、アップロード先の AWS リージョンを選択します。

  3. ここで、Lambda 関数をアップロードするためのオプションを選択します。

    .zip アーカイブをアップロード

    1. メニューから[ZIP アーカイブ]を選択します。

    2. AWS Cloud9 ファイルシステムから .zip ファイルを選択し、[Open (開く)] を選択します。

    ディレクトリをそのままアップロード

    1. メニューから[ディレクトリ]を選択します。

    2. 自分の AWS Cloud9 ファイルシステムからディレクトリを選択し、[Open (開く)]を選択します 。

  4. イベントを処理する Lambda 関数ハンドラーを指定します。関数が呼び出されると、Lambda はこのハンドラーメソッドを実行します。

    注記

    Lambda 関数を選択するときは、表示されるリストから選択できます。選択する関数がわからない場合は、ツールキットで利用可能な Lambda 関数の Amazon リソース番号 (ARN) を入力できます。

    このコードを Lambda 関数の最新バージョンとして公開するかどうかを尋ねるダイアログが表示されます。[はい] を選択して、公開を確認します。

    注記

    フォルダの親フォルダを右クリックしてコンテキストメニューを開き、[Upload Lambda] (Lambda のアップロード) を選択して、Lambda アプリケーションをアップロードすることもできます。親フォルダがアップロードのために自動的に選択されます。

  1. AWS Explorer で、インポートする Lambda 関数の名前を右クリックしてコンテキストメニューを開きます。

  2. [Lambda のアップロード] を選択します。

  3. Lambda 関数をアップロードするための 3 つのオプションから選択します。

    事前に作成された .zip アーカイブをアップロード

    1. メニューから[ZIP アーカイブ]を選択します。

    2. AWS Cloud9ファイルシステムから ZIP ファイルを選択し、オープンを線多雨します。

    3. モーダルダイアログでアップロードを確認します。こうして、.zip ファイルがアップロードされ、デプロイ後にすぐに Lambda が更新されます。

    ディレクトリをそのままアップロード

    1. メニューから[ディレクトリ]を選択します。

    2. 自分の AWS Cloud9 ファイルシステムからディレクトリを選択し、[Open (開く)]を選択します 。

    3. ディレクトリの構築を求められたら、[いいえ]を選択します。

    4. モーダルダイアログでアップロードを確認します。これにより、ディレクトリがそのままアップロードされ、デプロイ後にすぐに Lambda が更新されます。

    ディレクトリの構築とアップロード

    1. メニューから[ディレクトリ]を選択します。

    2. 自分のAWS Cloud9 ファイルシステムからディレクトリを選択し、[Open (開く)]を選択します。

    3. ディレクトリの構築を求められたら、[はい]を選択します。

    4. モーダルダイアログでアップロードを確認します。これにより、AWS SAM CLI sam build コマンドを使用してディレクトリにコードを構築し、デプロイ後に、すぐに Lambda を更新します。

リモートアクセス用の Lambda 関数のデプロイ

ローカル関数をサーバーレス SAM アプリケーションとしてデプロイすることで、リモートで使用可能にすることができます。

Lambda 関数を SAM アプリケーションとしてデプロイするには

  1. [AWS Explorer] ウィンドウで、[Lambda] ノードを右クリックしてコンテキストメニューを開き、[Deploy SAM Application] (SAM アプリケーションのデプロイ) を選択します。

  2. コマンドペインで、関数をサーバーレスアプリケーションとして定義する [YAML テンプレート] を選択します。

  3. 次に、Lambda デプロイ用の Amazon S3 バケットを選択します。デプロイ用のバケットを作成することもできます。

  4. 次に、デプロイ先の AWS CloudFormation スタックの名前を入力します。既存のスタックを指定すると、コマンドはスタックを更新します。新しいスタックを指定すると、コマンドはスタックを作成します。

    スタックの名前を入力すると、Lambda 関数が SAM アプリケーションとしてデプロイを開始します。デプロイが成功すると、SAM Lambda アプリケーションをリモートで使用できるようになります。これにより、他の AWS Cloud9 開発環境からダウンロードしたり呼び出したりすることができます。

Lambda 関数をゼロから作成する場合は、「AWS ツールキットでサーバーレスアプリケーションを作成」のステップに従うことをお勧めします。

Lambda 関数の削除

同じコンテキスト (右クリック) メニューを使用して Lambda 関数を削除することもできます。

警告

この手順は、AWS CloudFormation に関連付けられている Lambda 関数の削除には使用しないでください。例えば、このガイドで前述したサーバーレスアプリケーションの作成時に作成した Lambda 関数を削除しないでください。これらの関数は、AWS CloudFormation スタックを通じて削除する必要があります。

  1. AWS Explorer で、削除したい Lambda 関数の名前を選択し、そのコンテキスト (右クリック) メニューを開きます。

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

  3. 表示されるメッセージで、[はい] を選択して削除を確認します。

関数が削除されると、AWS Explorer に表示されなくなります。