AWS Service Catalog で外部リポジトリのテンプレート同期機能が利用可能になり従来のパイプライン管理が不要になりました

2022.11.23

いわさです。

Service Catalog でテンプレートの管理を行うことが出来ますが従来はテンプレートの更新があった場合に手動でバージョン更新するか、自動更新を行うためのパイプラインを構築する必要がありました。
本日のアップデートで GitHub などいくつかの外部 Git プロバイダーと Service Catalog の製品を同期させ、リポジトリへの変更の自動反映まで行えるようになりました。

Service Catalog を運用している方にとってはかなり嬉しいアップデートだと思います。

使い方

製品作成時に、従来はテンプレートファイルを直接アップロードするか S3 などに配置して取り込みを行う形でした。
今回のアップデートで「CodeStar プロバイダーを使用してコードリポジトリを設定」が選択出来るようになりました。

前提として Git プロバイダーへの接続に CodeStar 接続を使います。
そのため GitHub, GitHub Enterprise, Bitbucket が対象ですね。

今回のアップデートにあわせて、Service Catalog のメニューからも遷移出来るようになっています。

CodeStar 接続が用意出来たら Serivce Catalog 側に戻ります。
接続を選択するとリポジトリやブランチが選択出来るようになっています。

注意点として、私が本日試した際に発生した事象ですが個人リポジトリで試したところリポジトリのローディング中に応答がなくなりました。

AWS Connector for GitHub に対する許可するリポジトリを絞ったところ正常に動作しました。
リポジトリ数が多すぎるアカウントだと同じ現象が起きるかもしれません。

リポジトリとブランチ、あとはリポジトリ内の CloudFormation テンプレートファイル名を指定しました。
それ以外は特に設定は不要で製品登録が出来ました。

あとは従来どおりポートフォリオに登録してアクセス許可を行うことで、製品リストからプロビジョニングが出来ます。

製品バージョン更新

今回のアップデートでありがたいのはここだと思いますが、製品バージョンの自動更新が特に設定なしで出来るという点があります。
従来は以下のように CodePipeline などで同期するパイプラインを用意する必要がありました。

従来

まずは従来どうようにバージョンアップを行う必要があったか確認してみましょう。
製品詳細バージョンタブの新しいバージョンの作成ボタンからバージョンアップされたテンプレートのアップロードなどを行っていました。

外部リポジトリ

今回の機能である外部リポジトリ同期機能を使う場合だと、まず外部リポジトリの場合はボタンがありません。
マネジメントコンソールから手動でのバージョン作成が出来ないということです。

そしてバージョンタブの上部に製品ソースの詳細情報が追加で表示されていますね。
リモートリポジトリの変更を検知し、Service Catalog が自動で新しいバージョンを作成してくれるようです。

接続されているリモートブランチに変更をプッシュするとすぐに新しいバージョンが作成されました。
古いバージョンはガイダンスに「非推奨」が自動で設定されています。

一点だけ、バージョン名が設定されていないことにご注意ください。
バージョン詳細から手動で設定することは可能です。

さいごに

本日は AWS Service Catalog で外部リポジトリのテンプレート同期機能が利用可能になったので使ってみました。

私も過去に Service Catalog に検証用のテンプレートを登録して使っていたことがあったのですが同期の仕組みを自分で用意する必要があったので少し手間だなと感じていました。
今回のアップデートで自動で同期してくれるのでかなり使いやすくなったのではないでしょうか。