Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Toolkit AWS SAM を使用した の操作 AWS

フォーカスモード
Toolkit AWS SAM を使用した の操作 AWS - AWS Cloud9

AWS Cloud9 は、新規顧客には利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

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

AWS Cloud9 は、新規顧客には利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

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

Toolkit AWS は、サーバーレスアプリケーションのサポートを提供します。Toolkit を使用すると AWS 、 AWS Lambda関数を含むサーバーレスアプリケーションを作成し、アプリケーションを AWS CloudFormation スタックにデプロイできます。

サーバーレスアプリケーションの作成

この例では、 AWS Toolkit を使用してサーバーレスアプリケーションを作成する方法を示します。サーバーレスアプリケーションの実行とデバッグの詳細については、「サーバーレスアプリケーションの実行とデバッグ」を参照してください。

サーバーレスアプリケーションを作成するために必要な前提条件には、AWS SAM CLIAWS CLI が含まれます。これらは に含まれています AWS Cloud9。CLI AWS SAM がインストールされていない場合、または古い場合は、インストールまたはアップグレードを実行する必要があります。 AWS SAM CLI をインストールする方法については、AWS SAM 「CLI のインストール」を参照してください。また、CLI AWS SAM のアップグレード方法については、AWS SAM 「CLI のアップグレード」を参照してください。

AWS ツールキットでサーバーレスアプリケーションを作成

この例では、 AWS Serverless Application Model (AWS SAM) を使用して AWS Toolkit でサーバーレスアプリケーションを作成する方法を示します。

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

    注記

    または、[AWS: Explorer] のリストからメニューアイコンを選択し、[Create Lambda SAM Application] (Lambda SAM アプリケーションの作成) を選択します。

  2. SAM アプリケーションのランタイムを選択します。この例では、[nodejs12.x]を選択します。

    注記

    「(Image)」を含むランタイムの 1 つを選択した場合、アプリケーションのパッケージタイプは Image です。「(Image)」を含まないランタイムの 1 つを選択した場合、アプリケーションは Zip タイプです。Image および Zip パッケージタイプの違いの詳細については、AWS Lambda デベロッパーガイドの「Lambda デプロイパッケージ」を参照してください。

  3. サーバーレスアプリケーションに以下のいずれかのテンプレートを選択します。

    • AWS SAM Hello World: 従来の「Hello World」メッセージを返す Lambda 関数を含む基本的なテンプレート。

    • AWS Step Functions サンプルアプリ: 株式取引ワークフローを実行するサンプルアプリケーション。ステップ関数は、関与する Lambda 関数の相互作用をオーケストレートします。

  4. 新しいプロジェクトの場所を選択します。既存のワークスペースフォルダがある場合は、これを選択できます。それ以外の場合は、別のフォルダを参照して選択します。[Select a different folder] (別のフォルダを選択) を選択すると、ダイアログボックスが表示され、フォルダの場所を選択できます。

  5. 新しいアプリケーションの名前を入力します。この例では my-sam-app-nodejs を使用します。Enter キーを押すと、 AWS Toolkit はプロジェクトの作成に少し時間がかかります。

プロジェクトが作成されると、[環境] ウィンドウにアプリケーションのファイルを表示できます。[Explorer] ウィンドウに表示されていることを確認します。

SAM アプリケーションで使用可能なランタイムを示すスクリーンショット。

サーバーレスアプリケーションの実行とデバッグ

AWS Toolkit を使用して、サーバーレスアプリケーションをデバッグし、開発環境でローカルで実行する方法を設定できます。 AWS Serverless Application Model (AWS SAM) テンプレートで定義されたサーバーレスアプリケーションをデバッグできます。このテンプレートは、シンプルな YAML 構文を使用して、サーバーレスアプリケーションを構成する関数、API、データベース、API、データベース、イベントソースのマッピングなどのリソースを記述します。

