Azure App ServiceでZIPデプロイのクイックスタートを決め、数日かけてやっと完走 “Hello World!”見るために山市良のうぃんどうず日記(253)

最初に断っておきますが、筆者はアプリ開発者ではありません。クラウドの開発系サービスを評価、検証する必要があるときは、公式(今回はMicrosoft)が用意したサンプルアプリをクイックスタートガイドに従って試してみることはあります。Azure App ServiceにZIPパッケージを使用する方法でコードをデプロイする必要があったのですが、すぐに終わると思ったのに、随分と回り道してしまいました。

» 2023年03月22日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

クイックスタートガイドに不備あり?

 Microsoftは「Azure App Service」のコードによるWebアプリのデプロイ環境を、オンプレミスや他社クラウドのKubernetesクラスタ上に実装できる「Azure Arc対応App Service(プレビュー)」(以下、「App Service Kubernetes環境」)を提供しています。

 オンプレミスにKubernetesクラスタを導入する方法の一つは、Azure Stack HCIクラスタやWindows Serverに「Azure Kubernetes Service(AKS)」を実装する「AKSハイブリッド」があります。最近、このAKSハイブリッドとApp Service Kubernetes環境をセットアップし、評価、検証する機会がありました。

 今回試した「クイックスタートガイド」には、Node.jsの「Hello Worldサンプル」をデプロイする4行のコマンドラインがありました。しかし、これを実行してもアプリ用のKubernetesポッドがクラッシュループを繰り返し、解消するにはワークロード用のKubernetesクラスタを作り直すしかありませんでした。Kubernetesクラスタを削除して、再作成し、再びApp Service Kubernetes環境を準備するのに1時間ほどかかってしまいます。

 結論から言うと、ZIPデプロイを利用するには「az webapp deployment」コマンドを実行する前に、Azureポータルまたは「az webapp config」コマンドを使用してアプリのビルド自動化を有効にしておく必要があったのです。しかし、その手順がクイックスタートガイドの一連のコードに含まれていなかったことが、デプロイ失敗の原因でした(画面1)。

画面1 画面1 もともとのドキュメントのコード。この通りに実行してもコードのデプロイはエラーが表示されることなく失敗する。重要な情報はすぐ上の「ZIPデプロイ」のリンク先にあった

エラーの原因を見つけるまでの長い回り道

 App Service Kubernetes環境で何度か失敗を繰り返した後、オリジナルのAzure App Serviceで問題解決に取り組んだ方が効率が良いことに気が付きました。ランタイムとしてNode.jsを選択してLinuxベースのWebアプリを作成し、同じ方法でZIPデプロイを実行したところ、「:( Application Error」になります(画面2)。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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