連載
» 2014年08月11日 18時21分 公開

連載:いまどきのソース・コード管理:第6回 クラウドとソース管理 (3/4)

[亀川和史,著]

VS Onlineから他のクラウドサービスの呼び出し

 執筆時点ではプレビューだが、VS Onlineではビルドの成功、失敗をはじめとして、作業項目の作成、更新やチェックインを行ったタイミングなどでWebサービスを呼び出すことにより、さまざまな連携を行うことが可能だ。以下のような活用方法が考えられる。

  • ビルドの成功/失敗時にチャットサービスに通知することにより、メンバー全員にそのことを周知
  • ビルド成功をAzureのストレージサービスのキューにメッセージ登録
  • ソースコード管理にVS Onlineを使い、チェックイン後にJenkinsを呼び出す
  • ビルド時にNuGetパッケージをMyGetに配置
  • その他、登録されている以外のWebサービスを呼び出し(JSONでデータの受け渡しができるものに限られる)

− 参考:Web Hooks

 これを図にすると、次のようになる。

サービスフックを使用して、各種のタイミングで他のサービスを呼び出す サービスフックを使用して、各種のタイミングで他のサービスを呼び出す

 例えば、Azureストレージキューにビルド結果を格納する場合、以下のようになる。

Azureストレージキューにビルド結果を格納する場合のWebサービス呼び出し Azureストレージキューにビルド結果を格納する場合のWebサービス呼び出し

 VS Onlineから外部サービス呼び出しの設定はチームプロジェクト単位で設定する。これにはチームプロジェクトのWebポータルを開いて、歯車のアイコンをクリックする。

歯車アイコンをクリックするとチームプロジェクトの設定画面が表示されるので、[Service Hooks]タブをクリックする
歯車アイコンをクリックするとチームプロジェクトの設定画面が表示されるので、[Service Hooks]タブをクリックする
他のWebサービスを呼び出すためのサービスフックの作成 他のWebサービスを呼び出すためのサービスフックの作成
  (1)サービスフックを作成する。

 [Create the first subscription for this projects]というリンクをクリックするとサービスの一覧が表示される。

[Azure Storage]を選択して、[Next]ボタンをクリックする
[Azure Storage]を選択して、[Next]ボタンをクリックする
Azureストレージサービスを呼び出すサービスフックの作成
[Azure Storage]を選択して、[Next]ボタンをクリックする

Azureストレージサービスを呼び出すサービスフックの作成
  (1) サービスを呼び出すイベントを指定する。
  (2) (ビルドイベントの場合)使用するビルド定義を指定する。
  (3) (ビルドイベントの場合)外部サービスを呼び出すビルド結果を指定する。


 呼び出す外部サービスやサービスを呼び出すイベントによって異なるが、ビルドの場合、ビルド定義([Build Definition]セクション)とサービスを呼び出すトリガーとなるビルド状態([Build Status]セクション)を指定する。そして[Next]ボタンをクリックすると、詳細な構成を行うためのダイアログが表示される。

サービス呼び出しに必要な情報を構成するダイアログ サービス呼び出しに必要な情報を構成するダイアログ
  (1) ストレージアカウント名。
  (2) ストレージアカウントキー。
  (3) キュー名(Azureストレージキュー名ではなく、識別する任意の名前。半角小文字のみ)。
  (4) メッセージタイムアウト(秒)。
  (5) メッセージ有効時間(秒)。
  (6) 送信時にリソースの列をどの程度送るか(最少/送らない)。
  (7) メッセージ送信形式(Markdown/html/Textなどが選択可能)。
  (8) 詳細メッセージ形式(同上)。

 Azureポータルでストレージアカウント名、アカウントキー、キュー名を指定して、[Test]ボタンをクリックするとテストが行われる。[Test]ボタンをクリックして、問題がなければ次のような画面が表示される。

テストの成功通知 テストの成功通知

 テストが正常に実行できたことを確認して、[Finish]ボタンを押せば設定が完了する。

 この例では、設定完了後、ビルドが成功するごとにAzureストレージの「atmarkittestqueue」というストレージキューにビルド成功のメッセージが書き込まれる。

 サービスフックで選択した項目によってはイテレーションや作業領域を設定できるため、特定の作業領域に属するチェックインが行われたときのみ外部サービスが呼び出されるように設定することもできる。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。