Amazon Lambda中的函数处理器 PowerShell - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon 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 变量中获得的 FunctionName 属性。

注意

你需要在脚本中使用#Requires语句来指明 PowerShell 脚本所依赖的模块。此语句可执行两个重要任务。1) 它向其他开发人员传达脚本使用哪些模块,2) 它标识Amazon PowerShell 工具在部署过程中需要与脚本打包的依赖模块。有关中#Requires语句的更多信息 PowerShell,请参阅关于需求。有关 PowerShell 部署包的更多信息,请参阅使用.zip 文件存档部署 PowerShell Lambda 函数

当您的 PowerShell Lambda 函数使用 Amazon PowerShell cmdlet 时,请务必设置一条#Requires语句来引用支持 PowerShell 核心的AWSPowerShell.NetCore模块,而不是仅支持 Windows 的AWSPowerShell模块。 PowerShell此外,请确保使用 3.3.270.0 版或更新版本的 AWSPowerShell.NetCore,其优化了 cmdlet 导入过程。如果使用较旧版本,冷启动时间较长。有关更多信息,请参阅Amazon工具 PowerShell

返回数据

有些 Lambda 调用旨在为调用方返回数据。例如,如果某个调用是为了响应来自 API Gateway 的 Web 请求,则我们的 Lambda 函数需要返回响应。对于 PowerShell Lambda,添加到 PowerShell 管道中的最后一个对象是 Lambda 调用的返回数据。如果对象是字符串,数据将按原样返回。否则,对象将使用 ConvertTo-Json cmdlet 转换为 JSON。

例如,考虑以下 PowerShell 语句,该语句$PSVersionTable添加到 PowerShell 管道中:

$PSVersionTable

PowerShell 脚本完成后, PowerShell 管道中的最后一个对象是 Lambda 函数的返回数据。 $PSVersionTable是一个 PowerShell 全局变量,它还提供有关运行环境的信息。