サーバーレスアプリケーションのデバッグ用設定オプション - AWS Toolkit for VS Code

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

サーバーレスアプリケーションのデバッグ用設定オプション

launch.json ファイルを開いてデバッグ設定を編集する場合は、表示するために VS Code IntelliSense 機能を使用して、有効なプロパティを表示して自動的に完了できます。エディタで IntelliSense をトリガーするには、Ctrl + スペースバーを押します。

VS Code の IntelliSense を使用して、有効なデバッグプロパティを見つけて完了します。

IntelliSense では、Lambda 関数を直接呼び出すために、または AWS SAM テンプレート によりプロパティを検索し、定義できます。"lambda" (関数の実行方法) 、"sam" (AWS SAM CLIがアプリケーションを構築する方法) 、および "aws" (AWS 接続情報の提供方法) に関するプロパティを定義することもできます。

AWS SAM: 直接 Lambda ハンドラー呼び出し/テンプレートベースの Lambda 呼び出し
プロパティ 説明

type

起動設定を管理する拡張機能を指定します。常に aws-sam に設定して AWS SAM CLI を使用して、ローカルで構築およびデバッグを行います。

name

起動設定のデバッグリストに表示される読みやすい名前を指定します。

request

指定された拡張子 (aws-sam) が実行する構成の種類を指定します。常に direct-invoke に設定され、Lambda 関数をスタートします。

invokeTarget

リソースを呼び出すためのエントリポイントを指定します。

Lambda 関数を直接呼び出すには、次のinvokeTargetフィールドに値を設定:

  • targetcode に設定します。

  • lambdaHandler – 呼び出す予定の Lambda 関数ハンドラの名前。

  • projectRoot – Lambda 関数ハンドラーを含むアプリケーションファイルのパス。

  • architecture — ローカル SAM Lambda アプリケーションが実行されるエミュレート環境のプロセッサアーキテクチャ。特定のランタイムでは、デフォルトの x86_64 アーキテクチャの代わりに arm64 を選択できます。詳細については、「新しいサーバーレスアプリケーションの作成 (ローカル)」を参照してください。

AWS SAM テンプレートを使用して Lambda リソースを呼び出すには、次の invokeTarget フィールドに値を設定:

  • targettemplate に設定します。

  • templatePath – AWS SAM テンプレートファイルへのパス。

  • logicalId – 呼び出す リソース名 AWS::Lambda::Function またはAWS::Serverless::Function。リソース名は、YAML 形式の AWS SAM テンプレートで検索できます。AWS Toolkit は暗黙に、イメージベース Lambda 関数として AWS SAM テンプレート内の PackageType: Image で定義された関数を認識します。詳細については、「AWS Lambda デベロッパーガイド」の「Lambda デプロイパッケージ」を参照してください。

Lambda ("lambda") のプロパティ
プロパティ 説明

environmentVariables

オペレーショナルパラメータを Lambda 関数に渡します。例えば、Amazon S3 バケットに書き込む場合、書き込み先のバケット名はハードコーディングせずに、環境可変として設定します。

注記

サーバーレスアプリケーションの環境変数を指定する場合は、AWS SAM テンプレート(template.yaml) および launch.json ファイルの両方に設定を追加する必要があります。

AWS SAM テンプレートの環境変数の書式設定の例

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello-world/ Handler: app.lambdaHandlerN10 Runtime: nodejs10.x Environment: Variables: SAMPLE1: Default Sample 1 Value

launch.json ファイルの環境変数の書式設定の例

"environmentVariables": { "SAMPLE1": "My sample 1 value" }

payload

入力として Lambda 関数に提供されるイベントペイロード用に 2 つのオプションを提供します。

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

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

memoryMB

呼び出された Lambda 関数の実行のために提供されたメモリのメガバイト (MB) を指定します。

runtime

Lambda 関数で使用するランタイムを指定します。詳細については、「AWS Lambda ランタイム」を参照してください。

timeoutSec