AWS SAM テンプレートの詳細については、「 デベロッパーガイド」のAWS SAM 「 テンプレートの構造」を参照してください。 AWS Serverless Application Model

また、SAM テンプレートにコミットされていないサーバーレスアプリケーションを迅速にデバッグすることもできます。

インラインアクションを使用して対象となる AWS Lambda 関数を識別することで、デバッグ動作の設定を開始します。SAM テンプレートによって定義されたインフラストラクチャを使用するには、関連する YAML 形式のファイルでインラインアクションを使用します。テンプレートなしで関数を直接テストするには、アプリケーションファイルの Lambda ハンドラーのコンテキストに応じたリンクを使用します。

注記

この例では、JavaScript を使用するアプリケーションをデバッグします。ただし、 AWS Toolkit で使用できるデバッグ機能は、次の言語とランタイムで使用できます。

  • JavaScript – Node.js 10.x, 12.x, 14.x

  • Python – 3.7、3.8、3.9、3.10 (Python 2.7 および 3.6 サーバーレスアプリケーションは実行できますが、 AWS Toolkit によってデバッグすることはできません)。

言語の選択は、コンテキストに応じたリンクが適格な Lambda ハンドラーを示す方法にも影響します。詳細については、「コードからサーバーレス関数を直接実行およびデバッグ」を参照してください。

サーバーレスアプリケーションの実行とデバッグのため、SAM テンプレートを使用

SAM テンプレートを使用して実行およびデバッグされるアプリケーションの場合、YAML 形式のファイルには、アプリケーションの動作と使用するリソースが記述されます。 AWS Toolkit を使用してサーバーレスアプリケーションを作成すると、 という名前のファイルがプロジェクトに自動的に生成template.yamlされます。

この手順では、サーバーレスアプリケーションの作成 で作成したサンプルアプリケーションを使用します。

SAM テンプレートを使用してサーバーレスアプリケーションを実行およびデバッグ

  1. サーバーレスアプリケーションを構成するアプリケーションファイルを表示するには、[環境 ]ウィンドウに移動します。

  2. アプリケーションフォルダ (例:my-sample-app) でtemplate.yaml ファイルを開きます。

  3. template.yaml で、[Edit Launch Configuration] (起動設定の編集) を選択します。

    新しいエディタに表示されるlaunch.jsonファイルは、デフォルト属性があるデバッグ設定を提供します。

  4. 次の設定プロパティの値を編集または確認します。

    • "name" – 読みやすい名前を入力して、[実行] ビューの [設定] ドロップダウンフィールドに表示します。

    • "target" – 値が "template" であることを確認します。これにより、SAM テンプレートがデバッグセッションのエントリポイントになります。

    • "templatePath"template.yaml ファイルに相対パスまたは絶対パスを入力。

    • "logicalId" – 名前が SAM テンプレートの [Resources] (リソース) セクションに指定されている名前と一致することを確認します。この場合はタイプ AWS::Serverless::FunctionHelloWorldFunction です。

    launch.json ファイル内のこれらと他の入力に関する詳細は、「サーバーレスアプリケーションのデバッグ用設定オプション」を参照してください。

  5. デバッグ設定に問題がなければ、launch.json を保存します。次に、RUN の横の緑色の[play] (再生) ボタンを選択してデバッグを開始します。

    注記

    SAM アプリケーションの実行に失敗した場合は、[出力]ウィンドウをチェックして、Docker イメージが構築されていないためにエラーが発生しているかどうかを確認します。環境でディスク容量の解放が必要になる場合があります。

    詳細については、「AWS Cloud9 環境に十分なディスク容量がないため、 AWS Toolkit で SAM アプリケーションをローカルで実行中にエラーが発生しました」を参照してください。

    デバッグセッションを開始すると、[DEBUG CONSOLE] (デバッグコンソール) パネルにデバッグ出力が表示され、Lambda 関数から返された値が表示されます。SAM アプリケーションをデバッグする場合、AWS ツールキット[Output] (出力) パネルの [Output] (出力) チャネルとして選択します。

    注記

    Windows ユーザーの場合、このプロセス中に Docker マウントエラーが表示されたら、[Docker Settings] (Docker 設定) で共有ドライブの認証情報を 更新する必要があります。Docker マウントエラーは次のように表示されます。

    Fetching lambci/lambda:nodejs10.x Docker container image...... 2019-07-12 13:36:58 Mounting C:\Users\<username>\AppData\Local\Temp\ ... as /var/task:ro,delegated inside runtime container Traceback (most recent call last): ...requests.exceptions.HTTPError: 500 Server Error: Internal Server Error ...

