翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Lambda の 関数ハンドラー PowerShell
Lambda 関数が呼び出されると、Lambda ハンドラーは PowerShell スクリプトを呼び出します。
PowerShell スクリプトが呼び出されると、以下の変数が事前定義されています。
-
$LambdaInput
- ハンドラーへの入力を含む PSObject。この入力は、イベントデータ (イベントソースによって公開される)、あるいは文字列やカスタムデータオブジェクトなど、ユーザーが提供するカスタム入力とすることができます。 -
$LambdaContext
– 現在の関数の名前、メモリ制限、残り実行時間、ログ記録など、現在の呼び出しに関する情報にアクセスするために使用できる Amazon.Lambda.Core.I LambdaContext オブジェクト。
例えば、次の PowerShell サンプルコードを考えてみましょう。
#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'} Write-Host 'Function Name:' $LambdaContext.FunctionName
このスクリプトは $LambdaContext variable から取得した FunctionName プロパティを返します。
注記
PowerShell スクリプト内で #Requires
ステートメントを使用して、スクリプトが依存するモジュールを指定する必要があります。このステートメントは 2 つの重要なタスクを実行します。1) スクリプトが使用するモジュールを他のデベロッパーに伝え、2) デプロイの一環として、AWS PowerShell ツールがスクリプトでパッケージ化する必要がある依存モジュールを識別します。の #Requires
ステートメントの詳細については PowerShell、「 で が必要
PowerShell Lambda 関数がAWS PowerShell コマンドレットを使用する場合は、 AWSPowerShell.NetCore
モジュールを参照する#Requires
ステートメントを必ず設定してください。これは PowerShell Core をサポートし、Windows のみをサポートする AWSPowerShell
モジュールはサポートしません PowerShell。また、コマンドレットインポートプロセスを最適化する AWSPowerShell.NetCore
のバージョン 3.3.270.0 以降を使用していることも確認します。古いバージョンを使用している場合、より長いコールドスタートが発生します。詳細については、AWS「Tools for PowerShell
データを返す
一部の Lambda 呼び出しには、呼び出し元にデータを返す目的があります。例えば、呼び出しが API Gateway から送信されたウェブリクエストへの返答である場合、Lambda 関数はレスポンスを返す必要があります。 PowerShell Lambda の場合、 PowerShell パイプラインに最後に追加されるオブジェクトは、Lambda 呼び出しから返されたデータです。オブジェクトが文字列の場合、返されるデータも文字列です。それ以外の場合、ConvertTo-Json
コマンドレットを使用して、オブジェクトは JSON に変換されます。
例えば、 PowerShell パイプライン$PSVersionTable
に を追加する次の PowerShell ステートメントを考えてみます。
$PSVersionTable
PowerShell スクリプトの完了後、 PowerShell パイプラインの最後のオブジェクトは Lambda 関数の戻りデータです。 $PSVersionTable
は、実行中の環境に関する情報も提供する PowerShell グローバル変数です。