FTP/S を使用した Azure App Service へのアプリのデプロイDeploy your app to Azure App Service using FTP/S

この記事では、FTP または FTPS を使用して、Web アプリ、モバイル アプリ バックエンド、または API アプリを Azure App Service にデプロイする方法について説明します。This article shows you how to use FTP or FTPS to deploy your web app, mobile app backend, or API app to Azure App Service.

アプリの FTP/S エンドポイントは既にアクティブです。The FTP/S endpoint for your app is already active. FTP/S デプロイを有効にするための構成は必要ありません。No configuration is necessary to enable FTP/S deployment.

FTP ダッシュボードを開くOpen FTP dashboard

Azure Portal でアプリのリソース ページを開きます。In the Azure portal, open your app's resource page.

FTP ダッシュボードを開くには、 [デプロイ センター] > [FTP] > [ダッシュボード] の順にクリックします。To open the FTP dashboard, click Deployment Center > FTP > Dashboard.

FTP ダッシュボードを開く

FTP の接続情報を取得するGet FTP connection information

FTP ダッシュボードで、 [コピー] をクリックして、FTPS エンドポイントとアプリの資格情報をコピーします。In the FTP dashboard, click Copy to copy the FTPS endpoint and app credentials.

FTP 情報のコピー

アプリごとに一意であるため、アプリの資格情報を使用してデプロイすることをお勧めします。It's recommended that you use App Credentials to deploy to your app because it's unique to each app. ただし、 [ユーザーの資格情報] をクリックした場合は、サブスクリプション内のすべての App Service アプリへの FTP/S のログインで使用できるユーザー レベルの資格情報を設定できます。However, if you click User Credentials, you can set user-level credentials that you can use for FTP/S login to all App Service apps in your subscription.

注意

ユーザーレベルの資格情報を使用した FTP または FTPS エンドポイントの認証には、次の形式のユーザー名が必要です。Authenticating to an FTP/FTPS endpoint using user-level credentials requirers a username in the following format:

<app-name>\<user-name>

ユーザーレベルの資格情報は、特定のリソースではなく、ユーザーにリンクされているため、適切なアプリのエンドポイントに対してサインイン アクションを実行するには、ユーザー名はこの形式でなければなりません。Since user-level credentials are linked to the user and not a specific resource, the username must be in this format to direct the sign-in action to the right app endpoint.

ファイルを Azure にデプロイするDeploy files to Azure

  1. FTP クライアント (Visual StudioCyberduckWinSCP など) から、収集した接続情報を使用してアプリに接続します。From your FTP client (for example, Visual Studio, Cyberduck, or WinSCP), use the connection information you gathered to connect to your app.
  2. ファイルとそれぞれのディレクトリ構造を、Azure の /site/wwwroot ディレクトリ (WebJobs の場合は /site/wwwroot/App_Data/Jobs/ ディレクトリ) にコピーします。Copy your files and their respective directory structure to the /site/wwwroot directory in Azure (or the /site/wwwroot/App_Data/Jobs/ directory for WebJobs).
  3. アプリの URL を参照して、アプリが正しく動作していることを確認します。Browse to your app's URL to verify the app is running properly.

注意

git ベース デプロイとは異なり、FTP デプロイでは、次のデプロイ自動化はサポートされません。Unlike Git-based deployments, FTP deployment doesn't support the following deployment automations:

  • 依存関係の復元 (NuGet、NPM、PIP、Composer の自動化など)dependency restores (such as NuGet, NPM, PIP, and Composer automations)
  • .NET バイナリのコンパイルcompilation of .NET binaries
  • web.config の生成 (Node.js の例はこちら)generation of web.config (here is a Node.js example)

ローカル コンピューターでこれらの必要なファイルを手動生成した後、アプリと共にデプロイします。Generate these necessary files manually on your local machine, and then deploy them together with your app.

FTPS を強制するEnforce FTPS

セキュリティを強化するには、FTP over SSL のみを許可する必要があります。For enhanced security, you should allow FTP over SSL only. FTP デプロイを使用していない場合は、FTP と FTPS の両方を無効にすることもできます。You can also disable both FTP and FTPS if you don't use FTP deployment.

Azure portal のご使用のアプリのリソース ページで、左側のナビゲーションの [構成] > [全般設定] を選択します。In your app's resource page in Azure portal, select Configuration > General settings from the left navigation.

暗号化されていない FTP を無効にするには、 [FTP state](FTP の状態)[FTPS のみ] を選択します。To disable unencrypted FTP, select FTPS Only in FTP state. FTP と FTPS の両方を完全に無効にするには、 [無効にする] を選択します。To disable both FTP and FTPS entirely, select Disabled. 完了したら、 [保存] をクリックします。When finished, click Save. [FTPS のみ] を使用する場合は、Web アプリの [TLS/SSL 設定] ブレードに移動して TLS 1.2 以降を適用する必要があります。If using FTPS Only, you must enforce TLS 1.2 or higher by navigating to the TLS/SSL settings blade of your web app. TLS 1.0 と 1.1 は、 [FTPS のみ] ではサポートされません。TLS 1.0 and 1.1 are not supported with FTPS Only.