コードからサーバーレス関数を直接実行およびデバッグ

AWS SAM アプリケーションをテストするときは、Lambda 関数のみを実行およびデバッグすることを選択できます。SAM テンプレートに定義されている他のリソースは除外します。このアプローチでは、インラインアクションを使用して、直接呼び出すことができる、ソースコード内の Lambda 関数ハンドラーを特定します。

コンテキスト対応リンクによって検出される Lambda ハンドラーは、アプリケーションで使用している言語とランタイムによって異なります。

言語/ランタイム Lambda 関数をコンテキスト対応リンクで特定するための条件

JavaScript(Node.js 10.x、12.x、14.x)

関数には以下の特徴があります。
  • 最大 3 つのパラメータがあるエクスポートされた関数です。

  • WorkSpaces フォルダー内の親フォルダーにpackage.json ファイルがあります。

Python (3.7、3.8、3.9、3.10)

関数には以下の特徴があります。
  • 上位レベルの関数です。

  • WorkSpace フォルダー内の親フォルダーにrequirements.txt ファイルがあります。

サーバーレスアプリケーションをアプリケーションコードから直接実行およびデバッグ

  1. サーバーレスアプリケーションのファイルを表示するには、エディタの横にあるフォルダアイコンを選択して、アプリケーションフォルダに移動します。

  2. アプリケーションフォルダ (my-sample-app など) で、関数フォルダ (この例では hello-world) を展開し、app.js ファイルを開きます。

  3. 対象の Lambda ハンドラー関数を識別するインラインアクションで、Add Debug Configuration を選択します。[Add debug configuration] (デバッグ設定の追加) オプションが表示されない場合は、コードレンズを有効にする必要があります。コードレンズを有効にするには、「AWS Toolkit コードレンズの有効化 」を参照してください。

    Lambda 関数ハンドラーのインラインアクション内の [Add Debug Configuration] オプションにアクセスします。
  4. SAM アプリケーションを実行するランタイムを選択します。

  5. launch.json ファイルのエディターでは、次の設定プロパティの値を編集または確認します。

    • "name" – 分かりやすい名前を入力します。

    • "target" – 値が "code" で、Lambda 関数ハンドラを直接呼び出せることを確認します。

    • "lambdaHandler" – 関数を呼び出すために Lambda が呼び出すコード内のメソッドの名前を入力します。例えば、JavaScript のアプリケーションでは、デフォルトは app.lambdaHandler です。

    • "projectRoot" – Lambda 関数を含むアプリケーションファイルにパスを入力します。

    • "runtime" – Lambda 実行環境の有効なランタイム ("nodejs.12x" など) を入力または確認します。

    • "payload" – 以下のいずれかのオプションを選択して、Lambda 関数に入力として提供するイベントペイロードを定義します。

      • "json": イベントペイロードを定義する JSON 形式のキーバリューペア。

      • "path": イベントペイロードとして使用されるファイルへのパス。

  6. デバッグ設定が満足なものであれば、[RUN]の横の緑の再生矢印を選択して、デバッグをスタートします。

    デバッグセッションが開始すると、[DEBUG CONSOLE] (デバッグコンソール) パネルにデバッグ出力が表示され、Lambda 関数から返された値が表示されます。SAM アプリケーションをデバッグする場合、AWS ツールキット[Output] (出力) パネルの [Output] (出力) チャネルとして選択します。

    注記

    エラーメッセージに Docker が記載されている場合は、この注記を参照してください。

