[アップデート] AWS Tools for PowerShell V5がリリースされました
しばたです。
先日AWS Tools for PowerShell V5の正式版が一般公開されました。
AWS Tools for PowerShell 4.0のリリースが2019年11月だったので約5年弱を経てのメジャーバージョンアップとなります。
GitHub上のIssueでのアナウンスおよびブログで新機能の紹介がされています。
今月はじめにDevelopersIOでも開発状況をお知らせしましたが、その後すぐの一般公開となり軽く驚いています。
本記事では改めて新機能などを紹介していきます。
AWS Tools for PowerShell V5 新機能
以前の記事でも解説していますが、AWS Tools for PowerShell V5は基盤にAWS SDK for .NET V4を採用していることが一番の更新点です。
AWS SDK for .NET V4における変更・改善点をベースとし幾つかの新機能が提供されています。
1. AWS SDK for .NET V4ベースの変更点
AWS SDK for .NET V4における変更の影響を受け、AWS Tools for PowerShell V5では
- サポート対象となるPowerShellバージョンの更新
- 各種コマンドレットで扱う.NETクラスのプロパティがNull許容型に変更
- 例えば
Boolean → Nullable<Boolean>
といった形に変更されています
- 例えば
- 各種コマンドレットで扱う.NETクラスのうち
List
型とDictionary
型の初期値が空のコレクションからnullに変更
といった変更が入っています。
詳細は以前の記事で解説してるのでこちらをご覧ください。
2. その他新機能
その他の新機能としては以下の点が挙げられます。
- 実行中コマンドを
CLRL + C
キーでキャンセル可能に Start-SSMSession
コマンドがSSM Session Manager Pluginと連携可能に- 自動ページネーションが各種コマンドのデフォルト挙動に
こちらも詳細を以前の記事で解説ずみです。
3. 破壊的変更と移行ガイド
AWS Tools for PowerShell V5にはいくつか破壊的変更が存在します。
ただ、そこまでドラスティックなものではなくレガシーな機能の廃止がほとんどです。
前掲のものも含めてAWSブログにある例を転記すると
- PowerShell 5.1以前の環境における
AWSPowerShell
モジュールのサポートを終了 - 自動ページネーションが各種コマンドのデフォルト挙動に
Set-AWSAutoIterationMode -IterationMode v4
コマンドで従来の動作にすることも可能
Get-S3Object
やWrite-S3Object
等のS3操作コマンドにおけるパス指定時の挙動を変更-EnableLegacyKeyCleaning
パラメーターで従来の挙動にすることも可能
AWS_PROFILE
等の環境変数によるクレデンシャル指定をサポート$AWShistory
変数を削除- 代わりに
-Select *
パラメーターを指定することである程度代替可能
- 代わりに
といった点があります。
この他にも
- DynamoDB操作系のコマンドが内部的にバージョンアップ
Get-DDBStream
,Get-DDBStreamList
が別モジュール(Get-DDBSStream)に移動- レガシーとなった一部コマンドの削除
Invoke-LMFunctionAsync
,Get-EC2ImageByName
- レガシーとなった
-PassThru
パラメーターの削除 - 一部コマンドにおいてローカル時刻からUTC時刻を受け取る様にパラメーターが変更
といった変更も加えられています。
破壊的変更の詳細は以下の移行ガイドにまとめられているのでAWS Tools for PowerShell V5へ更新する際は最初に読んでおくと良いでしょう。
AWS Tools for PowerShell V4 のサポートについて
従来のAWS Tools for PowerShell V4は今後6か月間はAWSサービスの更新に合わせたリリースを続けるそうです。
6か月後からメンテナンスモードに入りクリティカルなバグやセキュリティ上の問題にのみ対処するとのことでした。
- V4系のCHANGELOG : https://raw.githubusercontent.com/aws/aws-tools-for-powershell/refs/heads/v4.1/changelogs/CHANGELOG.ALL.md
現時点でAWS Tools for PowerShell V4のサポート終了時期は明らかにされていませんが、AWS Tools for PowerShell V3がいつのまにか終了していた過去があるのであまり長期のサポートにはならない予感がしています。
確認してみた
これまで何度か動作確認済みなので今回はインストール手順の紹介をメインに試していきます。
環境はいつも通りAWS CloudShellにします。
CloudShell環境はまだAWS Tools for PowerShell v4がインストール済みなので先に削除してからAWS Tools for PowerShell V5をインストールします。
従来のプレビュー版とは異なり正式リリース済みなのでAWS.Tools.Installer
モジュールを使ったインストールが可能となっています。
やり方はAWS Tools for PowerShell V4の時と同様です。
# Bash上で既存のAWS Tools for PowerShell v4モジュールを削除
sudo rm -rf /opt/microsoft/powershell/7/Modules/AWS.Tools.*
# 正式リリースしたので AWS.Tools.Installer を使ってインストール可能に
Install-Module -Name AWS.Tools.Installer -Force
# 今回は EC2とSSMのモジュールをインストール
Install-AWSToolsModule AWS.Tools.EC2, AWS.Tools.SimpleSystemsManagement -Force
実行結果はこんな感じです。
本日時点で最新のVer.5.0.2がインストールされました。
PS /> Install-AWSToolsModule AWS.Tools.EC2, AWS.Tools.SimpleSystemsManagement -Force
Installing module AWS.Tools.EC2 version 5.0.2.0
Installing module AWS.Tools.SimpleSystemsManagement version 5.0.2.0
PS /> Get-InstalledModule
Version Name Repository Description
------- ---- ---------- -----------
1.0.2.5 AWS.Tools.Installer PSGallery The AWS.Tools.Installer m…
5.0.2 AWS.Tools.Common /tmp/xmi1fmck.uoa The AWS Tools for PowerSh…
5.0.2 AWS.Tools.SimpleSystemsManagement /tmp/xmi1fmck.uoa The SimpleSystemsManageme…
5.0.2 AWS.Tools.EC2 /tmp/xmi1fmck.uoa The EC2 module of AWS Too…
あとはよしなに利用してください。
Start-SSMSessionコマンドの実行例
最後に
以上となります。
移行ガイドに変更点や破壊的変更がかなり詳細に記載されているのでこちらを頼りにすれば既存環境のアップグレードも問題なくできると思います。
機能だけでなく性能面での改善もあるので積極的に新しいバージョンを試していくと良さそうです。