Azure App Service on Linux の FAQAzure App Service on Linux FAQ

App Service on Linux のリリースでは、機能の追加とプラットフォームの品質向上に取り組んでいます。With the release of App Service on Linux, we're working on adding features and making improvements to our platform. この記事では、最近お客様からお問い合わせのあったご質問に回答しています。This article provides answers to questions that our customers have been asking us recently.

ご不明な点がある場合は、この記事についてのコメントをお寄せください。If you have a question, comment on this article.

組み込まれているイメージBuilt-in images

プラットフォームに用意されている組み込みの Docker コンテナーをフォークしたいと思っています。これらのファイルはどこで入手できますか。I want to fork the built-in Docker containers that the platform provides. Where can I find those files?

すべての Docker ファイルは GitHub にあります。You can find all Docker files on GitHub. すべての Docker コンテナーは Docker Hub にあります。You can find all Docker containers on Docker Hub.

ランタイム スタックを構成する場合、[スタートアップ ファイル] セクションではどのような値が有効ですか。What are the expected values for the Startup File section when I configure the runtime stack?

Node.js の場合は、PM2 構成ファイルまたはスクリプト ファイルを指定します。For Node.js, you specify the PM2 configuration file or your script file. .NET Core の場合は、コンパイル済みの DLL 名を dotnet <myapp>.dll として指定します。For .NET Core, specify your compiled DLL name as dotnet <myapp>.dll. Ruby の場合は、アプリの初期化に使用する Ruby スクリプトを指定できます。For Ruby, you can specify the Ruby script that you want to initialize your app with.

管理Management

Azure Portal で [再起動] ボタンを押すと何が起こりますか。What happens when I press the restart button in the Azure portal?

このアクションは Docker の再起動と同じです。This action is the same as a Docker restart.

アプリ コンテナーの仮想マシン (VM) への接続に Secure Shell (SSH) を使用できますか。Can I use Secure Shell (SSH) to connect to the app container virtual machine (VM)?

はい、ソース管理 (SCM) サイトからご利用いただけます。Yes, you can do that through the source control management (SCM) site.

注意

SSH、SFTP、または Visual Studio Code (ライブ デバッグ Node.js アプリ用) を使用して、ローカル開発用コンピューターから直接アプリ コンテナーに接続することもできます。You can also connect to the app container directly from your local development machine using SSH, SFTP, or Visual Studio Code (for live debugging Node.js apps). 詳細については、Linux での App Service のリモート デバッグと SSH に関するページをご覧ください。For more information, see Remote debugging and SSH in App Service on Linux.

SDK または Azure Resource Manager テンプレートから Linux App Service プランを作成するにはどうすればよいですか。How can I create a Linux App Service plan through an SDK or an Azure Resource Manager template?

アプリ サービスの予約済みフィールドを true に設定する必要があります。You should set the reserved field of the app service to true.

継続的インテグレーションとデプロイContinuous integration and deployment

自分の Web アプリでは、Docker Hub 上のイメージを更新した後も、古い Docker コンテナー イメージを引き続き使用しています。カスタム コンテナーの継続的な統合およびデプロイをサポートしていますか。My web app still uses an old Docker container image after I've updated the image on Docker Hub. Do you support continuous integration and deployment of custom containers?

はい、Azure Container Registry または DockerHub の継続的インテグレーションと継続的デプロイをセットアップするには、「Azure Web App for Containers での継続的デプロイ」をご覧ください。Yes, to set up continuous integration/deployment for Azure Container Registry or DockerHub, by following Continuous Deployment with Web App for Containers. プライベート レジストリでは、Web アプリを停止してから起動することでコンテナーを更新できます。For private registries, you can refresh the container by stopping and then starting your web app. または、ダミー アプリケーション設定を変更または追加して、コンテナーを強制的に更新できます。Or you can change or add a dummy application setting to force a refresh of your container.

ステージング環境はサポートしていますか。Do you support staging environments?

はい。Yes.

WebDeploy/MSDeploy を使用して Web アプリをデプロイすることはできますか。Can I use WebDeploy/MSDeploy to deploy my web app?

はい。WEBSITE_WEBDEPLOY_USE_SCM というアプリ設定を false に設定する必要があります。Yes, you need to set an app setting called WEBSITE_WEBDEPLOY_USE_SCM to false.

Linux Web アプリを使用すると、アプリケーションの Git デプロイが失敗します。この問題を回避する方法はありますか。Git deployment of my application fails when using Linux web app. How can I work around the issue?