ローカル Amazon API Gateway リソースの実行とデバッグ

で指定された AWS SAM API Gateway ローカルリソースを実行またはデバッグできますtemplate.yaml。これを行うには、 type=aws-samで の AWS Cloud9 起動設定を実行しますinvokeTarget.target=api

注記

API Gateway は、2 種類の API をサポートしています。REST API と HTTP API です。ただし、 AWS Toolkit の API Gateway 機能は REST APIs のみをサポートします。時に、HTTP API は「API Gateway V2 API」と呼ばれます。

ローカル API Gateway リソースを実行およびデバッグ
  1. 以下のいずれかのアプローチを選択し、 AWS SAM API Gateway リソース用の起動設定を作成します。

    • オプション 1: AWS SAM プロジェクトのハンドラーソースコード (特に .js、.cs、または .py ファイル) にアクセスし、Lambda ハンドラーにカーソルを合わせて、[Add debug configuration] (デバッグ設定の追加) を選択します。[Add debug configuration] (デバッグ設定の追加) オプションが表示されない場合は、コードレンズを有効にします。コードレンズを有効にするには、「AWS Toolkit コードレンズの有効化 」を参照してください。次に、メニューで API イベントとマークされた項目を選択します。

    • オプション 2 launch.json を編集して、次の構文を使用して新しい起動設定を作成します。

      { "type": "aws-sam", "request": "direct-invoke", "name": "myConfig", "invokeTarget": { "target": "api", "templatePath": "n12/template.yaml", "logicalId": "HelloWorldFunction" }, "api": { "path": "/hello", "httpMethod": "post", "payload": { "json": {} } }, "sam": {}, "aws": {} }
  2. [Run] (実行) ボタンの横のドロップダウンメニューで、起動設定を選択します (上の例では myConfig という名前です)。

  3. (オプション) Lambda プロジェクトコードにブレークポイントを追加します。

  4. 緑の「再生」ボタンの横にある[Run (実行)]ボタンを選択します。

  5. 出力ペインで、結果を表示します。

設定

invokeTarget.target プロパティ値 api を使用すると、ツールキットは起動設定の検証と動作を変更して、api フィールドをサポートします。

{ "type": "aws-sam", "request": "direct-invoke", "name": "myConfig", "invokeTarget": { "target": "api", "templatePath": "n12/template.yaml", "logicalId": "HelloWorldFunction" }, "api": { "path": "/hello", "httpMethod": "post", "payload": { "json": {} }, "querystring": "abc=def&qrs=tuv", "headers": { "cookie": "name=value; name2=value2; name3=value3" } }, "sam": {}, "aws": {} }

例の値を、次のように置き換えます。

invokeTarget.logicalId

API リソース。

パス

起動設定が要求する API パス (例: "path": "/hello")。

invokeTarget.templatePath で指定した template.yaml から解決された有効な API パスでなければなりません。

httpMethod

「delete」、「get」、「head」、「options」、「patch」、「post」、「put」のいずれかの動詞とすることができます。

payload

リクエストで送信する、lambda.payload フィールドと同じ構造とルールを持つ JSON ペイロード (HTTP 本文)。

payload.path は JSON ペイロードを含むファイルを指します。

payload.json は JSON ペイロードをインラインで指定します。

headers

名前と値のペアのオプションのマップ。リクエストに含める HTTP ヘッダーを指定するのに使用します。

