概要
本技術文書では、ローカル環境からAppServiceへGitを使用してNode.jsアプリケーションをデプロイする手順について説明します。
このプロセスは、Azureポータルの構成、ローカルGitリポジトリの準備、デプロイ資格情報の設定、および発生した問題への対処を含みます。
前提条件および手順
Step1. パラメータシートの作成
お客様の要件に基づいてパラメータシートを作成することが、最初のステップとなります。そのため、必要な値を設定します。本文に記載された値は、あくまで例として示されています。
ネットワーク設定
仮想ネットワークおよびアドレス空間
項目 | 値 |
---|---|
仮想ネットワーク | vnet-training-prod |
サブネット | subnet-training-prod |
アドレス空間 | 10.0.0.0/26 |
リソース | StorageAccount、AppService |
リソースの接続
項目 | 値 |
---|---|
App Service <-> Storage Account | プライベートエンドポイントを使用 |
パブリックアクセス制限 | IBM VPN (129.41.57.0/24) からのみ許可 |
DNSおよび環境変数
項目 | 値 |
---|---|
DNS設定 | プライベートDNS統合と統合する |
AZURE_STORAGE_ACCOUNT_NAME | sttrainingprod001 |
ACCESS_KEY | |
CONTAINER_NAME | files |
Step2. Azure Webアプリケーションの準備
1. AzureポータルでのWebアプリケーション作成
- Azureポータルにアクセスし、新規AppServiceを作成する。
- AppServiceの基本設定として、事前に作成したパラメータシートに基づいて設定する。
2. 仮想ネットワーク(Vnet)とサブネットの設定
- vnet-training-prod という仮想ネットワークを作成し、10.0.0.0/26
のアドレス空間を設定する。
- App ServiceのVNet統合用のサブネットと、プライベートエンドポイント用のサブネットを作成する。
- App Serviceは直接で、ストレージアカウントはプライベートエンドポイントを介して接続する。
3. Storage Account設定
- リソース作成時にネットワークアクセスを無効にする。
- アクセス制限設定のパブリックネットワークアクセスを選択した仮想ネットワークとIPアドレスからのパブリックアクセスを有効にする。
- AppServiceとストレージ間の通信をプライベートエンドポイントで保護する。
4. Git 対応アプリを作成する
- ローカルGitを用いたデプロイにはAzureのデプロイ資格情報が必要なため、Azure CLIを使用して資格情報を設定する。
az webapp deployment list-publishing-profiles --resource-group <group-name> --name <app-name>
- 出力には、https://@.scm.azurewebsites.net/.git のような URL が含まれている。このURLは後で使用するのでメモしておく。
Step3. ローカルGitのコミットとデプロイ
1. リモートリポジトリの設定
- Azure WebアプリケーションのGitエンドポイントをリモートとして追加する。(返してくれたURLを利用する)
git remote add azure https://<username>@app-training-prod-001.scm.azurewebsites.net/app-training-prod-001.git
2. コードの追加とコミット
- プロジェクトのコードをGitに追加し、コミットする。
git add .
git commit -m
3. リモートリポジトリへのプッシュ
- コードをAzureにデプロイするために、git push コマンドでリモートリポジトリにプッシュする。
git push azure main:master
これでデプロイが完了する。IBMVPNに接続した上で、Appserviceのドメインにアクセスする。
問題点及び対応
1. 仮想ネットワークのサブネット設定
サブネットサイズを設定する際、Azure portalで仮想ネットワークとの統合の一部としてサブネットを作成する場合、必要な最小サイズは/27
であることを注意する。
2. 認証エラー
Git push の際にAuthentication failed
エラーが発生する可能性がある。
対策 : デプロイ資格情報が正しく設定されているか確認し、再設定を行う。例:Azureポータルでプラットフォームの設定、SCM基本認証の発行資格情報
とFTP基本認証の発行資格情報
をオンにする。