写点什么

新版 AWS Tools for PowerShell 的预览版

2019 年 9 月 19 日

新版 AWS Tools for PowerShell 的预览版

2012 年,我们推出了第一版适用于 Windows PowerShell 的 AWS Tools for PowerShell 模块,其中包含支持 20 多项服务的大约 550 个 Cmdlet。随后几年间,随着 AWS 的增长,该模块已扩展到涵盖 160 多项服务的大约 6000 个 Cmdlet,并且还涵盖适用于能够运行跨平台的 PowerShell 6 或更高版本用户的另一个(但相同)的模块。


将所有的 Cmdlet 放置在一个模块上也存在缺点(Windows 上适用于 PowerShell 第 2 版到第 5.1 版的 AWSPowerShell、Windows、macOS 和 Linux 上适用于 PowerShell 第 6 版或更高版本的 AWSPowerShell.NetCore)。首先,模块的导入时间大大增加。在我的第 8 代 Core i7 笔记本电脑上,导入任一模块的时间均已经超过 25 秒。第二,团队发现,在模块中列出所有的 Cmdlet 存在一个问题,因此必须恢复到为 CmdletsToExport 清单属性指定“*”。这可以防止 PowerShell 在显式导入 Cmdlet 前在模块中确定它们,从而影响 Cmdlet 名称的制表符完成。


在我的 shell 配置文件中,我使用 Set-AWSCredential 和 Set-DefaultAWSRegion Cmdlet 为我的 shell 设置初始范围。因此,我必须先显式导入模块,然后等待 shell 变成可用状态。这种缓慢的加载时间显然是不可持续的,当我们因特别想要加快启动时间而在 PowerShell 中编写 AWS Lambda 函数时更是如此。


推出重构的 AWS Tools for PowerShell 模块(预览版)


今天,团队向 PowerShell Gallery 发布了一组新模块来解决此问题。这些模块处于预览版本,因此团队希望收集您给出的反馈(无论好坏)!