Linux Web アプリに対して Git デプロイが失敗する場合は、以下のいずれかのオプションを選択してアプリケーション コードをデプロイします。If Git deployment fails to your Linux web app, choose one of the following options to deploy your application code:

  • 継続的配信 (プレビュー) 機能を使用する: アプリのソース コードを、Azure DevOps の Git リポジトリか GitHub リポジトリに格納して、Azure の継続的配信を使用できます。Use the Continuous Delivery (Preview) feature: You can store your app’s source code in a Azure DevOps Git repo or GitHub repo to use Azure Continuous Delivery. 詳しくは、Linux Web アプリに対して継続的配信を構成する方法に関するページをご覧ください。For more information, see How to configure Continuous Delivery for Linux web app.

  • ZIP デプロイ API を使用する: この API を使用するには、Web アプリに SSH で接続し、コードをデプロイするフォルダーに移動します。Use the ZIP deploy API: To use this API, SSH into your web app and go to the folder where you want to deploy your code. 次のコードを実行します。Run the following code:

    curl -X POST -u <user> --data-binary @<zipfile> https://{your-sitename}.scm.azurewebsites.net/api/zipdeploy
    

    curl コマンドが見つからないというエラーが表示される場合は、curl コマンドを実行する前に apt-get install curl を使用して curl をインストールしてください。If you get an error that the curl command is not found, make sure you install curl by using apt-get install curl before you run the previous curl command.

言語のサポートLanguage support

Web ソケットを Node.js アプリケーションで使用したいと考えています。特別な設定や構成が必要でしょうか。I want to use web sockets in my Node.js application, any special settings, or configurations to set?

はい、サーバー側の Node.js コードで perMessageDeflate を無効にします。Yes, disable perMessageDeflate in your server-side Node.js code. たとえば、socket.io を使用している場合、次のコードを使います。For example, if you are using socket.io, use the following code:

var io = require('socket.io')(server,{
  perMessageDeflate :false
});

コンパイルされていない .NET Core アプリはサポートされていますか。Do you support uncompiled .NET Core apps?

はい。Yes.

PHP アプリの依存関係マネージャーとして Composer はサポートされていますか。Do you support Composer as a dependency manager for PHP apps?

はい、Git のデプロイ中に、Kudu は (composer.lock ファイルの存在により) PHP アプリケーションをデプロイしていることを検出し、その後 Kudu は Composer のインストールをトリガーします。Yes, during a Git deployment, Kudu should detect that you're deploying a PHP application (thanks to the presence of a composer.lock file), and Kudu will then trigger a composer install.

カスタム コンテナーCustom containers

自分が所有するカスタム コンテナーを使用しています。プラットフォームを SMB 共有の /home/ ディレクトリにマウントさせたいと考えています。I'm using my own custom container. I want the platform to mount an SMB share to the /home/ directory.

これは、WEBSITES_ENABLE_APP_SERVICE_STORAGE アプリ設定を true に設定することで実現できます。You can do that by setting the WEBSITES_ENABLE_APP_SERVICE_STORAGE app setting to true. これにより、プラットフォームのストレージの変更時に、コンテナーの再起動が行われることに注意してください。Keep in mind that this will cause container restarts when the platform storage goes through a change.

注意

WEBSITES_ENABLE_APP_SERVICE_STORAGE 設定が指定されていない場合や false に設定されている場合、/home/ ディレクトリはスケール インスタンス間で共有されず、このディレクトリに書き込まれたファイルは再起動後には保持されません。If the WEBSITES_ENABLE_APP_SERVICE_STORAGE setting is unspecified or set to false, the /home/ directory will not be shared across scale instances, and files that are written there will not be persisted across restarts.

カスタム コンテナーの起動に時間がかかり、起動が終了する前にプラットフォームがコンテナーを再起動します。My custom container takes a long time to start, and the platform restarts the container before it finishes starting up.

プラットフォームがコンテナーを再起動する前の待機時間を構成できます。You can configure the amount of time the platform will wait before it restarts your container. これを行うには、WEBSITES_CONTAINER_START_TIME_LIMIT アプリ設定を目的の値に設定します。To do so, set the WEBSITES_CONTAINER_START_TIME_LIMIT app setting to the value you want. 既定値は 230 秒であり、最大値は 1800 秒です。The default value is 230 seconds, and the maximum value is 1800 seconds.

プライベート レジストリ サーバーの URL の形式は何ですか。What is the format for the private registry server URL?

http:// または https:// を含む完全なレジストリ URL を入力します。Provide the full registry URL, including http:// or https://.

プライベート レジストリ オプションのイメージ名の形式は何ですか。What is the format for the image name in the private registry option?

プライベート レジストリ の URL を含む完全なイメージ名を追加します (例: myacr.azurecr.io/dotnet:latest)。Add the full image name, including the private registry URL (for example, myacr.azurecr.io/dotnet:latest). カスタム ポートを使用するイメージ名は、ポータル経由で入力することはできませんImage names that use a custom port cannot be entered through the portal. docker-custom-image-name を設定するには、az コマンドライン ツールを使用します。To set docker-custom-image-name, use the az command-line tool.

カスタム コンテナー イメージで複数のポートを公開できますか。Can I expose more than one port on my custom container image?

複数のポートの公開は現在サポートされていません。We do not currently support exposing more than one port.

自分が所有するストレージを持ち込むことはできますか?Can I bring my own storage?

