最近,aws 发布了一个新的 powershell 自定义运行时,可让 aws lambda 运行使用 powershell 编写的 lambda 函数。有了这个运行时,开发人员无需编译就可以用 lambda 编写原生 powershell 代码,从而简化了部署和测试。
aws 的无服务器开发者布道师 julian wood 介绍了它的优势:
新的 powershell 自定义运行时使用了原生 powershell,不需要编译 powershell 并托管在.net 运行时上。使用原生 powershell 意味着函数运行时环境与标准的 powershell 会话是匹配的,这简化了开发和测试过程……这个自定义运行时将管道上的所有内容作为函数输出返回,包括 write-output 的输出。开发人员能够更好地控制函数输出、错误消息和日志记录。
虽然 lambda 从 2018 年开始就支持,但之前的金马国际的解决方案需要依赖.net core 运行时,并且一个函数只返回 powershell 管道的最后一次输出。微软 mvp、powershell 推广者 justin grote 在推特上写道:
aws lambda 终于有了一个 powershell 运行时,而不是“为 powershell 构建一个 c#应用,这就是我们支持 powershell 的方式”。伟大的杰作!
图片来源:
用 powershell 构建的 lambda 函数目前支持.net 6 和.net core 3.1。运行时定义了两个 lambda 函数可用的主要变量:$lambdainput,一个包含输入事件数据的 psobject,以及 $lambdacontext,一个包含调用和运行时环境信息的方法和属性的对象。
亚马逊系统开发工程师、《powershell explained》作者 kevin marquette 写道:
这真是太棒了。我对之前的 powershell lambda 开发体验不是很满意,所以我创建了一个自定义运行时来提升用户体验。他们采用了我的概念,并投入资源使其成为现实。我很高兴它终于发布了。
新的自定义运行时允许开发人员直接在 lambda 控制台中编辑 powershell 代码,并支持其他附加功能,比如 add-type 和各种不同的处理程序选项。wood 解释了如何构建和打包:
自定义运行时基于 lambda 的 provided.al2 运行时,它运行在 amazon linux 环境中……你可以构建运行时并将其打包成一个 lambda 层,或将其包含在容器镜像中。如果将其打包为一个层,可以将其添加到多个函数中,从而简化部署。运行时基于跨平台的 powershell core,这意味着你可以在 windows、linux 或 macos 上开发 powershell lambda 函数。
自定义运行时的代码可在中找到,其中也包含了安装选项和不同的示例。
原文链接:
评论