"headers": { "accept-encoding": "deflate, gzip;q=1.0, *;q=0.5", "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5", "cookie": "name=value; name2=value2; name3=value3", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", }
querystring

(オプション) この文字列を使用してリクエストの querystring を設定します (例: "querystring": "abc=def&ghi=jkl")。

aws

AWS 接続情報の提供方法。詳細については、サーバーレスアプリケーションのデバッグ用設定オプションAWS 接続 (aws) プロパティ表を参照してください。

SAM

CLI AWS SAM がアプリケーションを構築する方法。詳細については、サーバーレスアプリケーションのデバッグ用設定オプションAWS SAM CLI (「sam」) のプロパティを参照してください。

サーバーレスアプリケーションの同期

この例では、 AWS Toolkit for Visual Studio Codeを使用して、前のトピック(「サーバーレスアプリケーションの作成」) で作成したサーバーレスアプリケーションを AWS に同期する方法を示します。

前提条件

  • グローバルに一意な Amazon S3 バケット名を必ず選択します。

  • で設定した認証情報に、Amazon S3、 AWS CloudFormation AWS Lambda、および Amazon API Gateway のサービスへの適切な読み取り/書き込みアクセスが含まれていることを確認します。

  • デプロイタイプが Image であるアプリケーションの場合、グローバルに一意の Amazon S3 バケット名と、デプロイに使用する Amazon ECR リポジトリ URI の両方があることを確認します。

サーバーレスアプリケーションの同期

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

  2. デプロイ先の AWS リージョン を選択します。

  3. デプロイに使用する template.yaml ファイルを選択します。

  4. このデプロイで使用できる Amazon S3 バケットの名前を入力します。バケットは、デプロイ先のリージョンにある必要があります。

    警告

    Amazon S3 バケット名は、Amazon S3 内のどの既存バケット名とも重複しないグローバルに一意な名前である必要があります。次の例に示す名前に一意の識別子を追加するか、別の名前を選択します。

  5. サーバーレスアプリケーションに、パッケージタイプの Image を伴う関数が含まれているのであれば、このデプロイで使用できる Amazon ECR リポジトリの名前を入力します。リポジトリは、デプロイ先のリージョンにある必要があります。

  6. デプロイしたスタックの名前 (新しいスタック名または既存のスタック名) を入力します。

  7. コンソールの[AWS ツールキット]タブ上のデプロイの成功を確認します。

    エラーが発生すると、右下にメッセージが表示されます。

    この場合は、[AWS ツールキット]タブのテキストで詳細をチェックします。以下に示しているのは、エラーの詳細の例です。

    Error with child process: Unable to upload artifact HelloWorldFunction referenced by CodeUri parameter of HelloWorldFunction resource. S3 Bucket does not exist. Execute the command to create a new bucket aws s3 mb s3://pbart-my-sam-app-bucket An error occurred while deploying a SAM Application. Check the logs for more information by running the "View AWS Toolkit Logs" command from the Command Palette.

    この例では、Amazon S3 バケットが存在しないため、エラーが発生しています。

デプロイが完了すると、アプリケーションが [AWS Explorer] に表示されます。アプリケーションの一部として作成された Lambda 関数の呼び出し方法については、リモートの Lambda 関数を呼び出す を参照してください。

AWS クラウドからサーバーレスアプリケーションを削除

サーバーレスアプリケーションの削除には、以前に AWS クラウドにデプロイした AWS CloudFormation スタックの削除が含まれます。この手順を実行しても、ローカルホストからアプリケーションディレクトリは削除されないことにご注意ください。

  1. AWS Explorer]を開きます。

  2. AWS Explorer]ウィンドウで、削除したいデプロイされたアプリケーションを含むリージョンを展開し、AWS CloudFormationを拡張します。

  3. 削除するサーバーレスアプリケーションに対応する AWS CloudFormation スタックの名前のコンテキスト (右クリック) メニューを開きます。次に、[Delete CloudFormation Stack] (CloudFormation スタックを削除) を選択します。

  4. 選択したスタックを削除したいことを確認する場合は、[削除 ]を選択します。

スタックの削除が成功すると、 AWS Toolkit は AWS Explorer の AWS CloudFormation リストからスタック名を削除します。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.