Azure DevOps アップロードの続き : Subscription ID を変える
前回のエントリの作業中に、サイトを Free Trial から Pay-as-you-go にサブスクリプションを変えたのでした。実質的には変わらないのかもしれないですが。
そうするとですよ、その前に作っていたデプロイパイプラインが動かなくなることに気がつきまして。
YAMLのサブスクリプション名を変えないと!
じゃあということで、リポジトリにある azure-pipelines.yml のサブスクリプション部分を書き換えればいいのかな、と思って編集しました。平文で書いてあるサブスクリプションIDを編集して、pushするとパイプラインが自動で動きます。.......でコケました。
考えてみれば、ここ書き換えるだけでどんな配置先にもいれられてしまうとなると、セキュリティなんてあったもんじゃないわけで、どこかで連携処理が必要、ということに気がつきました。
ああそっか、やはり。Project Settings にいました。
ここを変えて再登録してあげないと!まず、[+ New Service Connection]で追加します。
ここで Azure側のログインを求められて、認証が行われます。...ので、他人のリポジトリに突っ込んでしまうことはないわけですね。納得。
よしこれで大丈夫なはず!こんどは手動でパイプラインを実行してみる
ではもう一回ビルドパイプラインでコピーを実行します。
なぜかまたコケてしまいました。サブスクリプションIDちゃんと直したのに。
そういえば、さっき YAML ファイルをいじった時に IDが平文記述されていることにちょっと気持ち悪さを感じたんですよね、そういうものなのかな?と思いつつ。そう言えばさっきサービス連携を追加する時に、Connection Name なるものを記入してました。
YAMLの azureSubscription を書き換える
これをYAMLで指定すればいいのか!ということでYAMLを修正。平文にIDがでていたのは、何かの既定値だったんですねきっと。ついでにソースからマジックナンバーが除去できてよかったです。(ボーイスカウトルール)
trigger:
- master
pool:
vmImage: 'windows-2019'
steps:
- task: AzureFileCopy@3
inputs:
SourcePath:
azureSubscription: 'innovationsprint'
Destination: 'AzureBlob'
storage: 'innovationsprint'
ContainerName: '$web'
Pushするとまた自動的にビルドが走りました。
実は最後のビルドは成功を確信していたので、ブログ書きながらメールで通知を受けたのですが、これははかどりますね。
しかし、こうなると、単純な死活監視くらいは走らせてから終わらせたくなります。
どんどん色々やりたくなるから不思議ですね。