との共同作業 AWS Lambda の関数 AWS Cloud9 Integrated Development Environment (IDE) - AWS Cloud9

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

との共同作業 AWS Lambda の関数 AWS Cloud9 Integrated Development Environment (IDE)

AWS Cloud9 IDE を使用して、AWS Lambda 関数および関連する Amazon API Gateway API を AWS Cloud9 開発環境 で操作できます。たとえば、次のようにすることができます。

  • 環境 から新しい関数を作成します。また、関数のローカルバージョンを Lambda にアップロードし、必要に応じて新しい関数をサポートする追加の AWS リソースを同時に作成します。

  • 環境 で関数とその関連 API を実行およびデバッグします。関数と API の実行は 環境 内で完結します。

  • 環境 でリモートバージョンの関数とその関連 API を実行します。リモートバージョンの実行は Lambda および API Gateway 内で完結します。

  • Lambda 内の既存の関数を 環境 にインポートし、関数とその関連 API の実行とデバッグ、コードの編集、またはその両方を実行できるようにします。

  • 関数コードのローカルバージョンに加えた変更を、Lambda のリモートバージョンにアップロードします。

このトピックでは、既に Lambda について知っていることを前提としています。詳細については、AWS Lambda Developer Guide を参照してください。

注記

この手順を完了すると、AWS アカウントに料金が発生する可能性があります。これらには Lambda、API Gateway などのサービスや、AWS サーバーレスアプリケーションモデル (AWS SAM) でサポートされる AWS のサービスで発生する可能性のある料金が含まれます。詳細については、「AWS Lambda 料金表」、「Amazon API Gateway 料金表」、および「クラウドサービスの料金表」を参照してください。

一緒に働く準備をする Lambda 機能

AWS Cloud9 IDE で Lambda 関数を使用する前に、次のステップを完了しておく必要があります。

ステップ 1. ステップ 1: 必要なアクセス権限を持つ IAM グループをセットアップする

AWS 認証情報が AWS アカウントの IAM 管理者ユーザーに関連付けられており、このユーザーを使用して Lambda 関数を操作する場合は、「ステップ 2. をセットアップする 環境 皆さんの AWS アクセス資格情報」までスキップします。

それ以外の場合は、次の手順に従って IAM コンソールで AWS 管理ポリシー (AWSLambdaFullAccessAmazonAPIGatewayAdministratorAmazonAPIGatewayInvokeFullAccess) と別の追加のインラインポリシーを、ユーザーが属する IAM グループにアタッチします。

  1. AWS マネジメントコンソール にまだサインインしていない場合は、サインインします。

    このステップでは、AWS アカウントの IAM 管理者の認証情報を使用してサインインすることをお勧めします。これを実行できない場合は、AWS アカウントの管理者に確認してください。

  2. IAM コンソールを開きます。これを行うには、コンソールのナビゲーションバーで、[サービス] を選択します。次に、[IAM] を選択します。

  3. [グループ] を選択します。

  4. グループの名前を選択します。

  5. [アクセス許可] タブの [管理ポリシー] で [ポリシーのアタッチ] を選択します。

  6. ポリシー名のリストで、[AWSLambdaFullAccess]、[AmazonAPIGatewayAdministrator]、および [AmazonAPIGatewayInvokeFullAccess] の横にあるボックスを選択します。(いずれのポリシー名もリストに表示されない場合は、[検索] ボックスにポリシー名を入力して表示させます。)

  7. [Attach Policy] を選択します。

  8. 次の ZIP ファイルをローカル コンピュータにダウンロードします。Cloud9LambdaAccessGroup.zip. 次に、ダウンロードした ZIP ファイルから Cloud9LambdaAccessGroup.yaml という名前の AWS CloudFormation テンプレートファイルを抽出します。

  9. AWS CloudFormation コンソールを開きます。これを行うには、コンソールのナビゲーションバーで、[サービス] を選択します。次に、[CloudFormation] を選択します。

  10. [Create Stack] を選択します。

  11. [テンプレートの選択] ページの [テンプレートの選択] で、[テンプレートを Amazon S3 にアップロード] を選択します。[参照] を選択して、抽出した AWS CloudFormation テンプレートファイルを選択します。

  12. [] を選択します。

  13. 詳細の指定 ページ、用 スタック名、スタックの名前を入力します(例: AWSCloud9LambdaAccessStack。 別の名前を入力した場合は、この手順全体を通して置き換えます)。

  14. [パラメータ] で、[GroupName] に、アクセスポリシーをアタッチする先の AWS アカウント内の既存のグループ名を入力します。

  15. [] を選択します。

  16. [オプション] ページで、[次へ] を選択します。([オプション] ページのデフォルト設定は変更しないでください。)

  17. [確認] ページで、[AWS CloudFormation によって IAM リソースが作成される場合があることを承認します] を選択します。

  18. [作成] を選択します。

[AWSCloud9LambdaAccessStack] スタックに [CREATE_COMPLETE] と表示されるまで待ちます。これにはしばらく時間がかかることがあります。しばらくお待ちください。

注記

AWS CloudFormation によってグループにアタッチされたアクセスポリシーは AWSCloud9LambdaGroupAccess という名前で、次のように定義されています。ここで ACCOUNT_ID はお客様の AWS アカウント ID です。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetUser", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:DeleteRole" ], "Resource": "arn:aws:iam::ACCOUNT_ID:role/cloud9-*", "Effect": "Allow" } ] }

ステップ 2. をセットアップする 環境 皆さんの AWS アクセス資格情報

AWS Cloud9 IDE は AWS Cloud9 開発環境 の AWS Command Line Interface (AWS CLI) を使用して、Lambda および他のサポートされている AWS のサービスを操作します。したがって、環境 の AWS CLI は AWS アクセス認証情報にアクセスする必要があります。

環境 の AWS CLI をセットアップするには、以下のいずれかを実行します。

ステップ 3. 実行ロールを作成する Lambda 機能

Lambda 関数で AWS リソースを使用した操作を行う場合は、関数で使用する必要なアクセス権限を含む IAM ロール (実行ロール) を指定する必要があります。

Lambda 関数を作成する際に、AWS Cloud9 で実行ロールを作成できます。この実行ロールには、 ベーシック Lambda 許可AWS Lambda Developer Guide.

この実行ロールがニーズを満たさない場合は、Lambda 関数を作成する前に、独自に実行ロールを作成する必要があります。詳細については、以下を参照してください。「」

ステップ 4. 設定 環境 正しい AWS 地域

特定の AWS リージョンを AWS Cloud9 開発環境 で使用するように設定する必要があります。このリージョンで、AWS アカウントの新しい Lambda 関数を作成したり、AWS アカウントの既存の Lambda 関数を AWS Cloud9 開発環境 にインポートしたりします。

目的

  1. AWS Cloud9 IDE のメニューバーで、[AWS Cloud9]、[設定] の順に選択します。

  2. [設定] タブのナビゲーションペインで、[AWS Settings (AWS の設定)] を選択します。

  3. [AWS リージョン] で、使用する AWS リージョンを選択します。