FTP/S の無効化

スクリプトで自動化するAutomate with scripts

Azure CLI を使用した FTP の展開については、Web アプリの作成と FTP を使用したファイルの展開 (Azure CLI) に関する記事を参照してください。For FTP deployment using Azure CLI, see Create a web app and deploy files with FTP (Azure CLI).

Azure PowerShellを使用した FTP のデプロイについては、「FTP を使用して Web アプリにファイルをアップロードする (PowerShell)」を参照してください。For FTP deployment using Azure PowerShell, see Upload files to a web app using FTP (PowerShell).

使用しているアプリはデプロイ中にどうなりますか?What happens to my app during deployment?

正式にサポートされているすべてのデプロイ方法は、アプリの /home/site/wwwroot フォルダー内のファイルに変更を加えます。All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. これらのファイルは、運用環境で実行されているのと同じファイルです。These files are the same ones that are run in production. したがって、ファイルがロックされているため、デプロイに失敗する可能性があります。Therefore, the deployment can fail because of locked files. すべてのファイルが同時に更新されるわけではないため、運用環境のアプリはデプロイ中に予期しない動作をすることもあります。The app in production may also behave unpredictably during deployment, because not all the files updated at the same time. これらの問題を回避するにはいくつかの方法があります。There are a few different ways to avoid these issues:

FTP デプロイのトラブルシューティングTroubleshoot FTP deployment

FTP デプロイをトラブルシューティングするには、どうすればよいですか。How can I troubleshoot FTP deployment?

FTP デプロイのトラブルシューティングを行うための最初の手順は、デプロイの問題を、ランタイム アプリケーションの問題から切り離すことです。The first step for troubleshooting FTP deployment is isolating a deployment issue from a runtime application issue.

デプロイの問題が発生すると、通常、アプリにファイルがデプロイされなかったり、誤ったファイルがデプロイされたりします。A deployment issue typically results in no files or wrong files deployed to your app. FTP のデプロイを調べるか、代替デプロイ パス (ソース コントロールなど) を選択することで、トラブルシューティングを行うことができます。You can troubleshoot by investigating your FTP deployment or selecting an alternate deployment path (such as source control).

ランタイム アプリケーションの問題が発生した場合は、通常、お使いのアプリに正しいファイル セットがデプロイされますが、アプリが適切に動作しません。A runtime application issue typically results in the right set of files deployed to your app but incorrect app behavior. 実行時のコードの動作に注目して特定のエラーのパスを調べることで、トラブルシューティングを行うことができます。You can troubleshoot by focusing on code behavior at runtime and investigating specific failure paths.

デプロイの問題かランタイムの問題かを判断するには、「Deployment vs. runtime issues (デプロイの問題とランタイムの問題)」を参照してください。To determine a deployment or runtime issue, see Deployment vs. runtime issues.

FTP 接続してコードを発行できません。I'm not able to FTP and publish my code. 問題を解決するには、どうすればよいですか。How can I resolve the issue?

入力したホスト名と資格情報が正しいかどうかを確認してください。Check that you've entered the correct hostname and credentials. また、使用しているマシン上の次の FTP ポートが、ファイアウォールによってブロックされていないことも確認します。Check also that the following FTP ports on your machine are not blocked by a firewall:

  • FTP コントロール接続ポート: 21FTP control connection port: 21
  • FTP データ接続ポート: 989、10001-10300FTP data connection port: 989, 10001-10300

パッシブ モードを使用して Azure App Service で FTP に接続するには、どうすればよいですか。How can I connect to FTP in Azure App Service via passive mode?

Azure App Service では、アクティブ モードとパッシブ モードの両方を使用した接続がサポートされます。Azure App Service supports connecting via both Active and Passive mode. お使いのデプロイ マシンは、通常、(オペレーティング システム内の、またはホーム ネットワークまたはビジネス ネットワークの一部として) ファイアウォールの内側にあるため、パッシブ モードをお勧めします。Passive mode is preferred because your deployment machines are usually behind a firewall (in the operating system or as part of a home or business network). WinSCP ドキュメントに記載された使用例をご覧ください。See an example from the WinSCP documentation.

次の手順Next steps

高度なデプロイ シナリオの詳細については、Git を使用した Azure へのデプロイに関するページをご覧ください。For more advanced deployment scenarios, try deploying to Azure with Git. Azure への Git ベース デプロイでは、バージョン管理、パッケージの復元、MSBuild などが可能です。Git-based deployment to Azure enables version control, package restore, MSBuild, and more.

その他のリソースMore resources