AWS Tools for PowerShellのリリースサイクルがより高速になりました

2022.02.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

しばたです。

少し前にAWSの中の人によってこんなツイートが投稿されました。

本記事で伝えたいことはこれで全てなんですが、従来の状況をふまえて少しだけ詳しく解説します。

これまでのリリース

従来AWS Tools for PowerShellのリリースはだいたい月一回程度の頻度で行われていました。
AWS CLIは週一回程度のリリースでしたのでそれと比べると正直遅いというのは否めませんでした。

リリースの流れについて、AWS CLIでは大元であるREST APIの更新から基盤であるPython SDK(botocore)およびCLIの更新までが自動化されており高速なリリースが実現されています。

  • REST APIの更新 → botocoreの更新 → AWS CLIの更新
    • REST APIのOperationがJSONファイルに定義されており、そこからコードの自動生成をしている模様

対してAWS Tools for PowerShellの場合はREST APIが更新されたあと基盤となるAWS SDK for .NETの更新までは比較的高速なものの、AWS Tools for PowerShellへの反映にラグがあるという状況でした。

  • REST APIの更新 → AWS SDK for .NETの更新 → (ここでラグ) → AWS Tools for PowerShellの更新
    • AWS SDK for .NETもREST APIのOperationをJSONに定義している模様

現在のリリース

現在はこのAWS SDK for .NETの更新からAWS Tools for PowerShellの更新までがGitHub ActionsとAWS CodeBuildにより自動化され、AWS SDK for .NETが更新されるとAWS Tools for PowerShell側でCI/CDが行われリリースされるところまで自動化される様になりました。

(本日時点で最新のVer.4.1.27.0をビルドするCI)

軽くCIの内容を確認しようと思ったのですが、一回のビルドで10万行以上のログが出ておりすぐにつらくなったので諦めました...
ざっくり以下のディレクトリにある設定でビルドしている様です。

細かい内容が気になる方はこちらを調べてみると良いでしょう。

この自動化により従来は月一回程度のリリースが今では数日に一回程度の頻度まで高速になりました。

最後に

簡単ですが以上となります。

AWSの新サービスや新機能がリリースされた際にAWS Tools for PowerShellだとしばらく待たないと利用できなかった現状が改善され非常に嬉しい限りです。