ステップ 5. を開きます。 Lambda セクション( AWS リソースウィンドウ

これで AWS Cloud9 IDE を使用して Lambda 関数を操作する準備が整いました。これを行うには、 Lambda セクション( AWS リソース ウィンドウが展開されていない場合。


               AWS リソースウィンドウには、 Lambda セクション

[AWS Resources (AWS リソース)] ウィンドウが非表示になっている場合は、[AWS Resources (AWS リソース)] ボタンを選択します。

[AWS Resources (AWS リソース)] ボタンが見つからない場合は、メニューバーで [Window]、[AWS Resources (AWS リソース)] の順に選択してボタンを表示させます。

の作成 Lambda サーバーレス アプリケーションの作成ウィザードによる機能

AWS Cloud9 IDE を使用して新しい Lambda 関数を作成できます。前に設定した AWS リージョンで AWS アカウントに Lambda 関数が既に存在する場合は、「のインポート Lambda 機能」までスキップします。

注記

この手順では、[サーバーレスアプリケーションの作成] ウィザードを使用して、AWS が所有する関数設計図に基づいて単一の Lambda 関数を作成する方法を説明します。複数の Lambda を同時に作成する、Lambda 関数とサポートするコンポーネントを同時に作成する、または AWS 以外のエンティティが所有する Lambda 関数を作成するには、「作成と展開 Lambda AWS サーバーレス アプリケーション リポジトリを使用した機能」までスキップしてください。

  1. Lambda セクション( AWS リソース ウィンドウで、関数を作成する場所を選択します。

    • 単一の関数を単独で作成するには、[Local Functions (ローカル関数)] の見出しをクリックします。

    • 関数を作成して、それを 1 つ以上の関数と関連 AWS リソースで構成される既存のグループに追加する (これをサーバーレスアプリケーションと呼びます) には、[Local Functions (ローカル関数)] のリストで、グループのサーバーレスアプリケーション (フォルダ内の Lambda アイコンで表されます) を選択します。

  2. 次のいずれかを行ってください。

    • [新しい Lambda 関数の作成] (Lambda アイコンのボタン) を選択します。

    • [Local Functions (ローカル関数)] の見出しまたは前に選択したサーバーレスアプリケーションのフォルダを右クリックして、[Create Here (ここに作成)] を選択します。

    
                  新規の作成 Lambda 関数、 Lambda セクション( AWS リソースウィンドウ
  3. [Create serverless application (サーバーレスアプリケーションの作成)] ダイアログボックスで、関数の以下の設定を指定します。

    • 機能名: 関数の名前。

    • アプリケーション名 新しい機能に関連付ける新しいサーバーレスアプリケーションの名前。

      重要

      これらの名前には、英数字とハイフンのみを使用する必要があります。各名前は、アルファベット文字で始まり、128 文字を超えないようにしてください。

  4. [] を選択します。

  5. 開始するための関数設計図を選択します。(現在は、Node.js および Python 関数設計図のみが用意されています。)

    特定のランタイムの設計図を表示するには、[Select Runtime (ランタイムを選択)] を選択して、ランタイムを選択します。たとえば、Node.js 6.10 の hello-world 関数設計図を使用するには、[Select Runtime (ランタイムを選択)] で [Node.js 6.10] を選択してから、[Select Blueprint (設計図の選択)] で [hello-world] 設計図を選択します。

  6. [] を選択します。

  7. 次のいずれかを行ってください。

    • この関数を AWS のサービスによって自動的にトリガーすることをスキップするには、[Function Trigger (関数のトリガー)] を [なし] のままにして [次へ] を選択してから、この手順のステップ 9 までスキップします。

    • AWS アカウント内の AWS リソースによって関数を自動的にトリガーするには、[Function Trigger (関数のトリガー)] で、リソースを含む AWS サービスの名前を選択します (現在は [API Gateway] のみ利用できます)。

  8. 選択する場合 API Gateway機能トリガー、以下を指定します。 トリガー設定:

    • [Resource Path (リソースパス)] に、関数を呼び出すために使用する API の URL の一部を入力します。たとえば、リソースのルートを指定するには / と入力します。

    • [Security (セキュリティ)] で、API エンドポイントのセキュリティメカニズムを選択します。

  9. [] を選択します。

  10. [Memory (MB) (メモリ (MB))] で、関数で使用するメモリ量 (メガバイト) を指定します。

  11. 次のいずれかを行ってください。

    • この関数で使用する新しい基本的な IAM ロール (実行ロール) を AWS Cloud9 によって作成するには、[Role (ロール)] で [Automatically generate role (自動的にロールを生成)] を選択します。続いて、[次へ] を選択します。

    • Lambda で AWS アカウント内の既存の IAM ロール (実行ロール) を使用するには、[ロール] で [既存のロールを選択] を選択します。[Existing Role (既存のロール)] で、ロールの名前を選択し、[Next (次へ)] を選択します。

  12. [] を選択します。

  13. [Finish (完了)] を選択します。

結果を以下と比較します。


            Lambda 関数の作成

Lambda セクション( AWS リソース ウィンドウ、 AWS Cloud9 は、次の操作を行います。

  • 単一の関数を単独で作成するように選択した場合:

    1. AWS Cloud9 によって、前に指定された名前のサーバーレスアプリケーションが作成されます。次に、サーバーレスアプリケーション (フォルダ内の Lambda アイコンで表される) が [Local Functions (ローカル関数)] リストに追加されます。次に、Lambda 関数 (Lambda アイコン単独で表される) がこのサーバーレスアプリケーションに追加されます。

    2. AWS Cloud9 は、関数のリモートバージョンを Lambda で作成し、それを [Remote Functions (リモート関数)] リストに追加します。AWS Cloud9 は、リモートバージョンに別の名前を付けます。たとえば、サーバーレスアプリケーションを myDemoServerlessApplication、関数を myDemoFunction と名付けた場合、その関数のリモートバージョンの名前は cloud9-myDemoServerlessApplication-myDemoFunction-RANDOM_ID となります。RANDOM_ID はランダムに決定される ID です。

      
                        同じ関数を示すローカル関数とリモート関数
    3. API Gateway で自動的に関数をトリガーするように選択すると、AWS Cloud9 はその関数に対応する名前の API を API Gateway に作成します。たとえば、関数名を myDemoFunction にすると、API 名は cloud9-myDemoFunction になります。AWS Cloud9 は、[Resource Path (リソースパス)] に指定された値に基づいて、ANY メソッドを使用して関数を API にマッピングします。

  • 単一の関数を作成し、その後既存のサーバーレスのアプリケーションに追加するように選択した場合:

    1. AWS Cloud9 は、Lambda 関数 (Lambda アイコン単独で表される) を既存のサーバーレスアプリケーション (フォルダ内の Lambda アイコンで表される) に追加します。

    2. AWS Cloud9 は、関数のリモートバージョンを Lambda で作成し、それを [Remote Functions (リモート関数)] リストに追加します。AWS Cloud9 は、リモートバージョンに別の名前を付けます。たとえば、関数を myDemoFunction と名付け、それを myDemoServerlessApplication という名前のサーバーレスアプリケーションに追加した場合、リモートバージョンの名前は cloud9-myDemoServerlessApplication-myDemoFunction-RANDOM_ID となります。RANDOM_ID はランダムに決定される ID です。

    3. API Gateway で関数を自動的にトリガーするように指定すると、AWS Cloud9 は関連するサーバーレスアプリケーションに対応した名前の API を API Gateway に作成します (まだ作成していない場合)。たとえば、サーバーレスアプリケーションの名前を myDemoServerlessApplication にすると、API 名は cloud9-myDemoServerlessApplication になります。AWS Cloud9 は、[Resource Path (リソースパス)] に指定された値に基づいて、ANY メソッドを使用して関数を API にマッピングします。

[Environment (環境)] ウィンドウで、AWS Cloud9 は以下のように動作します。

  • 1 つの関数を単独で作成することを選択すると、AWS Cloud9 はサーバーレスアプリケーションと同じ名前のフォルダを作成し、このフォルダを AWS Cloud9 開発環境 のルートに配置します。次に、AWS Cloud9 はこのフォルダに以下のファイルを追加します。

    • .application.json: によって使用される隠しファイル AWS Cloud9 サーバーレスアプリケーションに固有のJSON形式の設定を含む。

    • .gitignore: : Git を使用してこの関数のソースコードを管理する場合に、Git が無視するファイルのリストを含む隠しファイル。

    • template.yaml: A AWS SAM テンプレートファイル( Lambda 機能、およびその他の関連サポート AWS リソースです。関数のローカルバージョンを更新して Lambda にアップロードするたびに、AWS Cloud9 は AWS SAM を呼び出し、このテンプレートファイルを使用してアップロードを行います。詳細については、以下を参照してください。 の使用 AWS サーバーレスアプリケーションモデル (AWS SAM)AWS Lambda Developer Guide.

      注記

      このファイルを編集して、サポートする関数の AWS リソースを追加で作成できます。詳細については、GitHub の AWS サーバーレスアプリケーションモデル (AWS SAM) リポジトリを参照してください。

    • 関数と同じ名前のサブフォルダ。関数ロジックを表すコードファイルが含まれています。

    • 関数が Python を使用する場合、前述のサブフォルダに追加のサブフォルダとファイルが追加され、Python でデバッグできるようにします。

      • .debug: : デバッグ用の Python モジュールおよびファイルを含むサブフォルダ。

      • venv: : 標準の Python virtualenv フォルダ。これには ikpdb という名前のモジュールが含まれており、AWS Cloud9 はこれを使用して Python アプリケーションをデバッグします。

      • __init__.py: : 標準の Python パッケージ初期化ファイル。

      • requirements.txt: : Python モジュールをインストールするための標準ファイル。

      • また、AWS Cloud9 は CodeUri プロパティを template.yaml ファイルに追加し、このプロパティで .debug/ フォルダを参照するように設定します。

  • 単一の関数を作成して、既存のサーバーレスアプリケーションに追加するように選択してある場合、AWS Cloud9 はサーバーレスアプリケーションを表すフォルダに以下を実行します。

    • 前述の template.yaml ファイルを更新して、Lambda 関数およびその他のサポートされている関連 AWS リソースに関する情報を含めます。

    • 関数と同じ名前のサブフォルダ。関数ロジックを表すコードファイルが含まれています。

    • 関数が Python を使用する場合、前述のサブフォルダに追加のサブフォルダとファイルが追加され、Python でデバッグできるようにします。

      • .debug: : デバッグ用の Python モジュールおよびファイルを含むサブフォルダ。

      • venv: : 標準の Python virtualenv フォルダ。これには ikpdb という名前のモジュールが含まれており、AWS Cloud9 はこれを使用して Python アプリケーションをデバッグします。

      • __init__.py: : 標準の Python パッケージ初期化ファイル。

      • requirements.txt: : Python モジュールをインストールするための標準ファイル。

      • また、AWS Cloud9 は CodeUri プロパティを template.yaml ファイルに追加し、このプロパティで .debug/ フォルダを参照するように設定します。

.application.json.gitignore ファイル (および Python の .debug フォルダ) は非表示です。隠しファイルを表示したり、表示されている隠しファイルを非表示にしたりするには、[Environment (環境)] ウィンドウで歯車アイコンを選択し、[Show Hidden Files (隠しファイルを表示する)] を選択します。


            非表示の表示 Lambda ファイル

関数を呼び出すには、「Lambda 関数を呼び出す」を参照してください。関数に関連する API が API Gateway にある場合、この API を呼び出すには、「を呼び出し API Gateway 関連する Lambda 機能」を参照して ください。

作成と展開 Lambda AWS サーバーレス アプリケーション リポジトリを使用した機能

AWS Cloud9 IDE と AWS Serverless Application Repository を使用して、複数の Lambda 関数を同時に作成したり、Lambda 関数およびサポートするコンポーネントを同時に作成したり、AWS 以外のエンティティが所有する Lambda 関数を作成したりできます。前に設定した AWS リージョンで AWS アカウントに Lambda 関数が既に存在する場合は、「のインポート Lambda 機能」までスキップします。

  1. 別のウェブブラウザタブで AWS Serverless Application Repository を開きます。

  2. 作成するサーバーレスアプリケーションを見つけ、カード内の目的のサーバーレスアプリケーションのタイトルを選択します。(カードが表示されない場合は、目的のサーバーレスアプリケーションに関する情報を [Search applications by name, description, or labels (名前、説明、またはラベルでアプリケーションを検索する)] ボックスに入力して表示させます。)

  3. 表示された [Application details (アプリケーションの詳細)] ページで、Git ベースのリポジトリの URL が表示されている場合は、その URL をコピーします (例: https://github.com/USER_NAME/REPOSITORY_NAME)。

    注記

    URL が表示されていない場合は、[Application details (アプリケーションの詳細)] ページで [Deploy (デプロイ)] ボタンを選択して、[Source code URL (ソースコード URL)] の値を探します。

  4. AWS Cloud9 IDE に戻って、ターミナルが開いていない場合は開きます。(ターミナルを開くには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)] の順に選択します。)

  5. ターミナルで、サーバーレスアプリケーションのスターターファイルをコピーする環境のディレクトリに変更します (たとえば、コマンド cd ~/environment を実行します)。

  6. コマンド git clone を、前にコピーしておいた URL を続けて実行します (例: git clone https://github.com/USER_NAME/REPOSITORY_NAME)。は IDE サーバーレス・アプリケーションの機能を Lambda セクション( AWS リソース ウィンドウ。

    注記

    [Application details (アプリケーションの詳細)] ページの URL や [Source code URL (ソースコード URL)] の値によっては、git clone コマンドを実行したときに、正しく動作しないか、予期しない結果を生じる場合があります。または、手動で目的のリポジトリからローカルワークステーションにファイルをダウンロードできます。次に、これらのファイルを手動で IDE にアップロードするには、メニューバーで [File (ファイル)]、[Upload Local Files (ローカルファイルをアップロードする)] を実行します。

    GitHubリポジトリのクローンを作成すると、 IDE は、 AWS サーバーレスアプリケーションモデル (AWS SAM) リポジトリ内のテンプレート ファイルを使用して、 Lambda セクション( AWS リソース ウィンドウ。AWS SAM テンプレートファイルは、AWS サーバーレスアプリケーションモデル (AWS SAM) ファイル形式に従う必要があります。リポジトリに AWS SAM テンプレートファイルが含まれていない場合、またはファイルが AWS SAM ファイル形式に従っていない場合、IDE にこれらの関数は表示されません。また、これらの機能やそれらに関連する API Gateway リソースから Lambda セクション( AWS リソース ウィンドウ。

  7. IDE からサーバーレスアプリケーションを正しく実行、デバッグ、またはデプロイするには、事前にいくつかのセットアップを完了する必要がある場合があります。セットアップ手順については、先ほど開いた [Application details (アプリケーションの詳細)] ページを参照してください。または、IDE にクローンしたサーバーレスアプリケーションのファイル内でセットアップ手順を探してください。

関数を呼び出すには、「Lambda 関数を呼び出す」を参照してください。関数に関連する API が API Gateway にある場合、この API を呼び出すには、「を呼び出し API Gateway 関連する Lambda 機能」を参照して ください。この方法で関数または API を初めて呼び出す際に、AWS Cloud9 は隠しファイル .application.json をサーバーレスアプリケーションのコンポーネントファイルに追加します。このファイルは、AWS Cloud9 により使用され、サーバーレスアプリケーション固有の JSON 形式の設定を含む隠しファイルです。

サーバーレスアプリケーションのデプロイ中にパラメータを指定する必要がある場合は、IDE からターミナルを使用してのみデプロイできます。パラメータが必要かどうかを確認するには、先ほど開いた [Application details (アプリケーションの詳細)] ページで、[Deploy (デプロイ)] ボタンを選択し、[Configure application parameters (アプリケーションパラメータの設定)] カードでパラメータを確認します。パラメータがある場合は、IDE で AWS CloudFormation deploy コマンドを実行し、ターミナルからサーバーレスアプリケーションをデプロイします。次に例を示します。

aws cloudformation deploy --template-file TEMPLATE_FILE_PATH --parameter-overrides "PARAMETER_KEY_1=PARAMETER_VALUE_1" "PARAMETER_KEY_N=PARAMETER_VALUE_N" --region REGION_ID

上記のコマンドでは:

  • TEMPLATE_FILE_PATH は AWS SAM テンプレートファイルへのパスを表します。

  • PARAMETER_KEY_1 は最初のパラメータの名前を表します。

  • PARAMETER_VALUE_1 は最初のパラメータの値を表します。

  • PARAMETER_KEY_N はその他の追加パラメータの名前を表します。

  • PARAMETER_VALUE_N はその他の追加パラメータの値を表します。

  • REGION_ID はサーバーレスアプリケーションをデプロイする AWS リージョンの ID を表します (例: us-east-2)。

  • サーバーレスアプリケーションの要件に応じて、追加のオプションを指定することが必要になる場合があります。詳細については、前に開いた [Application details (アプリケーションの詳細)] ページを参照するか、IDE にクローンしたサーバーレスアプリケーションのファイル内にあるセットアップ手順を参照してください。

_を使用しようとした場合 Lambda セクション( AWS リソース ]ウィンドウが表示され、パラメータを必要とするサーバーレスアプリケーションを展開し、必要なパラメータが欠落しているというメッセージが表示され、サーバーレスアプリケーションは展開されません。

のインポート Lambda 機能

既存の Lambda 関数が AWS アカウントにはあるが AWS Cloud9 開発環境 にはない場合、環境 で操作する前にインポートする必要があります。

注記

Lambda 関数が既存の AWS CodeStar プロジェクトの一部であり、環境 が AWS CodeStar コンソールのプロジェクト内から作成されている場合、関数は既にインポートされているため、再度インポートする必要はありません。

この動作を確認するには、 ローカル機能 リスト Lambda セクション( AWS リソース サーバーレス・アプリケーションのウィンドウ( Lambda フォルダー内のアイコン) と同じ名前を持つ AWS CodeStar プロジェクト、 Lambda 関数( Lambda アイコンのみ)。また、[Remote Functions (リモート関数)] リストで awscodestar-PROJECT_NAME-lambda-BASE_FUNCTION_NAME-RANDOM_ID という形式の名前を持つ Lambda 関数があることを確認します。ここで PROJECT_NAME は AWS CodeStar プロジェクトの名前、BASE_FUNCTION_NAME は関数の基本名、RANDOM_ID はランダムに決定された ID です。


               同じ関数を示すローカル関数とリモート関数

関数が既にインポートされているため、関数のリモートバージョンを AWS CodeStar プロジェクトにインポートすることはお勧めできません。これを行うと、同じ関数コードの 2 つのバージョンが [Environment (環境)] ウィンドウに異なるフォルダ名で表示され、混乱が生じる可能性があります。

Lambda 関数をインポートするには、以下を実行します。

  1. [環境 (環境)] ウィンドウで、関数をインポートする場所を選択します。

  2. Lambda セクション( AWS リソース ウィンドウで、 リモート機能 リスト。

    注記

    [Remote Functions (リモート関数)] リストに関数が表示されない場合は、[Refresh functions List (関数リストを最新の情報に更新する)] ボタン (円状の矢印ボタン) を選択します。

  3. 次のいずれかを行ってください。

    • 選択した関数をダブルクリックします。

    • [Lambda] セクションのメニューバーで、[Import the selected Lambda function (選択した Lambda 関数をインポートする)] ボタン (下向き矢印のボタン) を選択します。

    • 選択した関数を右クリックして、[Import (インポート)] を選択します。

    
                  のインポート Lambda 使用する関数を AWS Cloud9 開発環境
    注記

    Lambda 関数を、サーバーレスアプリケーションまたは Lambda 関数を表すフォルダにインポートすることはできません。これを行うと、Lambda 関数は代わりに環境のルートの場所にインポートされるというメッセージが AWS Cloud9 に表示されます。これを AWS Cloud9 で行う場合は、[Import (インポート)] を選択します。それ以外の場合は、[Cancel (キャンセル)] を選択して、関数をインポートする別のフォルダを選択 (または関数をインポートする新しい空のフォルダを作成) し、この手順を最初からやり直します。

  4. 関数のインポートを終了するように求められたら、[OK] を選択します。

AWS Cloud9 関数がルートの新しいフォルダにインポートされます。 環境。 (AWS Cloud9 は、関数を ローカル機能 リスト Lambda セクション( AWS リソース ウィンドウ。) このフォルダの名前は関数と同じです。 AWS Cloud9 次のファイルをこのフォルダに追加します。

  • .application.json: によって使用される隠しファイル AWS Cloud9 機能に固有のJSON形式の設定が含まれています。

  • .gitignore: : Git を使用してこの関数のソースコードを管理する場合に、Git が無視するファイルのリストを含む隠しファイル。

  • template.yaml: のファイル AWS Cloud9 社内使用。

    注記

    template.yaml ファイルは AWS SAM 形式で表されますが、AWS SAM はこれを使用しません。そのため、このファイルを編集して、サポートする関数の AWS リソースを追加で作成することはできません。このファイルは変更しないでください。

  • 関数ロジックが含まれる 1 つ以上のコードファイル。

.application.json および .gitignore フィールドは非表示です。隠しファイルを表示または非表示にするには、[環境 (環境)] ウィンドウで歯車アイコンを選択し、[Show Hidden Files (隠しファイルを表示する)] を選択します。

関数を呼び出すには、「Lambda 関数を呼び出す」を参照してください。

Lambda 関数を呼び出す

既存の Lambda 関数を呼び出すには、まず関数のリモートバージョンを AWS Cloud9 開発環境 にインポートする必要があります (まだインポートしていない場合)。これを行うには、「のインポート Lambda 機能」を参照してください。

  1. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  2. 呼び出す関数が含まれているサーバーレスアプリケーションフォルダを展開します。

  3. 呼び出す関数を選択し、右クリックして、[Run (実行)] を選択します。

  4. 次のいずれかを行ってください。

    • 環境 内のローカルバージョンの関数を実行するには、[Run Local (ローカルで実行)] を選択します。

    • Lambda 内のリモートバージョンの関数を実行するには、[Run Remote (リモートで実行)] を選択します。

    
                  関数のローカルバージョンまたはリモートバージョンを実行するように選択する
    注記

    何も起こっていないように見える場合は、その関数の呼び出しタブが既に開いている可能性があります。その場合は、開いている呼び出しタブで [Lambda (local) (Lambda (ローカル))] または [Lambda (remote) (Lambda (リモート))] を選択します。

  5. 表示されている呼び出しタブの [Test payload (テストペイロード)] ペインで、テスト時に関数で使用するカスタム入力データを確認します。入力データ形式の詳細については、以下を参照してください。 ステップ2.2: を呼び出し Lambda 手動で機能し、結果、ログ、メトリックを検証するAWS Lambda Developer Guide.

  6. 呼び出しタブで、[Run (実行)] ボタンを選択します。

    
                  環境内でローカルに、または Lambda
    注記

    関数を初めて実行すると、lambda-payloads.json: ファイルが [環境 (環境)] ウィンドウの関数と関連するサーバーレスアプリケーションフォルダに追加されます。このファイルには、カスタム入力データのコンテンツが含まれています。

    既存の Lambda 関数を呼び出し、次に同じカスタム入力データを使用して API Gateway で、この関数と関連する API の同じ関数コードを呼び出そうとすると、エラーが発生したり、コードが正常に動作しない場合があります。詳細については、呼び出し時の応答の違い Lambda 機能 API Gateway を参照してください。

呼び出しタブには、2 つのペインがあります。

  • [Test payload (テストペイロード)] ペインには、関数に指定したカスタム入力データが表示されます。

  • [Execution results (実行結果)] ペインには、関数の出力と、この関数に関連する Amazon CloudWatch Logs の情報が表示されます。

結果を以下と比較します。


            の呼び出し Lambda 機能

詳細については、以下を参照してください。 ステップ2.2: を呼び出し Lambda 手動で機能し、結果、ログ、メトリックを検証するAWS Lambda Developer Guide.

変更された関数コードのローカルバージョンを Lambda の関連するリモートバージョンにアップロードするには、「のコードをアップロード Lambda 機能」を参照してください。

を呼び出し Lambda 環境変数を使用する関数

環境変数を使用する Lambda 関数をローカルまたはリモートで呼び出すには、次のいずれかを実行します。

事前定義された環境変数とその値を使用した Lambda 関数をローカルで呼び出す

定義済みの環境変数定義を関数の template.yaml ファイルがまだ存在しない場合は、 ローカル実行 コマンドを Lambda セクション( AWS リソース ウィンドウ。

たとえば、index.js というファイルに次の Node.js 関数定義があるとします。

exports.handler = (event, context, callback) => { var result = { MY_ENV_VAR_1: process.env.MY_ENV_VAR_1, MY_ENV_VAR_2: process.env.MY_ENV_VAR_2 }; const response = { statusCode: 200, headers: { "Content-type": "application/json" }, body: result }; callback(null, response); };

また、index.js があるディレクトリの 1 つ上の関数の template.yaml に対して次の追加があるとします。

... Resources: MyEnvVarsFunction: Type: 'AWS::Serverless::Function' Properties: ... Environment: Variables: MY_ENV_VAR_1: "This is my environment variable 1 value from the template.yaml file." MY_ENV_VAR_2: "This is my environment variable 2 value from the template.yaml file."

そして、 ローカル実行 コマンドを Lambda セクション( AWS リソース ウィンドウでは、以下が出力されます。

{ "statusCode": 200, "headers": { "Content-type": "application/json" }, "body": { "MY_ENV_VAR_1": "This is my environment variable 1 value from the template.yaml file.", "MY_ENV_VAR_2": "This is my environment variable 2 value from the template.yaml file." } }
呼び出し元が実行時に動的に提供する環境変数とその値を使用した Lambda 関数をローカルで呼び出す

を使用することはできません ローカル実行 コマンドを、 Lambda セクション( AWS リソース ウィンドウ。

その代わりに、事前定義された環境変数の定義を関数の template.yaml ファイルに追加します (まだ追加していない場合)。次に、IDE のターミナルを使用して invoke コマンド、--env-vars 引数、および環境変数の定義とその値が含まれている個別の JSON ファイルで AWS SAM CLI を実行します。

たとえば、MyEnvVarsFunction という名前の次の Node.js 関数と、その定義が含まれている index.js というファイルがあるとします。

exports.handler = (event, context, callback) => { var result = { MY_ENV_VAR_1: process.env.MY_ENV_VAR_1, MY_ENV_VAR_2: process.env.MY_ENV_VAR_2 }; const response = { statusCode: 200, headers: { "Content-type": "application/json" }, body: result }; callback(null, response); };

また、index.js があるディレクトリの 1 つ上の関数の template.yaml に対して次の追加があるとします。

... Resources: MyEnvVarsFunction: Type: 'AWS::Serverless::Function' Properties: ... Environment: Variables: MY_ENV_VAR_1: "This is my environment variable 1 value from the template.yaml file." MY_ENV_VAR_2: "This is my environment variable 2 value from the template.yaml file."

また、MyEnvVars.json という名前の次のファイルが index.js と同じディレクトリにあるとします。

{ "MyEnvVarsFunction": { "MY_ENV_VAR_1": "This is my environment variable 1 value from the JSON file.", "MY_ENV_VAR_2": "This is my environment variable 2 value from the JSON file." } }

index.js と同じディレクトリから AWS SAM CLI コマンドを実行します。

sam local invoke --event lambda-payloads.json --template ../template.yaml --env-vars MyEnvVars.json

出力を次に示します。

{ "statusCode": 200, "headers": { "Content-type": "application/json" }, "body": { "MY_ENV_VAR_1": "This is my environment variable 1 value from the JSON file.", "MY_ENV_VAR_2": "This is my environment variable 2 value from the JSON file." } }
環境変数とその値を既に事前定義した Lambda 関数をリモートで呼び出す

を実行する リモート実行 コマンドを Lambda セクション( AWS リソース ウィンドウ。

リモートで呼び出す前に、既存のリモート関数の定義済み環境変数値を表示または変更するには、以下を参照してください。 AWS Lambda 環境変数AWS Lambda Developer Guide.

呼び出し元が実行時に動的に提供する環境変数とその値を使用した Lambda 関数をリモートで呼び出す

を使用することはできません リモート実行 コマンドを、 Lambda セクション( AWS リソース ウィンドウ。

その代わりに、IDE のターミナルを使用して lambda コマンドの update-function-configuration アクション、および環境変数の定義とその値が含まれている --environment 引数で AWS CLI を実行します。次に、lambda コマンドの invoke アクションを実行します。

たとえば、MyEnvVarsFunction という名前の次の Node.js 関数、MY_ENV_VAR_1 および MY_ENV_VAR_2 という名前の事前定義された環境変数があるとします。

exports.handler = (event, context, callback) => { var result = { MY_ENV_VAR_1: process.env.MY_ENV_VAR_1, MY_ENV_VAR_2: process.env.MY_ENV_VAR_2 }; const response = { statusCode: 200, headers: { "Content-type": "application/json" }, body: result }; callback(null, response); };

次の AWS CLI コマンドを一度に 1 つずつ次の順序で実行します。

aws lambda update-function-configuration --function-name MyEnvVarsFunction --environment '{"Variables":{"MY_ENV_VAR_1":"This is my environment variable 1 value from the AWS CLI.","MY_ENV_VAR_2":"This is my environment variable 2 value from the AWS CLI."}}' aws lambda invoke --function-name MyEnvVarsFunction results.json

results.json という名前のファイルに次の内容が出力されます。

{ "statusCode": 200, "headers": { "Content-type": "application/json" }, "body": { "MY_ENV_VAR_1": "This is my environment variable 1 value from the AWS CLI.", "MY_ENV_VAR_2": "This is my environment variable 2 value from the AWS CLI." } }

詳細については、 update-function-configuration および invoke () 作成 Lambda 機能およびTest ItAWS Lambda Developer Guide.

との共同作業 Lambda バージョン、エイリアス、またはレイヤーを使用する関数

Lambda セクション( AWS リソース ウィンドウには、現在、 Lambda 機能。その代わりに、IDE のターミナルを使用して、対応するコマンド、アクション、または引数で AWS CLI および AWS SAM CLI を実行できます。詳細については、以下を参照してください。

を呼び出し API Gateway 関連する Lambda 機能

既存の Lambda 関数に関連する API Gateway の API を呼び出すには、まず関数のリモートバージョンを AWS Cloud9 開発環境 にインポートする必要があります (まだインポートしていない場合)。これを行うには、「のインポート Lambda 機能」を参照してください。

注記

API Gateway API のリモートバージョンは 環境 でデバッグできません。呼び出しのみ可能です。ローカルバージョンをデバッグするには、「のローカル バージョンをデバッグします。 Lambda 機能またはその関連 API Gateway API」を参照してください。

  1. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  2. その API を呼び出す関数が含まれているサーバーレスアプリケーションフォルダを展開します。

  3. 関数を選択し、右クリックして、[Run (実行)] を選択します。

  4. 次のいずれかを行ってください。

    • 環境 内のローカルバージョンの API を実行するには、[Run API Gateway Local (API Gateway をローカルで実行)] を選択します。

    • Lambda 内のリモートバージョンの関数を実行するには、[Run API Gateway Remote (API Gateway をリモートで実行)] を選択します。

    注記

    何も起こっていないように見える場合は、その関数の呼び出しタブが既に開いている可能性があります。その場合は、開いている呼び出しタブで [API Gateway (local) (Lambda (ローカル))] または [API Gateway (remote) (Lambda (リモート))] を選択します。

  5. 表示されている呼び出しタブの [Test payload (テストペイロード)] ペインで、テスト時に API で使用する [Function (関数)]、[Path (パス)]、[Method (メソッド)]、[Query String (クエリ文字列)]、および [Body (本文)] を確認します。

    注記

    一部の API では [Body (本文)] などの設定がサポートされていません。詳細については、API の所有者に相談してください。

  6. 呼び出しタブで、[Run (実行)] ボタンを選択します。

    
                  呼び出しタブで [実行] を選択する
    注記

    API が関数に接続されていない場合は、関数の AWS SAM ファイルで API Gateway トリガーが見つからないというメッセージが表示されます。この AWS SAM ファイルを使用して API Gateway の API を関数に接続するには、GitHub の AWS サーバーレスアプリケーションモデル (AWS SAM) リポジトリを参照してください。

    API Gateway の API を呼び出し、次に同じカスタム入力データを使用して、 Lambda でこの API と関連する関数の同じコードを呼び出そうとすると、エラーが発生したり、コードが正常に動作しない場合があります。詳細については、呼び出し時の応答の違い Lambda 機能 API Gateway を参照してください。

呼び出しタブには、2 つのペインがあります。

  • [Test payload (テストペイロード)] ペインには、API に指定した設定とカスタム入力データが表示されます。

  • [Execution results (実行結果)] ペインに、本文、ヘッダー、API レスポンスのログなどの情報が表示されます。

結果を以下と比較します。


            API Gateway で API を呼び出す

呼び出し時の応答の違い Lambda 機能 API Gateway

API Gateway の API から Lambda 関数を呼び出してレスポンスを解析しようとすると、エラーが発生したり、コードが正常に動作しない場合があります。これは、Lambda と API Gateway で使用するレスポンス形式はわずかに異なるためです。具体的には、API Gateway ではレスポンスが親の body オブジェクトにラップされます。この問題に対処するには、関数にコードを追加して、レスポンスに親 body が存在するかどうかをチェックします。存在する場合、その body オブジェクトからデータを抽出できます。

たとえば、次の Node.js 関数コードがあるとします。

'use strict'; exports.handler = function(event, context, callback) { if (event.body) { event = JSON.parse(event.body); } const message = "Your favorite fruit is " + event.fruit + ". " + "Your favorite vegetable is " + event.vegetable + "."; const response = { statusCode: 200, headers: { "Content-type": "application/json" }, body: JSON.stringify( { "message": message } ) }; callback(null, response); };

また、次の同等の Python 関数コードがあるとします。

import json def lambda_handler(event, context): if 'body' in event: event = json.loads(event["body"]) message = ("Your favorite fruit is " + event["fruit"] + ". " + "Your favorite vegetable is " + event["vegetable"] + ".") response = { "statusCode": "200", "headers": { "Content-type": "application/json" }, "body": json.dumps({"message": message}) } return response

前述のコードを呼び出すには、以下の入力ペイロード (Lambda の場合) または入力本文 (API Gateway の場合) を使用します。

{ "fruit": "apple", "vegetable": "carrot" }

これに対して、Lambda では以下のレスポンスが返されます。

{ "statusCode": 200, "headers": { "Content-type": "application/json" }, "body": "{\"message\":\"Your favorite fruit is apple. Your favorite vegetable is carrot.\"}" }

また、API Gateway では以下のレスポンスが返されます ([Path (パス)] は [/]、[Method (メソッド)] は [POST] とします)。

{ "message": "Your favorite fruit is apple. Your favorite vegetable is carrot." }

Node.js の if (event.body) チェック、または Python の if 'body' in event チェックを含めない場合、この関数を API Gateway から呼び出すと、エラーが返されるか、API が正常に実行されない場合があります。

依存コードを Lambda 機能

Node.js の場合、環境 の Lambda 関数に依存パッケージを追加するために Node Package Manager (npm) の使用がサポートされています。Python の場合は、pip がサポートされています。npm と pip に関する一般的な情報については、npm および pip のウェブサイトを参照してください。

Node.js の Lambda 関数の npm パッケージに依存するには、Node.js の require ステートメントなどを使用します。次に、npm を使用して npm パッケージを 環境 の関数コードと同じディレクトリにインストールします。「のコードをアップロード Lambda 機能」で説明されているように Lambda 関数をデプロイすると、AWS Cloud9 によって関数と関連パッケージの両方が Lambda にデプロイされます。

これを次の Node.js Lambda 関数コードの例で示します。このコードでは、lodash パッケージに依存して、指定された JSON 入力ペイロードをソートします。

'use strict'; /* Assume the following payload is input: [ { "firstName": "Shirley", "lastName": "Rodriguez" }, { "firstName": "Jane", "lastName": "Doe" }, { "firstName": "Arnav", "lastName": "Desai" } ] The expected response is: { "statusCode": 200, "headers": { "Content-type": "application/json" }, "body": { "result": [ { "firstName": "Arnav", "lastName": "Desai" }, { "firstName": "Jane", "lastName": "Doe" }, { "firstName": "Shirley", "lastName": "Rodriguez" } ] } } */ exports.handler = (event, context, callback) => { var lodash = require('lodash'); var result = lodash.orderBy(event, ['firstName'], ['asc']); const response = { statusCode: 200, headers: { "Content-type": "application/json" }, body: JSON.stringify( { "result": result } ) }; callback(null, response); };

lodash パッケージを 環境 にインストールするには、IDE のターミナルセッションを使用して、関数コードを含むディレクトリに移動します。次に、次の 2 つのコマンドを、次の順序で実行します。最初のコマンドでは、そのディレクトリに package.json ファイルを作成して設定し、Lambda に関数をデプロイするときに lodash パッケージもデプロイされるようにします。2 番目のコマンドでは、関数コードと同じ 環境 のディレクトリに lodash パッケージをインストールし、このディレクトリで package.json ファイルを適切に更新します。

npm init npm install lodash --save

npm init コマンドおよび package.json ファイルのヘルプについては、npm ウェブサイトの「Working with package.json」を参照してください。

IDE で、「Lambda 関数を呼び出す」で説明されているように、ローカルバージョンの Lambda 関数を呼び出します。「のコードをアップロード Lambda 機能」で説明されているように、関数をデプロイし、次に関数のリモートバージョンを呼び出します。関数のローカルバージョンとリモートバージョンが想定どおりに機能します。

Python の Lambda 関数の pip パッケージに依存するには、Python の import ステートメントなどを使用します。次に、pip を使用して関連 pip パッケージを、環境の関数コードを含むディレクトリの 1 つ上のディレクトリにインストールします。「のコードをアップロード Lambda 機能」で説明されているように Lambda 関数をデプロイすると、AWS Cloud9 によって関数と関連パッケージの両方が Lambda にデプロイされます。

これを次の Python Lambda 関数コードの例で示します。このコードでは、requests パッケージに依存して、HTTP リクエストを行い、関連する HTTP レスポンスに関する情報を返します。

''' Assume the following payload is input: { "url": "https://aws.amazon.com" } The expected response is similar to the following: { "statusCode": "200", "headers": { "Content-type": "application/json" }, "body": { "statusCode": 200, "date": "Fri, 19 Jan 2018 17:57:48 GMT", "lastModified": "Thu, 18 Jan 2018 18:08:23 GMT" } } ''' import requests import json def lambda_handler(event, context): result = requests.get(event["url"]) response = { "statusCode": "200", "headers": { "Content-type": "application/json" }, "body": json.dumps( { "statusCode": result.status_code, "date": result.headers["Date"], "lastModified": result.headers["Last-Modified"] } ) } return response

requests パッケージを 環境 にインストールするには、IDE のターミナルセッションを使用して、関数コードを含むディレクトリに移動します。次に、以下のコマンドを実行します。このコマンドでは、requests パッケージを、環境 ディレクトリにインストールします。これは関数コードがあるディレクトリの 1 つ上のディレクトリです。

pip install requests --target ../

IDE で、「Lambda 関数を呼び出す」で説明されているように、ローカルバージョンの Lambda 関数を呼び出します。「のコードをアップロード Lambda 機能」で説明されているように、関数をデプロイし、次に関数のリモートバージョンを呼び出します。関数のローカルバージョンとリモートバージョンが想定どおりに機能します。

Python Lambda 関数が、この関数と同じディレクトリにある別の Python コードファイルのコードに依存するには、from ステートメントと import ステートメントを使用します。「のコードをアップロード Lambda 機能」で説明されているように Lambda 関数をデプロイすると、AWS Cloud9 により、この関数およびこの関数と同じディレクトリにある別の Python コードファイルの両方が Lambda にデプロイされます。

この Python Lambda 関数の例を AWS Cloud9 IDE の次のディレクトリ構造で示します。

myDemoServerlessApplication `- myDemoFunction |- lambda-payloads.json |- lambda_function.py `- myClasses.py

myClasses.py ファイルに MyClass1 という名前のクラスの定義が含まれている場合の例を示します。

class MyClass1: # Class definition...

MyClass1 ファイルから lambda_function.py クラスを参照するには、次のステートメントをファイルに追加します。

from myDemoFunction.myClasses import MyClass1

のローカル バージョンをデバッグします。 Lambda 機能またはその関連 API Gateway API

環境 のローカル Lambda 関数コードまたは関連する API Gateway API は、一般的なデバッグツール (ブレークポイント、ステップスルーコード、ウォッチ式の設定など) を使用してデバッグできます。

注記

環境 でリモートバージョンの Lambda 関数や関連する API Gateway API をデバッグすることはできません。呼び出しのみ可能です。

既存の Lambda 関数のローカルバージョンや関連する API Gateway API をデバッグするには、まずリモートバージョンの関数を AWS Cloud9 開発環境 にインポートする必要があります (まだインポートしていない場合)。「のインポート Lambda 機能」を参照してください)。

重要

Python 関数のリモートバージョンを 環境 にインポートする場合、デバッグする前に次のオプションのいずれかを選択する必要があります。

オプション1: Python関数がvenvを使用しない場合は、pipを使用して関数のtemplate.yamlファイルと同じディレクトリにIKPdbをインストールします。

IDE のターミナルセッションを使用して、関数の template.yaml ファイルがあるディレクトリに移動します。次に、以下のコマンドのいずれかを実行します。このコマンドによって、Python デバッガー IKPdb が関数の template.yaml ファイルと同じディレクトリにインストールされます。

pip install ikpdb --target . # For a function that uses Python 2.7. pip-3.6 install ikp3db --target . # For a function that uses Python 3.6.

オプション2: Python関数がvenvを使用する場合、venvでpipを使用して関数のvenvディレクトリにIKPdbをインストールし、関数のtemplate.yamlファイルにCodeUriプロパティを追加します。

  1. IDE のターミナルセッションを使用して、関数の template.yaml ファイルがあるディレクトリに移動します。そのフォルダーから以下のコマンドのいずれかを実行します。このコマンドは、関数の venv/bin ディレクトリの pip を使用して、Python デバッガー IKPdb を関数の venv/lib/pythonMAJOR.MINOR/dist-packages ディレクトリにインストールします。

    venv/bin/pip install ikpdb # For a function that uses Python 2.7. venv/bin/pip3.6 install ikp3db # For a function that uses Python 3.6.
  2. [Environment (環境)] ウィンドウで、関数の template.yaml ファイルを開き、編集します。関数の Properties セクションで、CodeUri プロパティを追加し、その値を .debug/ に設定して、ファイルを保存します。たとえば、 と指定します。

    AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Description: An AWS Serverless Specification template describing your function. Resources: myDemoFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: .debug/ # ...
  1. [Environment (環境)] ウィンドウで、デバッグする Lambda 関数のコードが含まれているファイルを開きます。

  2. コードに任意のブレークポイントやウォッチ式を設定します。「コードをデバッグする」を参照してください)。

  3. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  4. デバッグする関数が含まれているサーバーレスアプリケーションフォルダを展開します。

  5. デバッグする関数を選択し、右クリックして [Run (実行)]、[Run Local (ローカルで実行)] または [Run (実行)]、[Run API Gateway Local (API Gateway をローカルで実行)] を選択します。

    注記

    何も起こっていないように見える場合は、その関数の呼び出しタブが既に開いている可能性があります。その場合は、開いている呼び出しタブに移動して [Lambda (local) (Lambda (ローカル))] または [API Gateway (local) (API Gateway (ローカル))] を選択します。

  6. Lambda 関数の場合、表示されている呼び出しタブの [Test payload (テストペイロード)] ペインで、テスト時に関数で使用するカスタム入力データを確認します。入力データ形式の詳細については、以下を参照してください。 ステップ2.2: を呼び出し Lambda 手動で機能し、結果、ログ、メトリックを検証するAWS Lambda Developer Guide.

  7. API Gateway API の場合は、表示されている呼び出しタブの [Test payload (テストペイロード)] ペインで、テスト時に API で使用する [Path (パス)]、[Method (メソッド)]、[Query String (クエリ文字列)]、および [Body (本文)] を確認します。

    注記

    一部の API では [Body (本文)] などの設定がサポートされていません。詳細については、API の所有者に相談してください。

  8. [Run (実行)] ボタンの横にある [Run in Debug Mode (デバッグモードで実行)] を選択します。

  9. [Run (実行)] ボタンを選択します。

  10. 関数の実行がブレークポイントで一時停止するごとに、操作を決定します。「コードをデバッグする」を参照してください)。


            関数の実行がブレークポイントで一時停止した際の動作を決定する

結果を以下と比較します。


            のデバッグ Lambda 機能

コードの変更 Lambda 機能

AWS Cloud9 IDE を使用して関数のコードを変更するには、まず関連する関数のリモートバージョンを AWS Cloud9 開発環境 にインポートする必要があります (まだインポートしていない場合)。これを行うには、「のインポート Lambda 機能」を参照してください。次に、以下の操作を実行します。

  1. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  2. コードを変更する関数が含まれているサーバーレスアプリケーションフォルダを展開します。

  3. 関数を右クリックして、[Edit Function (関数の編集)] を選択します。

    
                  Lambda セクション( AWS リソースウィンドウ
  4. コードを変更して、ファイルを保存します。

変更された関数コードのローカルバージョンを Lambda の関連するリモートバージョンにアップロードするには、「のコードをアップロード Lambda 機能」を参照してください。

のコードをアップロード Lambda 機能

環境 の Lambda 関数のローカルバージョンを Lambda の関数の関連するリモートバージョンにアップロードするには、関数を作成した方法に応じて、以下のいずれかの手順に従います。

関数の作成方法 従う手順

IDE で [サーバーレスアプリケーションの作成] ウィザードを使用します。

のコードをアップロード Lambda サーバーレス アプリケーションの作成ウィザードによって作成された機能

AWS CodeStar プロジェクトの一部として。

のコードをアップロード Lambda 機能の一部 AWS CodeStar プロジェクト

AWS Serverless Application Repository を使用する。サーバーレスアプリケーションではデプロイ時にパラメータを指定する必要があります。

のコードをアップロード Lambda 機能の一部 AWS Serverless Application Repository パラメーターを含むプロジェクト

他の方法。

のコードをアップロード Lambda 特定機能を使用する AWS CloudFormation スタック、関数名、またはその両方

のコードをアップロード Lambda サーバーレス アプリケーションの作成ウィザードによって作成された機能

環境 で「の作成 Lambda サーバーレス アプリケーションの作成ウィザードによる機能」を行った後、次のようにローカルバージョンのその関数を Lambda の関連するリモートバージョンの関数にアップロードできます。

  1. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  2. アップロードする関数が含まれているサーバーレスアプリケーションフォルダを展開します。

  3. 次のいずれかを行ってください。

    • 選択したサーバーレスアプリケーションフォルダを右クリックして、[Deploy (デプロイ)] を選択します。

    • アップロードする関数を右クリックし、[Deploy (デプロイ)] を選択します。

    • アップロードする関数を選択して、[Deploy the selected Lambda function (選択した Lambda 関数をデプロイする)] (上向き矢印のボタン) を選択します。

    
                     Upload コマンドを Lambda セクション( AWS リソースウィンドウ

のコードをアップロード Lambda 機能の一部 AWS CodeStar プロジェクト

AWS Cloud9 Integrated Development Environment (IDE) で AWS CodeStar プロジェクトを操作する」を行ったら、次のように 環境 のローカルバージョンのその関数を Lambda の関連するリモートバージョンの関数にアップロードできます。

IDE のターミナルセッションを使用して git push コマンドを実行し、コミットされたコードの変更を AWS CodeStar プロジェクトのリポジトリにプッシュします。これにより、AWS CodeStar を通じて 環境 のローカルバージョンの Lambda 関数を Lambda の関連するリモートバージョンの関数にアップロードします。

この手順に従わない場合、エラー「Parameters: [ProjectId]には値が必要です」と表示され、機能は展開されません。

のコードをアップロード Lambda 機能の一部 AWS Serverless Application Repository パラメーターを含むプロジェクト

作成と展開 Lambda AWS サーバーレス アプリケーション リポジトリを使用した機能」を行った後で、このプロジェクトでアップロード時にパラメータの指定が必要な場合は、「作成と展開 Lambda AWS サーバーレス アプリケーション リポジトリを使用した機能」で AWS CloudFormation の deploy コマンドを参照し、アップロード手順を確認してください。

この手順を実行しないと、必要なパラメーターがないことを示すエラーが表示され、コードがアップロードされません。

のコードをアップロード Lambda 特定機能を使用する AWS CloudFormation スタック、関数名、またはその両方

アップロードプロセスを開始するには、AWS Cloud9 を通じて AWS CloudFormation でスタックを作成し、特定の名前を付けます。AWS CloudFormation は、このスタック内の情報を使用して 環境 にあるローカルバージョンの Lambda 関数を Lambda にある特定の関数にアップロードします。デフォルトでは、このスタックの名前と Lambda 関数の名前は次のいずれかです。必要に応じて変更することができます。

  • ローカルバージョンの Lambda 関数と同じフォルダに隠しファイル .application.json が存在し、このファイルに StackName 値が含まれている場合、スタック名は StackName 値と同じであり、Lambda 関数名は cloud9-APPLICATION_NAME-FUNCTION_NAME です。

  • ローカルバージョンの Lambda 関数と同じフォルダに隠しファイル .application.json が存在しないか、application.json ファイルは存在するが StackName 値がない場合、スタック名は cloud9-FOLDER_NAME であり、Lambda 関数名は cloud9-APPLICATION_NAME-FUNCTION_NAME です。

前のスタック名と関数名では、 FOLDER_NAME は、 環境 ウィンドウ、その間 APPLICATION_NAME および FUNCTION_NAME は、 Lambda セクション( AWS リソース ウィンドウ。

デフォルトの AWS CloudFormation スタックの名前または Lambda のデフォルトの関数名を変更しない場合は、このセクションの最後にあるアップロード手順までスキップします。

デフォルト以外を使用または作成するには AWS CloudFormation 積み重ねる AWS 同一アカウント内の AWS [Region](地域)は、 Lambda セクション( AWS リソース ウィンドウで、次のいずれかを実行します。

  • 既存の AWS CloudFormation スタックを使用してコードをアップロードし、 Lambda セクション( AWS リソース ]ウィンドウで、 Lambda コードをアップロードしたい機能を選択し、 CloudFormation スタックへのリンク画面の指示に従って、使用する既存のスタックを選択します。

    注記

    次の AWS CloudFormation にある既存のスタックからのみ選択できます。

    • CREATE_COMPLETE

    • CREATE_IN_PROGRESS

    • REVIEW_IN_PROGRESS

    • ROLLBACK_COMPLETE

    • ROLLBACK_IN_PROGRESS

    • UPDATE_COMPLETE

    • UPDATE_COMPLETE_CLEANUP_IN_PROGRESS

    • UPDATE_IN_PROGRESS

    • UPDATE_ROLLBACK_COMPLETE

    • UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS

    • UPDATE_ROLLBACK_IN_PROGRESS

  • 指定した名前で新しい AWS CloudFormation スタックを作成する場合、次のいずれかの操作を行います。

    • ローカルバージョンの Lambda 関数と同じフォルダに隠しファイル .application.json が存在し、このファイルに StackName 値が含まれている場合は、.application.json ファイルの StackName 値を、使用する AWS CloudFormation スタックの名前に変更して .application.json ファイルを保存します。

    • ローカルバージョンの Lambda 関数と同じフォルダに隠しファイル .application.json が存在するが、このファイルに StackName 値が含まれていない場合は、使用する新しい AWS CloudFormation スタックの名前を含む StackName 値を .application.json ファイルの先頭に追加して .application.json ファイルを保存します。たとえば、MyDemoStack のスタック名の場合、ファイルの先頭に次の値を追加します (楕円は入力しないでください。 これらは、ファイル内の正しい場所に値を追加するためにのみ表示されます。)

      { "StackName": "MyDemoStack", ... }
    • ローカルバージョンの Lambda 関数と同じフォルダに隠しファイル .application.json が存在しない場合は、このフォルダ内に新しい .application.json ファイルを作成し、使用する新しい AWS CloudFormation スタックの名前を含む StackName 値を .application.json ファイルに追加して .application.json ファイルを保存します。たとえば、MyDemoStack のスタック名の場合、ファイルに次の値を追加します。

      { "StackName": "MyDemoStack" }

コードをデフォルト以外の Lambda 機能について AWS 同一アカウント内の AWS [Region](地域)は、 Lambda セクション( AWS リソース ウィンドウで、関数名を FunctionName 値から Properties セクション( Lambda 関連する AWS SAM テンプレートファイル(例: template.yaml)。たとえば、 Lambda という名前の関数リソース MyDemoFunction、追加 FunctionNameMyDemoFunction コードをアップロードするには Lambda 関数名 MyDemoFunction 代わりに cloud9-APPLICATION_NAME-FUNCTION_NAME。 (楕円は入力しないでください。 これらは、ファイル内の正しい場所に値を追加するためにのみ表示されます。)

... Resources: MyDemoFunction: Type: AWS::Serverless::Function Properties: FunctionName: MyDemoFunction ...

コードをアップロードする準備ができたら、次の手順を実行します。

  1. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  2. アップロードする関数が含まれているサーバーレスアプリケーションフォルダを展開します。

  3. 次のいずれかを行ってください。

    • 選択したサーバーレスアプリケーションフォルダを右クリックして、[Deploy (デプロイ)] を選択します。

    • アップロードする関数を右クリックし、[Deploy (デプロイ)] を選択します。

    • アップロードする関数を選択して、[Deploy the selected Lambda function (選択した Lambda 関数をデプロイする)] (上向き矢印のボタン) を選択します。

    
                     Upload コマンドを Lambda セクション( AWS リソースウィンドウ

を変換する Lambda サーバーレスアプリケーションへの機能

AWS Cloud9 開発環境 にある既存の Lambda 関数のローカルバージョンが、まだサーバーレスアプリケーションの一部ではない場合、AWS Cloud9 IDE を使用してその関数をサーバーレスアプリケーションに変換できます。その後、そのサーバーレスアプリケーションの AWS SAM テンプレートファイルを使用して、関数がサポートする AWS リソースを追加で作成できます。詳細については、GitHub の AWS サーバーレスアプリケーションモデル (AWS SAM) リポジトリを参照してください。

既存の Lambda 関数のローカルバージョンをサーバーレスアプリケーションに変換するには、まず関数のリモートバージョンを AWS Cloud9 開発環境 にインポートする必要があります (まだインポートしていない場合)。「のインポート Lambda 機能」を参照してください)。

  1. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  2. 変換する関数を右クリックし、[Convert to SAM (SAM に変換する)] を選択します。

    
                  [Convert to SAM]コマンド( Lambda セクション( AWS リソースウィンドウ

AWS Cloud9 は以下を実行します。

  • 関数のフォルダ内の 環境 ウィンドウ、 DeploymentMethod 設定、 .application.json ファイルの変更元 lambdacloudformation。 つまり、今や AWS Cloud9 指示する AWS SAM 使用するには AWS CloudFormation いつでも IDE サーバーレスアプリケーションの一部として関数のコードをアップロードします。(lambda すなわち、 AWS Cloud9 指示する Lambda 機能を配置してください。) 機能コードをアップロードするには、以下を参照してください。 のコードをアップロード Lambda 機能.

  • Lambda セクション( AWS リソース ウィンドウ内の ローカル機能 リスト、 AWS Cloud9 既存の Lambda 新しいサーバーレス・アプリケーション( Lambda フォルダー内のアイコン)。サーバーレスアプリケーションの名前は関数と同じです。

のコードをアップロード Lambda 機能」で説明されているように、関数のコードをアップロードすると、関数のアップロード方法は Lambda ではなく AWS CloudFormation を使用する AWS SAM になっているため、AWS Cloud9 は新しいリモートバージョンの関数を Lambda に作成して [Remote Functions (リモート関数)] リストに追加します。AWS Cloud9 は、このリモートバージョンに元の Lambda 関数とは異なる名前を付けます。たとえば、サーバーレスアプリケーションと関数の名前が両方とも myDemoFunction である場合、その関数のリモートバージョンの名前は cloud9-myDemoFunction-myDemoFunction-RANDOM_ID となります。RANDOM_ID はランダムに決定される ID です。

重要

変換後に IDE を使用して関数コードに変更を加え、このコードを Lambda にアップロードすると、変更は新しい関数のリモートバージョン (例: cloud9-myDemoFunction-myDemoFunction-RANDOM_ID) にのみ反映されます。元の関数のリモートバージョン (例: myDemoFunction) は変更されません。

IDE でコードの変更をアップロードする先を、元の関数のリモートバージョン (例: myDemoFunction) に戻す場合は、次の操作を行います。

  1. [環境 (環境)] ウィンドウの関数のフォルダで、.application.json ファイルの DeploymentMethod 設定を変更して cloudformation から lambda に戻し、ファイルを保存します。これにより、サーバーレスアプリケーションフォルダが [Local Functions (ローカル関数)] リストから削除されるため、元のように AWS Cloud9 を通じて Lambda で関数がデプロイされます。

  2. のコードをアップロード Lambda 機能」で説明されているように関数コードをアップロードします。これで、元の関数のリモートバージョン (例: myDemoFunction) のみに変更が含まれます。新しい関数のリモートバージョン (例: cloud9-myDemoFunction-myDemoFunction-RANDOM_ID) は変更されません。

  3. AWS Cloud9 によってコードの変更が新しい関数のリモートバージョン (例: cloud9-myDemoFunction-myDemoFunction-RANDOM_ID) にアップロードされなくなったため、必要に応じて Lambda コンソールを使用して新しい関数 (例: cloud9-myDemoFunction-myDemoFunction-RANDOM_ID) を削除できます。

構成設定の更新 Lambda 機能

AWS Cloud9 IDE を使用して、説明、ハンドラー識別子、関数が使用するメモリ量、関数が使用する既存の実行ロールなどの関数の設定を変更できます。

構成設定を変更するには、関連する関数のリモートバージョンが AWS Cloud9 開発環境 にない場合、最初にインポートする必要があります。これを行うには、「のインポート Lambda 機能」を参照してください。次に、以下の操作を実行します。

  1. Lambda セクション( AWS リソース ウィンドウを展開し、 ローカル機能 リストを展開します。

  2. 設定を変更する関数が含まれているサーバーレスアプリケーションフォルダを展開します。

  3. 関数を右クリックして、[Edit Config (設定の編集)] を選択します。

    
                  構成設定の更新 Lambda の関数 Lambda セクション( AWS リソースウィンドウ
  4. 構成設定を変更して、ファイルを保存します。

    注記

    デフォルトでは、構成設定はプレーンテキストで表示されます。この動作を変更してデフォルトでビジュアルエディタに構成設定を表示するには、メニューバーで [AWS Cloud9]、[設定] を選択します。[AWS Settings (AWS の設定)] を選択して [Use AWS SAM visual editor (AWS SAM ビジュアルエディタを使用する)] を有効にします。ビジュアルエディタを使用するには、関数の template.yaml ファイルを閉じ、関数を右クリックして [Edit Config (設定の編集)] をもう一度選択します。デフォルトでプレーンテキストを使用するように戻すには、[Use AWS SAM visual editor (AWS SAM ビジュアルエディタを使用する)] 設定をオフにします。一時的にプレーンテキストを編集するには、ビジュアルエディタで [View with text editor (Ace) (テキストエディタで表示する (Ace))] を選択して、メニューバーで [View (表示)]、[Editors (エディタ)]、[Ace] の順に選択します。

  5. 次のいずれかを行ってください。

    • 構成設定タブの簡素化された設定表示で、[Upload Settings to Lambda (Lambda に設定をアップロードする)] ボタンを選択します。

    • のコードをアップロード Lambda 機能の手順に従います。

    
                  設定のアップロード先 Lambda または Lambda 設定タブを使用する機能

Lambda 関数を削除します。

環境 から Lambda 関数のローカルバージョンを削除したり、Lambda から関数のリモートバージョンを削除したり、または両方を実行したりできます。次に例を示します。

のローカル バージョンを削除します。 Lambda 機能

AWS Cloud9 IDE の [環境 (環境)] ウィンドウを使用して、関数が含まれているディレクトリを削除します。( Lambda セクション( AWS リソース ウィンドウの AWS Cloud9 IDE ローカルバージョンの Lambda 関数。)

警告

Lambda 関数のローカルバージョンを誤って削除した場合、環境 に追加し直す唯一の方法は、リモートバージョンの関数 (まだ存在している場合) を 環境 にインポートすることです。手順については、「のインポート Lambda 機能」を参照してください。

のリモートバージョンを削除します。 Lambda 機能

リモートバージョンの Lambda 関数を削除するには、Lambda コンソール、AWS CloudFormation コンソール、またはコードを使用します。( Lambda セクション( AWS リソース ウィンドウの AWS Cloud9 IDE リモートバージョンの削除 Lambda 関数。)

Lambda 関数のリモートバージョンの削除方法を決定するには、Lambda 関数のローカルバージョンと同じディレクトリにある .application.json ファイルを AWS Cloud9 IDE で開きます。DeploymentMethod 値が lambda に設定されている場合は、Lambda を使用してこの関数を削除します。DeploymentMethod 値が cloudformation に設定されている場合は、AWS CloudFormation を使用してこの関数を削除します。

注記

.application.json ファイルで DeploymentMethod 値が cloudformation に設定されている場合は、この関数を削除するために Lambda を使用しないでください。この場合、AWS CloudFormation の代わりに Lambda を使用して関数を削除すると、一部の関連する AWS リソースが残ったままになることがあります。これらの残りのリソースは、AWS アカウントに継続的な料金を発生する可能性があります。

使用 Lambda 機能のリモートバージョンを削除します。

_を使用 Lambda コンソールまたはコードを使用して、 Lambda セクション( AWS リソース ウィンドウまたは PhysicalId 値( .application.json 以下のようにファイルを作成します。

警告

リモートバージョンの関数を削除すると、これは Lambda から完全に削除されます。関数のリモートバージョンを誤って削除し、それを復元する必要があるとき、関数のローカルバージョンがまだ存在する場合には、そのローカルバージョンを Lambda にアップロードできます。手順については、「のコードをアップロード Lambda 機能」を参照してください。

  • Lambda コンソールを使用して関数を削除するには、次を実行します。

    1. Lambda コンソール (https://console.aws.amazon.com/lambda) を開きます。

    2. AWS ナビゲーションバーで Lambda 関数を含む AWS リージョンが表示されない場合には、それを選択します。

    3. 関数のリストが表示されない場合は、サービスナビゲーションペインで [Functions (関数)] を選択します。

    4. 次のいずれかを行ってください。

      • 削除する関数の横にあるラジオボタンを選択します。次に、[Actions (アクション)]、[Delete (削除)] の順に選択します。[Delete (削除)] を選択して、削除を確定します。

      • 削除する関数の名前を選択します。次に、[Actions (アクション)]、[Delete Function (関数の削除)] の順に選択します。[Delete (削除)] を選択して、削除を確定します。

  • コードを使用して関数を削除するには、次のように、Lambda の関数削除オペレーションを呼び出します。

    AWS CLI

    delete-function

    AWS SDK for C++

    DeleteFunctionRequest

    AWS SDK for Go

    DeleteFunctionDeleteFunctionRequestDeleteFunctionWithContext

    AWS SDK for Java

    DeleteFunctionRequestDeleteFunctionResult

    AWS SDK for JavaScript

    deleteFunction

    AWS SDK for .NET

    DeleteFunctionRequestDeleteFunctionResponse

    AWS SDK for PHP

    deleteFunction

    AWS SDK for Python (Boto)

    delete_function

    AWS SDK for Ruby

    delete_function

    AWS Tools for Windows PowerShell

    Remove-LMFunction

    Lambda API:

    DeleteFunction

使用 AWS CloudFormation 機能のリモートバージョンを削除します。

AWS CloudFormation コンソールまたはコードを使用して、.application.json ファイルの StackName 値と同じ名前のスタックを削除します。次に手順を示します。

警告

スタックを削除すると、AWS CloudFormation はこのスタックに関連付けられているすべての AWS リソースを削除します。これには Lambda 関数だけでなく、その他の関連リソース (Amazon API Gateway の API など) も含まれます。関数のリモートバージョンを誤って削除し、それを復元する必要がある場合は、AWS Cloud9 IDE のローカルバージョンの関数 (まだ存在している場合) を Lambda にアップロードします。手順については、「のコードをアップロード Lambda 機能」を参照してください。スタックのその他のリソースはすべて完全に削除され、復元できません。

  • AWS CloudFormation コンソールを使用してスタックを削除するには、次を実行します。

    1. AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

    2. AWS ナビゲーションバーでこのスタックを含む AWS リージョンが表示されない場合には、それを選択します。

    3. スタックのリストで、次のいずれかを実行します。

      • 削除するスタック名の横にあるチェックボックスを選択します。次に、[Actions (アクション)]、[Delete Stack (スタック)] の順に選択します。[Yes, Delete (はい、削除します)] を選択して、削除を確定します。

      • 削除するスタックの名前を選択します。次に、[Other Actions (他のアクション)]、[Delete Stack (スタックの削除)] の順に選択します。[Yes, Delete (はい、削除します)] を選択して、削除を確定します。

  • コードを使用してスタックを削除するには、次のように、AWS CloudFormation のスタック削除オペレーションを呼び出します。

    AWS CLI

    delete-stack

    AWS SDK for C++

    DeleteStackRequest

    AWS SDK for Go

    DeleteStackDeleteStackRequestDeleteStackWithContext

    AWS SDK for Java

    DeleteStackRequestDeleteStackResult

    AWS SDK for JavaScript

    deleteStack

    AWS SDK for .NET

    DeleteStackRequestDeleteStackResponse

    AWS SDK for PHP

    deleteStack

    AWS SDK for Python (Boto)

    delete_stack

    AWS SDK for Ruby

    delete_stack

    AWS Tools for Windows PowerShell

    Remove-CFNStack

    AWS CloudFormation API:

    DeleteStack