本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 .zip 檔案封存部署 PowerShell Lambda 函數
PowerShell 執行階段的部署套件包含您的 PowerShell 指令碼、指 PowerShell 令碼所需的 PowerShell 模組,以及裝載 PowerShell Core 所需的組件。
建立 Lambda 函數
若要開始使用 Lambda 撰寫和叫用指令 PowerShell 碼,您可以使用指New-AWSPowerShellLambda
令程式根據範本建立入門指令碼。您可以使用 Publish-AWSPowerShellLambda
cmdlet 將指令碼部署至 Lambda。然後,您可以透過命令列或 Lambda 主控台測試指令碼。
若要建立新 PowerShell 指令碼,請上傳並進行測試,請執行下列動作:
-
若要檢視可用範本的清單,請執行以下命令:
PS C:\> Get-AWSPowerShellLambdaTemplate Template Description -------- ----------- Basic Bare bones script CodeCommitTrigger Script to process AWS CodeCommit Triggers ...
-
若要根據
Basic
範本建立範例指令碼,請執行下列命令:New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic
一個名為
MyFirstPSScript.ps1
的新檔案已建立在目前目錄下的新子目錄中。該目錄的名稱依據-ScriptName
參數而定。您可以使用-Directory
參數來選擇另一個目錄。您可以看到新的檔案包含下列內容:
# PowerShell script file to run as a Lambda function # # When executing in Lambda the following variables are predefined. # $LambdaInput - A PSObject that contains the Lambda function input data. # $LambdaContext - An Amazon.Lambda.Core.ILambdaContext object that contains information about the currently running Lambda environment. # # The last item in the PowerShell pipeline is returned as the result of the Lambda function. # # To include PowerShell modules with your Lambda function, like the AWSPowerShell.NetCore module, add a "#Requires" statement # indicating the module and version. #Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'} # Uncomment to send the input to CloudWatch Logs # Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)
-
若要查看 PowerShell 指令碼中的記錄訊息傳送到 Amazon CloudWatch Logs 的方式,請取消註解範例指令碼
Write-Host
行。若要示範如何從您的 Lambda 函數傳回資料,請在指令碼的結尾處以
$PSVersionTable
新增一行。這會將「」新增$PSVersionTable
至 PowerShell 配管。 PowerShell 指令碼完成後, PowerShell 管線中的最後一個物件就是 Lambda 函數的傳回資料。$PSVersionTable
是一個 PowerShell 全局變量,還提供有關運行環境的信息。完成這些變更之後,最後兩行的範例指令碼應類似:
Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5) $PSVersionTable
-
在您編輯
MyFirstPSScript.ps1
檔案之後,請將目錄變更為指令碼的位置。然後執行下列命令,將指令碼發佈至 Lambda︰Publish-AWSPowerShellLambda -ScriptPath .\MyFirstPSScript.ps1 -Name MyFirstPSScript -Region us-east-2
請注意,
-Name
參數指定 Lambda 函數名稱,此名稱會出現在 Lambda 主控台。您可以使用此函式來手動叫用您的指令碼。 -
使用 AWS Command Line Interface (AWS CLI)
invoke
命令來叫用函數。> aws lambda invoke --function-name MyFirstPSScript out