[アップデート] AWS CodePipeline がソースプロバイダーに Azure DevOps をサポートしました
いわさです。
先日 AWS CLI のコミットログを眺めていたところ、おもしろいアップデートを発見しました。
なんと CodeConnections が Azure DevOps をサポートしたみたいなのです。
Azure DevOps というのは Microsoft が提供する統合開発サービスです。
Git ホスティングを始め、プルリクエストやイシュー、テストなど一通りの機能が揃っています。
AWS でいうと Amazon CodeCatalyst が類似サービスになります。
CodeConnections API は Code シリーズのコンソールにある「接続」のことです。
こちらで新規接続を作成しようとすると次のようにプロバイダーで Azure DevOps を選択することが出来ました。
色々なところでこの CodeConnection は使われるのですが、確認してみたところ AWS CodePipeline でこの Azure DevOps がサポートされているようだったのでパイプラインで使ってみました。
AWS CodePipeline のソースプロバイダーに Azure DevOps を指定する
手順は割愛しますが、事前に Azure DevOps 組織と適当なプロジェクト・リポジトリを用意しておきます。
AWS CodePipeline で新規パイプラインを作成しましょう。
ソースステージでソースプロバイダーを指定できるのですが、こちらを見てみると Azure DevOps が追加されていました。
他のソースプロバイダーと同様で「Azure DevOps に接続」ボタンを押すことで CodeConnection の接続ダイアログが起動されます。
ここで入力するのは AWS コンソール上で管理する CodeConnection 名です。適当な名前を入力して「Azure DevOps に接続」ボタンを押します。
そうすると Azure DevOps への認証と認可要求がされるので、内容を確認して同意・承諾を行います。
そうすると、接続リソースが作成されます。
一度作成された CodeConnection リソースは異なるパイプラインで使い回すことが出来ます。
パイプラインのソースステージでは今回作成した新規接続、あるいは既存接続を指定する形になります。
その後は Azure DevOps プロジェクトとリポジトリ、ブランチを指定します。
なお、デフォルトでサービスロールが作成されると思うのですが、なぜか CodeConnection へのアクセス許可が設定されておらず、ソースフェーズでパイプラインエラーが発生しました。
サービスロールを特定し CodeConnection に対する許可を追加しましょう。私は今回は CodeConnection の全アクションを許可しました。
ロールへのポリシー追加後はパイプラインが期待どおり完了しました。
Azure DevOps 側を見てみると、サービスフックがいくつか作成されていることが確認出来ました。
サービスフックが設定されているので CodePipeline 側で何か操作しなくても Azure DevOps 側のいくつかのトリガーイベントから開始出来そうですね。
試しに新しいコミットをプッシュしてみましょう。
そうすると AWS CodePipeline 側でもパイプラインが実行されることを確認しました。
さいごに
本日は AWS CodePipeline がソースプロバイダーに Azure DevOps をサポートしたので使ってみました。
Azure DevOps 側もパイプラインの実行(Microsoft Hosted)は無料枠に上限があって一定以上は有料ですし、あるいはデプロイ先が AWS の場合だと Azure Pipeline で頑張るよりも CodePipeline 使ったほうがデプロイしやすい場合もありそうですね。
リポジトリに Azure DevOps を使っていて、デプロイ先が AWS の場合は検討しても良さそうです。