最後のリリース定義についてです。
PipelineのArtifactsで、前回概要を説明したビルド定義(ここではManageIPAddress_V2_CI-Service)を指定します。指定したビルド定義で生成されたもの(dropフォルダ配下)をEnvironmentsに指定した環境にリリースします。
リリース定義のタスクは「Azure App Service Deploy」を使います。
・Azure subscription
Web Appサービスを作成した際のsubscriptionを指定します。
・App type
今回はWindowsベースでREST APIサービスをデプロイするので、’Web App’を指定します。
・App Service name
リリース先のWeb Appサービス名を指定します。
・Package to folder
リリース対象ファイルが格納されているフォルダをしています。ここではビルド定義で生成したdropフォルダを指定します。
Node.jsのサービスを実行するには、次の「File Transforms & Variable Subscription Options」でWeb.configのパラメータを指定します。
「Web.config parameters」にこれらのパラメータを指定すると、デプロイしたときに指定したパラメータを含むWeb.configが作成されます。今回の内容は、REST APIにアクセスした際にiisnodeを使用してサーバー上でnode.exeを自動実行する設定になります。
最後に「Post Deployment Action」を使用して、リリース対象ファイルを展開した後にNode.js関連のパッケージ(Expressなど)をサーバーにインストールします。複雑な処理が必要であればスクリプトファイルを作成して、そのファイルを実行することになりますが、今回は’npm install’を実行したいだけなので、「Deployment script type」で’Inline Script’を指定し、「Inline Script」に’npm install’を指定します。
このリリース定義を実行すれば、Web AppサービスにNode.js+Expressで作成したプログラムが展開されます。
本番環境では、Web Appサービスのスロットを使用してBlue-Greenデプロイを行ったりする(スロットを指定してデプロイ+動作確認が完了したところでスロット入れ替えまで行う)必要がありますが、「とりあえず」なら、こんな感じでNode.js+ExpressなREST APIサービスをデプロイすることができます。