Azure Pipelinesによるビルドパイプラインの作成と実行(2)
Service Connectionの作成
次の手順に進む前に、Service Connectionを作成します。Service Connectionとは、Azure PipelinesからApp ServiceなどのAzureリソースや外部リソースへの更新操作をするためのオブジェクトです。
Service Connectionを作成するには、プロジェクトダッシュボードから「Project settings」メニューの「Service connections」を選択し、「Create service connection」ボタンをクリックします。

Service connectionの種類を選択する画面が表示されるので、「Azure Resource Manager」を選び「Next」ボタンを選択します。

次にService Connectionの作成に必要な内容を設定していきます。

「Identity type」と「Credential」の欄は「Recommended(推奨)」となっているものを選択します。
「Scope level」は「Subscription」を、「Subscription」と「Resource group」は任意のサブスクリプションとリソースグループを選択します。
「Service Connection Name」にはこのService Connectionの名称を設定します。この名前は、後述のデプロイパイプラインの追加時に使用します。
最後に「Save」ボタンをクリックし、Service Connectionの作成は完了です。
App Serviceの作成
Service Connectionと同様に、デプロイ先であるApp Serviceも事前に作成をしておきます。AzureポータルのApp Serviceの新規作成画面から作成を行います。

作成したアプリに合わせた内容を入力します。「公開」は「コード」、「ランタイム スタック」は「.NET 8」を選択します。その他の項目については任意のものを選択・入力してください。
今回はサンプルアプリのため「価格プラン」は無料プランである「Free F1」を選択しています。「確認および作成」ボタンを選択し内容を確認し、「作成」ボタンを選択するとApp Serviceが作成されます。
デプロイパイプラインの追加(CD)
先ほど作成したビルドパイプラインに、CDの手順にあたるデプロイパイプラインの手順を追加していきます。ビルドパイプラインでビルドした成果物をAzure Web AppにデプロイするステップをYAMLに追加していきます。
プロジェクトダッシュボードの「Pipelines」を選択し、先程作成したパイプラインを選択すると画面右上に「Edit」ボタンが表示されているので、それを選択します。YAMLのエディタ画面が表示されるので、YAMLの末尾に以下の内容を追記します。
- task: AzureWebApp@1 inputs: azureSubscription: 'wings-sc' # 事前に作成したService Connectionの名前を入力 appType: 'webApp' appName: 'devops-practice-web' # AzureのApp Service名 package: '$(Build.ArtifactStagingDirectory)/**/*.zip'
inputsセクションの設定内容に注目してください。
azureSubscriptionには、先程作成したサービス接続の名前を指定します。appTypeはデプロイ先のアプリケーションの種類を指定し、ここではWebアプリケーションを選択します。appNameには、デプロイ先のAzure App Serviceの名前を表します。
packageは、ビルド成果物のパスです。ビルドパイプラインで作成されたビルド成果物はZIP形式で保存されているので、$(Build.ArtifactStagingDirectory)からの相対パスでZIPファイルを指定しています。
YAMLファイルの編集ができたら、画面右上の「Validate and save」ボタンを選択し、YAMLファイルの構文にエラーがないかを確認してからファイルを保存します。「Pipeline is valid」と、エラーのない旨のメッセージが表示されていたら「Save」ボタンを選択してファイルを保存します。

ファイルを保存すると右上のボタンが「Run」に変わるので、これを選択してパイプラインを実行します。
なお、Service Connectionを作成した初回のパイプラインの実行時は、リソースへアクセスするための許可が求められます。実行中のパイプラインの詳細画面を表示すると「This pipeline needs permission to access a resource before this run can continue」という警告が表示されているので、右端の「View」ボタンを選択します。

Service Connectionが許可を必要としている旨のメッセージが表示されているので、「Permit」ボタンを選択します。

この操作を行うとパイプラインが実行されるようになります。パイプラインの実行が成功したことを確認したら、Azureのポータル画面に移りApp Service上にWebアプリケーションがデプロイされていることを確認します。

App Serviceの概要画面の「既定のドメイン」に表示されているURLにアクセスし、Web画面が表示されればデプロイパイプラインでのデプロイは成功となります。

まとめ
今回はAzure DevOpsサービスのひとつである、CI/CDサービスのAzure Pipelinesについて概要とパイプラインの作成方法について紹介しました。次回はパイプラインで作成したパッケージを保存・管理するためのAzure Artifactsについて説明する予定です。