AWS最近宣布为AWS Lambda推出新的PowerShell自定义运行时,以运行用PowerShell编写的Lambda函数。有了这个新的运行时,开发者可以在Lambda中编写原生的PowerShell代码,而不必进行编译,从而简化了部署和测试。
AWS的无服务器开发者倡导者Julian Wood解释了这些好处。
新的PowerShell自定义运行时使用本地PowerShell,而不是编译PowerShell并将其托管在.NET运行时上。使用本地PowerShell意味着函数运行环境与标准的PowerShell会话相匹配,这就简化了开发和测试过程(......)这个自定义运行时将放置在管道上的所有东西作为函数输出返回,包括Write-Output的输出。这让你对函数输出、错误信息和日志记录有更多的控制。
虽然Lambda从2018年开始支持PowerShell,但之前的解决方案需要PowerShell的.NET Core运行时实现,而且一个函数只返回PowerShell管道的最后输出。微软MVP和Powershell布道者Justin Grote在推特上说。
AWS Lambda终于有了一个PowerShell运行时,而不是 "嘿,建立一个作为PowerShell主机的C#应用程序,这就是我们支持PowerShell的方式"。伟大的工作!
/filters:no_upscale()/news/2022/06/aws-powershell-lambda/en/resources/1PowerShell-code-in-Lambda-console-1654093229497.png)
来源:aws.amazon.com/blogs/compu…
用PowerShell构建Lambda函数 目前支持.NET 6和.NET Core 3.1。运行时定义了两个提供给Lambda函数的主要变量:LambdaContext,一个提供方法和属性的对象,其中有关于调用和运行时环境的信息。
亚马逊的系统开发工程师、《PowerShell解释》的作者Kevin Marquette 写道。
这真的很厉害。我对最初的PowerShell Lambda开发体验不满意,所以我创建了一个自定义的运行时,以展示用户体验的内容。他们接受了我的概念,并在背后投入资源,使之成为现实。我很高兴这终于被发布了。
新的自定义运行时允许直接在Lambda控制台内编辑PowerShell代码,并支持额外的功能,包括Add-Type和不同的处理程序选项。Wood解释了如何构建和打包它。
自定义运行时基于Lambda提供的.al2运行时,它在亚马逊Linux环境中运行(......)你可以将运行时作为Lambda层构建和打包,或者将其包含在容器镜像中。当作为一个层打包时,你可以把它添加到多个函数中,这可以简化部署。该运行时是基于跨平台的PowerShell核心。这意味着,你可以在Windows、Linux或macOS上为PowerShell开发Lambda函数。
在GitHub仓库中可以找到自定义运行时的代码,以及安装选项和不同的例子。