独自のストレージの持ち込みは現在サポートされていません。We do not currently support bringing your own storage.

SCM サイトからカスタム コンテナーのファイル システムや実行中のプロセスを参照できないのはなぜですか。Why can't I browse my custom container's file system or running processes from the SCM site?

SCM サイトは別のコンテナーで実行されています。The SCM site runs in a separate container. アプリ コンテナーのファイル システムや実行中のプロセスをチェックすることはできません。You can't check the file system or running processes of the app container.

カスタム コンテナーがポート 80 以外のポートをリッスンしています。そのポートに要求をルーティングするようにアプリを構成するにはどうすればよいですか。My custom container listens to a port other than port 80. How can I configure my app to route requests to that port?

ポートの自動検出機能があります。We have automatic port detection. また、WEBSITES_PORT というアプリ設定を指定して、必要なポート番号の値を設定することもできます。You can also specify an app setting called WEBSITES_PORT and give it the value of the expected port number. 以前、プラットフォームでは PORT アプリ設定を使用していました。Previously, the platform used the PORT app setting. このアプリ設定を廃止し、WEBSITES_PORT のみを使用する予定です。We are planning to deprecate this app setting and to use WEBSITES_PORT exclusively.

カスタム コンテナーに HTTPS を実装する必要がありますか。Do I need to implement HTTPS in my custom container?

いいえ、共有フロントエンドでの HTTPS の終了はプラットフォームが処理します。No, the platform handles HTTPS termination at the shared front ends.

Docker Compose と Kubernetes を使用した複数コンテナーMulti-container with Docker Compose and Kubernetes

複数コンテナーで使用するように、Azure Container Registry (ACR) を構成する方法を教えてください。How do I configure Azure Container Registry (ACR) to use with multi-container?

複数コンテナーで ACR を使用するには、すべてのコンテナー イメージを同じ ACR レジストリ サーバーでホストする必要があります。In order to use ACR with multi-container, all container images need to be hosted on the same ACR registry server. コンテナーを同じレジストリ サーバーに配置したら、アプリケーション設定を作成し、Docker Compose または Kubernetes の構成ファイルに ACR のイメージ名を含めて更新する必要があります。Once they are on the same registry server, you will need to create application settings and then update the Docker Compose or Kubernetes configuration file to include the ACR image name.

次のアプリケーション設定を作成します。Create the following application settings:

  • DOCKER_REGISTRY_SERVER_USERNAMEDOCKER_REGISTRY_SERVER_USERNAME
  • DOCKER_REGISTRY_SERVER_URL (完全な URL、例: https://.azurecr.io)DOCKER_REGISTRY_SERVER_URL (full URL, ex: https://.azurecr.io)
  • DOCKER_REGISTRY_SERVER_PASSWORD (ACR 設定で管理者アクセスを有効にする)DOCKER_REGISTRY_SERVER_PASSWORD (enable admin access in ACR settings)

次の例のように、構成ファイル内で ACR イメージを参照します。Within the configuration file, reference your ACR image like the following example:

image: <server-name>.azurecr.io/<image-name>:<tag>

インターネットにアクセスできるコンテナーを識別する方法を教えてください。How do I know which container is internet accessible?

  • アクセスできるコンテナーは 1 つのみOnly one container can be open for access
  • ポート 80 および 8080 のみがアクセス可能 (公開ポート)Only port 80 and 8080 is accessible (exposed ports)

アクセス可能なコンテナーを判断するためのルールを次に示します (優先順)。Here are the rules for determining which container is accessible - in the order of precedence:

  • コンテナー名に設定されるアプリケーション設定 WEBSITES_WEB_CONTAINER_NAMEApplication setting WEBSITES_WEB_CONTAINER_NAME set to the container name
  • ポート 80 または 8080 を定義する最初のコンテナーThe first container to define port 80 or 8080
  • 上記のいずれにも当てはまらない場合、ファイルで定義されている最初のコンテナーがアクセス可能 (公開) になりますIf neither of the above is true, the first container defined in the file will be accessible (exposed)

料金と SLAPricing and SLA

一般的にサービスが利用できる現在の料金を教えてください。What is the pricing, now that the service is generally available?

アプリの実行時間に対して、通常の Azure App Service の料金が課金されます。You are charged the normal Azure App Service pricing for the number of hours that your app runs.

どの他の質問Other questions

アプリケーションの設定名でサポートされる文字は何ですか。What are the supported characters in application settings names?

アプリケーション設定では、英字 (A ~ Z、a ~ z)、数字 (0 ~ 9)、およびアンダースコア () のみご利用いただけます。You can use only letters (A-Z, a-z), numbers (0-9), and the underscore character () for application settings.

新機能はどこでリクエストできますか。Where can I request new features?

Web Apps フィードバック フォーラムでご自分のアイデアを送信できます。You can submit your idea at the Web Apps feedback forum. アイデアのタイトルに "[Linux]" を追加してください。Add "[Linux]" to the title of your idea.

次の手順Next steps