デバッグセッションがタイムアウトするまでの許可される時間を秒単位で設定します。

pathMappings

ローカルコードがコンテナ内のどこで実行されるかを指定します。

デフォルトでは、Toolkit for VS Code が localRoot をローカルワークスペースの Lambda 関数のコードルート、および remoteRoot から Lambda で実行されるコードのデフォルトの作業ディレクトリの /var/task に設定します。作業ディレクトリを Dockerfile や AWS CloudFormation テンプレートファイルの WorkingDirectory パラメータで変更する場合、少なくとも 1 つの pathMapping エントリがローカルに設定されたブレークポイントを Lambda コンテナで実行されているコードに正常にマッピングできるように、指定される必要があります。

launch.json ファイルの pathMappings の書式設定の例

"pathMappings": [ { "localRoot": "${workspaceFolder}/sam-app/HelloWorldFunction", "remoteRoot": "/var/task" } ]

注意:

  • .NET イメージベースの Lambda 関数の場合、remoteRoot エントリはビルドディレクトリである必要があります。

  • Node.js ベースの Lambda 関数の場合は、指定できるパスマッピングエントリは 1 つだけです。

Toolkit for VS Code は AWS SAM CLI を使用して、サーバーレスアプリケーションをローカルで構築およびデバッグできます。launch.json ファイル内の "sam" 設定のプロパティを使って AWS SAM CLI コマンドの動作を設定できます。

AWS SAM CLI ("sam") プロパティ
プロパティ 説明 デフォルト値

buildArguments

sam build コマンドが Lambda ソースコードを構築する方法を設定します。構築オプションを表示するには、「AWS Serverless Application Model デベロッパーガイド」の「sam build」を参照してください。

空の文字列

containerBuild

Lambda のようなDocker コンテナ内部に関数を構築するかどうかを示します。

false

dockerNetwork

Lambda Docker コンテナが接続する既存の Docker ネットワークの名前または ID を、デフォルトのブリッジネットワークとともに指定します。指定されていない場合、Lambda コンテナはデフォルトのブリッジ Docker ネットワークのみに接続します。

空の文字列

localArguments

追加のローカル呼び出し引数を指定します。

空の文字列

skipNewImageCheck

コマンドが Lambda ランタイム用の最新 Docker イメージのプルダウンをスキップするかどうかを指定します。

false

template

AWS SAM パラメータを使用して顧客の値を入力することで、SAM テンプレートをカスタマイズします。詳細については、「AWS CloudFormation ユーザーガイド」の「パラメータ」を参照してください。

"parameters":{}

AWS接続 ("aws") プロパティ
プロパティ 説明 デフォルト値

credentials

認証情報ファイルから特定のプロファイルを選択 (例えば、profile:default) して、AWS 認証情報を取得します。

既存の共有 AWS Config ファイルまたは共有 AWS 認証情報ファイル が Toolkit for VS Code に提供する AWS 認証情報。

region

サービスの AWS リージョン (us-east-1 など) を設定します。

アクティブな認証情報プロファイルに関連付けられたデフォルトの AWSリージョン。

例: テンプレートの起動設定

AWS SAM テンプレートターゲットに関して、以下に起動設定ファイルの例を示します。

{ "configurations": [ { "type": "aws-sam", "request": "direct-invoke", "name": "my-example:HelloWorldFunction", "invokeTarget": { "target": "template", "templatePath": "template.yaml", "logicalId": "HelloWorldFunction" }, "lambda": { "payload": {}, "environmentVariables": {} } } ] }

例: コード起動設定

Lambda 関数ターゲットの起動設定ファイルの例を次に示します。

{ "configurations": [ { "type": "aws-sam", "request": "direct-invoke", "name": "my-example:app.lambda_handler (python3.7)", "invokeTarget": { "target": "code", "projectRoot": "hello_world", "lambdaHandler": "app.lambda_handler" }, "lambda": { "runtime": "python3.7", "payload": {}, "environmentVariables": {} } } ] }