在预览版中,每个 AWS 服务现在都有自己的 PowerShell 模块,具体取决于名为 AWS.Tools.Common 的常见分享模块(这与我们在 NuGet 上使用 适用于 .NET 的 AWS 开发工具包时采用的模块化方法相同)。这包括很多含义:


  • 现在,您可以只为您实际需要的服务安装模块,而不是为所有服务下载并安装一个大型模块。当您安装服务特定的模块时,将会自动安装常见模块。

  • 您不再需要在使用前显式导入任何预览模块,因为每个模块的 CmdletsToExport 清单属性现在都已适当指定。

  • 新模块的版本控制策略目前遵照 AWSPowerShell 和 AWSPowerShell.NetCore 模块。该策略在团队的 GitHub 存储库预览通知中进行了详细说明,欢迎您提出反馈。

  • Shell 的启动时间很快! 在我之前提到的相同系统上,目前,我的 shell 命令平均加载时间介于 1 到 2 秒。对 shell 配置文件的唯一更改是删除显式模块导入。

  • 新模块遵照名称模式 AWS.Tools.ServiceName。在某些情况下,会将更常见的缩写用于名称。例如:

  • AWS.Tools.EC2

  • AWS.Tools.S3

  • AWS.Tools.DirectoryService

  • AWS.Tools.ElasticLoadBalancingV2

  • AWS.Tools.Polly

  • AWS.Tools.Rekognition

  • 如果您为 AWS Lambda 编写 PowerShell 函数,请务必更新您的脚本依赖项(使用 #Requires 语句)来使用新模块。您还需要为常见模块添加 #Requires 语句。例如,如果我在使用 Amazon Simple Storage Service (S3) 的 PowerShell 中编写 Lambda 函数,我需要在我的函数脚本文件中添加下面两个语句:


#Requires -Modules @{ModuleName='AWS.Tools.Common';ModuleVersion='3.3.563.0'}#Requires -Modules @{ModuleName='AWS.Tools.S3';ModuleVersion='3.3.563.0'}
复制代码


强制参数


该团队还解决了用户提出的另一个长期且常见的请求,即将参数编辑为强制参数。强制参数是 PowerShell 的一项伟大功能,有助于指导不熟悉 API 的用户,我们很高兴现在能够为他们提供支持。强制参数的标记取决于服务模型中的数据,因此,如果您发现任何问题,请通过本博文末尾的链接告知团队,以便他们可以进行调查,并在需要时纠正服务模型。


其他预览改变


开发团队还利用这个机会删除了一些旧的、过时的 Cmdlet。如果您需要使用这些已删除的 Cmdlet,您暂时需要继续使用现有模块,但务必在 GitHub 上提出问题,以便团队可以考虑在新版本中支持它们:


  • 为了支持 CloudHSMV2 (HSM2),删除了 CloudHSM (HSM)

  • 为了支持 ElasticLoadBalancingV2 (ELB2),删除了 ElasticLoadBalancing (ELB)

  • 为了支持 EventBridge (EVB),删除了 CloudWatchEvents (CWE)

  • 为了支持 KinesisAnalyticsV2 (KINA2),删除了 KinesisAnalytics (KINA)

  • AWSPowerShell 和 AWSPowerShell.NetCore 模块发生了什么?


什么也没发生! 在可预见的未来,这些模块将保留不变,并将与预览版同步更新。AWS 非常重视反向兼容,我们不想阻止使用这些模块,除非我们知道社区对替换感到满意。


请注意,我们不能将两种不同的模块组混合在一起。例如,如果您加载了 AWSPowerShell(或 AWSPowerShell.NetCore)模块,则尝试从预览版加载模块会失败,并出现错误。


欢迎参与!


新预览版模块现已在 PowerShell Gallery 中推出,有关该版本的更多详细信息,可参阅 Matteo 在 GitHub 上发布的通知。开发团队非常希望听到您对预览版的反馈 – 您喜欢(或不喜欢)新的模块化格式? 您遇到过标记强制参数新支持的任何相关问题吗? 您发现的任何其他后向兼容性问题? 有关应采用的版本控制策略的想法? 一定要将他们的 GitHub 问题存储库告知他们!


本文转载自 AWS 博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/preview-release-of-the-new-aws-tools-for-powershell/


2019 年 9 月 19 日 16:58323
用户头像

发布了 1227 篇内容, 共 31.7 次阅读, 收获喜欢 33 次。

关注

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

rc-form源码解读

Lee Chen

前端进阶训练营

统一物品编码破解追溯“断链”困局

CECBC区块链专委会

Java 后端博客系统文章系统——No1

猿灯塔

为了把握新基建风口,科技公司都在紧密筹备这件事...

极客时间企业版

架构师训练营-作业5

紫极

华为云FusionInsight MRS通过信通院大数据能力评估 单集群突破2万+规模

FI洞见

大数据 FusionInsight MRS 华为云

官宣 | 千呼万唤,Apache Flink 1.11.0 正式发布啦!

Apache Flink

flink

CORS 和 CSRF 修炼宝典

pingan8787

前端 Web CORS CSRF

vagrant

飞翔

极客大学架构师训练营

Struct embedding in Go

Interstate5

golang time.Time dynamodb apigateway

如何通过DDD构建一辆汽车

Winfield

领域驱动设计 DDD

毕业三年了,我开始明白为什么说三年是一个坎

鄙人薛某

程序员 程序人生 程序员成长 职场回顾

信创舆情一线--5省发布区块链发展计划

统小信uos

区块链 舆情

鲲鹏说:高考之路你们走,高考阅卷我来守

脑极体

ArrayList源码阅读

慌张而黑糖

ArrayList 源码阅读

人生就是体会矛盾的过程

封不羁

成长 感悟

技术选型课程小结

行下一首歌

极客大学架构师训练营

啃碎并发(七):深入分析Synchronized原理

猿灯塔

Java

依旧乐观的李彦宏,十年寻光的百度AI

脑极体

开发者必备——API设计问题

Noneplus

如何优雅地运用位运算实现产品需求?

梁桂钊

Java 架构

数据分析师成长体系漫谈-数仓模型设计

analysis-lion

学习 数据仓库 数据分析 随笔杂谈

一致性hash

石刻掌纹

Hadoop大数据存算分离下,如何解决新旧存储共存?

XSKY融合存储

golang内存对齐

PONPON

go golang go内存对齐

redis系列之——分布式锁

诸葛小猿

Java redis 分布式 分布式锁

架构师师傅在训练营第5周感想

tuuezzy

架构师

如何学习Visual Studio Code

博文视点Broadview

学习 读书笔记 vscode 能力提升 编辑器

这样的二维码,你见过吗?

诸葛小猿

Java Python 后端开发 二维码 myqr

分布式缓存与消息队列

紫极

typora设置图片自动上传,实现快速发文章

诸葛小猿

Typora PicGo gitee 上传图片

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

新版 AWS Tools for PowerShell 的预览版-InfoQ