この記事では、ファイル転送プロトコル (FTP) またはファイル転送プロトコル セキュア (FTPS) を使用して、Web アプリ、モバイル アプリ バックエンド、または API アプリを Azure App Service にデプロイする方法について説明します。 FTP または FTPS アプリのデプロイを有効にするための構成は必要ありません。 アプリの FTP/S エンドポイントは既にアクティブです。
注
FTP/S デプロイを機能させるには、SCM 基本認証発行資格情報と FTP 基本認証発行資格情報の両方を有効にする必要があります。 基本認証が無効になっている場合、FTP/S デプロイは機能せず、アプリのデプロイ センターで FTP/S 資格情報を表示または構成することはできません。
デプロイ資格情報を取得する
デプロイの資格情報を取得するには、「 Azure App Service のデプロイ資格情報を構成する」の手順に従います。 アプリのアプリケーション スコープの資格情報をコピーするか、ユーザー スコープの資格情報を設定してコピーします。 いずれかの資格情報のセットを使用して、アプリの FTP/S エンドポイントに接続できます。
アプリケーション スコープの資格情報の場合、FTP/S ユーザー名形式は <app-name>\$<app-name>
。 ユーザー スコープの資格情報の場合、FTP/S ユーザー名形式は <app-name>\<username>
。 App Service FTP/S エンドポイントはアプリ間で共有され、ユーザー スコープの資格情報は特定のリソースにリンクされていないため、ユーザー名の前にアプリ名を付加する必要があります。
FTP/S エンドポイントを取得する
FTP/S エンドポイントを取得するには:
アプリの Azure portal ページで、左側のナビゲーション メニューの [デプロイ] で [デプロイ センター] を選択します。 [ FTPS 資格情報 ] タブで、 FTPS エンドポイント URL をコピーします。
Azure にファイルをデプロイする
FTP/S を使用して Azure にファイルをデプロイするには:
- Visual Studio、Cyberduck、WinSCP などの FTP/S クライアントから、接続情報を使用してアプリに接続します。
- ファイルとそのディレクトリ構造を Azure の /site/wwwroot ディレクトリ、または WebJobs の /site/wwwroot/App_Data/Jobs/ ディレクトリにコピーします。
- アプリの URL を参照して、アプリが正しく動作していることを確認します。
注
ローカル Git デプロイや ZIP デプロイとは異なり、FTP/S デプロイでは、次のようなビルド自動化はサポートされていません。
- NuGet、NPM、PIP、Composer の自動化などの依存関係を復元する。
- .NET バイナリのコンパイル。
- web.config ファイルの生成。
これらの必要なファイルは、ローカル コンピューターで手動で生成し、アプリでデプロイする必要があります。 Node.js web.config 例については、「 Node アプリのカスタム web.config の使用」を参照してください。
FTPS を適用する
FTPS は、トランスポート層セキュリティ (TLS) と Secure Sockets Layer (SSL) を使用する、より安全な形式の FTP です。 セキュリティを強化するために、TLS/SSL 経由で FTPS を適用する必要があります。 FTP デプロイを使用しない場合は、FTP と FTPS の両方を無効にすることもできます。
暗号化されていない FTP を無効にするには:
FTP/S デプロイのトラブルシューティング
- デプロイ中にエラーや予期しない動作を引き起こす可能性があるアプリはどうなりますか?
- FTP/S デプロイのトラブルシューティングの最初の手順は何ですか?
- FTP/S を実行してコードを発行できないのはなぜですか?
- パッシブ モードを使用して App Service の FTP/S に接続するにはどうすればよいですか?
- 明示的な暗号化を使用して FTPS 経由で接続しようとすると、接続が失敗するのはなぜですか?
- アプリのデプロイに使用された方法を確認するにはどうすればよいですか?
デプロイ中にエラーや予期しない動作を引き起こす可能性があるアプリはどうなりますか?
公式にサポートされている展開方法は、アプリの実行に使用される /home/site/wwwroot フォルダー内のファイルに変更を加えます。 ファイルがロックされているため、デプロイが失敗する可能性があります。 また、ファイルがすべて同時に更新されない場合は、デプロイ中に予期しない動作が発生する可能性もあります。これは、顧客向けのアプリでは望ましくありません。
これらの問題を回避するには、いくつかの方法があります。
- ZIP パッケージからアプリを 開梱せずに直接実行します。
- デプロイ中に、アプリを停止するか、オフライン モードを有効にします。 詳細については、「Dealing with locked files during deployment」 (デプロイ中にロックされているファイルに対処する) を参照してください。
- 自動スワップを有効にした状態で、ステージング スロットにデプロイします。
FTP/S デプロイのトラブルシューティングの最初の手順は何ですか?
FTP/S デプロイのトラブルシューティングの最初の手順は、デプロイの問題とランタイム アプリケーションの問題を区別することです。
通常、デプロイの問題により、ファイルや間違ったファイルがアプリにデプロイされません。 トラブルシューティングを行うには、FTP/S デプロイを調査するか、ソース管理などの代替デプロイ パスを選択します。
通常、ランタイム アプリケーションの問題により、適切なファイルがアプリにデプロイされますが、アプリの動作が正しくありません。 トラブルシューティングを行うには、実行時のコード動作に焦点を当て、特定のエラー パスを調査します。
詳細については、「 デプロイとランタイムの問題」を参照してください。
FTP/S を実行してコードを発行できないのはなぜですか?
正しい ホスト名 と資格情報を入力したことを確認 します。 また、ファイアウォールがコンピューター上の次の FTP/S ポートをブロックしていないことを確認します。
- FTP/S 制御接続ポート:
21
、990
- FTP/S データ接続ポート:
989
、10001-10300
パッシブ モードを使用して Azure App Service の FTP/S に接続するにはどうすればよいですか?
Azure App Service では、アクティブ モードとパッシブ モードの両方を使用した接続がサポートされています。 展開マシンは通常、オペレーティング システム内のファイアウォールの背後にあるか、自宅またはビジネス ネットワークの一部として使用されるため、パッシブ モードをお勧めします。 パッシブ モード接続の例については、「 接続ページ ([サイトの詳細設定] ダイアログ)」を参照してください。
明示的な暗号化を使用して FTPS 経由で接続しようとすると、接続が失敗するのはなぜですか?
FTPS を使用すると、明示的または暗黙的な TLS セキュア接続を確立できます。
- 明示的な暗号化を使用して接続すると、ポート
21
を介して接続が確立されます。 - 暗黙的な暗号化を使用して接続すると、ポート
990
経由で接続が確立されます。
使用する URL 形式は、接続の成功に影響する可能性があり、クライアント アプリケーションによって異なります。 ポータルには URL が ftps://
として表示されますが、接続に使用する URL が ftp://
で始まる場合、接続はポート 21
上に存在することが暗黙的に示されます。 URL が ftps://
で始まる場合、接続は暗黙的であり、ポート 990
上に存在することが暗黙的に示されます。
ポート ftps://
を使用して21
に接続するなど、設定を混在させないようにしてください。 明示的な接続は、 AUTH
メソッドの前にプレーン FTP 接続として開始されるため、明示的な暗号化を使用しても、この設定は接続に失敗します。
アプリのデプロイに使用された方法を確認するにはどうすればよいですか?
アプリがどのようにデプロイされたかを確認するには、Azure portal ページでアプリケーションの設定を確認します。 左側のナビゲーション メニューの [設定] で [環境変数] を選択します。 [ アプリの設定 ] タブで、次の手順を実行します。
- アプリが外部パッケージ URL を使用して展開された場合、
WEBSITE_RUN_FROM_PACKAGE
設定が URL 値を持つアプリケーション設定に表示されます。 - アプリが ZIP デプロイを使用してデプロイされた場合は、
WEBSITE_RUN_FROM_PACKAGE
設定が1
の値で表示されます。
Azure DevOps を使用してアプリをデプロイした場合は、Azure DevOps ポータルでデプロイ履歴を確認できます。 Azure Functions Core Tools を使用した場合は、Azure portal でデプロイ履歴を確認できます。