Language Understanding の Docker コンテナーの構成

重要

LUIS は 2025 年 10 月 1 日に廃止され、2023 年 4 月 1 日から新しい LUIS リソースを作成できなくなります。 継続的な製品サポートと多言語機能のベネフィットを得るために、LUIS アプリケーション会話言語理解に移行することをお勧めします。

Language Understanding (LUIS) コンテナーのランタイム環境は、docker run コマンドの引数を使用して構成されます。 LUIS には、いくつかの必須の設定と省略可能な設定があります。 いくつかのコマンドのをご覧ください。 このコンテナーに固有の設定は、入力マウント設定と課金設定です。

構成設定

このコンテナーには、次の構成設定があります。

必須 設定 目的
はい ApiKey 課金情報の追跡に使用されます。
いいえ ApplicationInsights Azure Application Insights テレメトリ サポートをお客様のコンテナーに追加できます。
はい Billing Azure 上のサービス リソースのエンドポイント URI を指定します。
はい Eula コンテナーのライセンスに同意していることを示します。
いいえ Fluentd ログと (必要に応じて) メトリック データを Fluentd サーバーに書き込みます。
いいえ Http Proxy 送信要求を行うために、HTTP プロキシを構成します。
いいえ Logging ASP.NET Core のログ サポートをお客様のコンテナーに提供します。
Yes Mounts ホスト コンピューターからコンテナーに、またコンテナーからホスト コンピューターにデータを読み取ったり書き込んだりします。

重要

ApiKeyBillingEula の各設定は一緒に使用されるため、それらの 3 つすべてに有効な値を指定する必要があります。そうしないと、お客様のコンテナーは起動しません。 これらの構成設定を使用してコンテナーをインスタンス化する方法の詳細については、「課金」を参照してください。

ApiKey 設定

ApiKey 設定では、コンテナーの課金情報を追跡するために使用される Azure リソース キーを指定します。 ApiKey の値を指定する必要があります。また、その値は、Billing 構成設定に指定された "Azure AI サービス" リソースの有効なキーであることが必要です。

この設定は次の場所で確認できます。

  • Azure portal: [Azure AI サービス] リソース管理の [キー] の下
  • LUIS ポータル: [Keys and Endpoint settings](キーとエンドポイントの設定) ページ。

スターター キーまたはオーサリング キーは使用しないでください。

ApplicationInsights 設定

ApplicationInsights 設定を使用すると、Azure Application Insights テレメトリのサポートをお客様のコンテナーに追加できます。 Application Insights によってお客様のコンテナーを詳細に監視できます。 コンテナーの可用性、パフォーマンス、利用状況を簡単に監視できます。 さらに、お客様のコンテナーのエラーを迅速に特定して診断することもできます。

次の表に、ApplicationInsights セクションでサポートされている構成設定について説明します。

必須 名前 データの種類 説明
いいえ InstrumentationKey String コンテナーのテレメトリ データの送信先の Application Insights インスタンスのインストルメンテーション キー。 詳細については、「Application Insights for ASP.NET Core」を参照してください。

例:
InstrumentationKey=123456789

Billing 設定

Billing 設定は、コンテナーの課金情報の測定に使用される Azure の "Azure AI サービス" リソースのエンドポイント URI を指定します。 この構成設定の値を指定する必要があり、値は Azure の Azure AI サービス リソースの有効なエンドポイント URI である必要があります。 コンテナーから、約 10 ~ 15 分ごとに使用状況が報告されます。

この設定は次の場所で確認できます。

  • Azure portal: Azure AI サービスの [概要]。Endpoint として表示されます。
  • LUIS ポータル: [Keys and Endpoint settings](キーとエンドポイントの設定) ページ。エンドポイント URI の一部として表示されます。
必須 名前 データの種類 Description
イエス Billing string 課金エンドポイント URI。 課金 URI の取得の詳細については、「必須パラメーターの収集」を参照してください。 リージョンのエンドポイントの詳細および完全な一覧については、「Azure AI サービスのカスタム サブドメイン名」 を参照してください。

Eula 設定

Eula 設定は、コンテナーのライセンスに同意済みであることを示します。 この構成設定の値を指定する必要があり、値を accept に設定する必要があります。

必須 名前 データの種類 Description
イエス Eula String ライセンスへの同意

例:
Eula=accept

Azure AI サービス コンテナーは、Azure の使用について定める契約の下でライセンスされます。 Azure の使用について定める契約をまだ結んでいない場合、Azure の使用について定める契約がマイクロソフト オンライン サブスクリプション契約 (オンライン サービス規約を含む) であることに同意するものとします。 また、プレビューに関しては、「Microsoft Azure プレビューの追加使用条件」にも同意するものとします。 コンテナーの使用をもって、お客様はこれらの規約に同意したものとします。

Fluentd の設定

Fluentd は、ログの一元管理を実現するオープンソースのデータ コレクターです。 Fluentd サーバーに対するコンテナーの接続は、Fluentd の設定によって管理されます。 コンテナーには、お客様のコンテナーでログ、および必要に応じてメトリック データを Fluentd サーバーに書き込むことができる Fluentd ログ プロバイダーが含まれます。

次の表に、Fluentd セクションでサポートされている構成設定について説明します。

名前 データの種類 Description
Host String Fluentd サーバーの IP アドレスまたは DNS ホスト名。
Port Integer Fluentd サーバーのポート。
既定値は 24224 です。
HeartbeatMs Integer ハートビート間隔 (ミリ秒)。 この間隔が期限切れになるまでにイベント トラフィックが送信されなかった場合、ハートビートが Fluentd サーバーに送信されます。 既定値は、60000 ミリ秒 (1 分) です。
SendBufferSize Integer 送信操作用に割り当てられたネットワーク バッファー領域 (バイト数)。 既定値は、32,768 バイト (32 キロバイト) です。
TlsConnectionEstablishmentTimeoutMs Integer Fluentd サーバーとの SSL または TLS 接続を確立するためのタイムアウト (ミリ秒)。 既定値は、10000 ミリ秒 (10 秒) です。
UseTLS が false に設定されている場合、この値は無視されます。
UseTLS ブール型 コンテナーで、Fluentd サーバーとの通信に SSL または TLS を使用する必要があるかどうかを示します。 既定値は false です。

HTTP プロキシ資格情報設定

送信要求を行うために HTTP プロキシを構成する必要がある場合は、次の 2 つの引数を使用します。

Name データの種類 説明
HTTP_PROXY string 使用するプロキシ。例: http://proxy:8888
<proxy-url>
HTTP_PROXY_CREDS string プロキシで認証されるために必要な資格情報。例: username:password。 この値は小文字で指定する必要があります
<proxy-user> string プロキシのユーザー。
<proxy-password> string プロキシの <proxy-user> に関連付けられているパスワード。
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \

Logging の設定

Logging の設定では、お客様のコンテナーの ASP.NET Core ログ サポートを管理します。 お客様が ASP.NET Core アプリケーションに対して使用するのと同じ構成設定と値をお客様のコンテナーに使用できます。

コンテナーでは、次のログ プロバイダーがサポートされています。

プロバイダー 目的
コンソール ASP.NET Core Console ログ プロバイダー。 このログ プロバイダーのすべての ASP.NET Core 構成設定と既定値がサポートされています。
デバッグ ASP.NET Core Debug ログ プロバイダー。 このログ プロバイダーのすべての ASP.NET Core 構成設定と既定値がサポートされています。
ディスク JSON ログ プロバイダー。 このログ プロバイダーは、ログ データを出力マウントに書き込みます。

このコンテナー コマンドは、ログ情報を JSON 形式で出力マウントに格納します。

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output

このコンテナー コマンドは、コンテナーの実行中に、dbug で始まるデバッグ情報を表示します。

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug

Disk ログ

Disk ログ プロバイダーでは、次の構成設定がサポートされます。

名前 データの種類 Description
Format String ログ ファイルの出力形式。
注: ログ プロバイダーを有効にするためにこの値を json に設定する必要があります。 コンテナーのインスタンス化中に、出力マウントを指定せずに、この値を指定した場合、エラーが発生します。
MaxFileSize Integer ログ ファイルの最大サイズ (メガバイト (MB))。 現在のログ ファイルのサイズがこの値を満たしているか、または超えている場合、ログ プロバイダーによって新しいログ ファイルが開始されます。 -1 が指定されている場合、ログ ファイルのサイズは、出力マウントの最大ファイル サイズ (存在する場合) によってのみ制限されます。 既定値は 1 です。

ASP.NET Core ログのサポートを構成する方法の詳細については、設定ファイル構成に関するページを参照してください。

マウントの設定

コンテナーとの間でデータを読み書きするには、バインド マウントを使用します。 入力マウントまたは出力マウントは、docker run コマンドで --mount オプションを指定することによって指定できます。

LUIS コンテナーでは、トレーニングやサービスのデータを格納するために入力マウントまたは出力マウントが使用されることはありません。

ホストのマウント場所の厳密な構文は、ホスト オペレーティング システムによって異なります。 また、Docker サービス アカウントによって使用されるアクセス許可とホストのマウント場所のアクセス許可とが競合するために、ホスト コンピューターのマウント場所にアクセスできないこともあります。

次の表で、サポートされる設定について説明します。

必須 名前 データの種類 Description
イエス Input String 入力マウントのターゲット。 既定値は /input です。 これは LUIS パッケージ ファイルの保存先です。

例:
--mount type=bind,src=c:\input,target=/input
いいえ Output String 出力マウントのターゲット。 既定値は /output です。 これはログの保存先です。 LUIS のクエリ ログやコンテナー ログが含まれます。

例:
--mount type=bind,src=c:\output,target=/output

docker run コマンドの例

以下の例では、docker run コマンドの記述方法と使用方法を示す構成設定が使用されています。 コンテナーは一度実行すると、お客様が停止するまで動作し続けます。

  • これらの例では、Windows 上のアクセス許可の競合を防ぐために、C: ドライブのディレクトリを使用しています。 特定のディレクトリを入力ディレクトリとして使用する必要がある場合は、Docker サービスのアクセス許可の付与が必要なことがあります。
  • Docker コンテナーについて高度な知識がある場合を除き、引数の順序は変更しないでください。
  • 別のオペレーティング システムを使用している場合は、正しいコンソール/ターミナル、マウント用のフォルダー構文、ご利用のシステムの行連結文字を使用します。 これらの例では、行連結文字 ^ を使用した Windows コンソールを想定しています。 コンテナーは Linux オペレーティング システムであるため、ターゲット マウントでは Linux スタイルのフォルダー構文を使用します。

{ <引数名> } はお客様独自の値に置き換えてください。

プレースホルダー 形式または例
{API_KEY} Azure LUIS の [キー] ページの LUIS リソースのエンドポイント キー。 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} 課金エンドポイントの値は、Azure LUIS の [概要] ページで確認できます。 具体的な例については、「必須パラメーターの収集」を参照してください。

Note

2019 年 7 月 1 日より後に作成された新しいリソースには、カスタム サブドメイン名が使用されます。 リージョンのエンドポイントの詳細および完全な一覧については、「Azure AI サービスのカスタム サブドメイン名」 を参照してください。

重要

コンテナーを実行するには、EulaBillingApiKey の各オプションを指定する必要があります。そうしないと、コンテナーが起動しません。 詳細については、「課金」を参照してください。 ApiKey の値は、LUIS ポータルの [Keys and Endpoints](キーとエンドポイント) ページにある [キー] です。また、Azure Azure AI services リソース キー ページで確認することもできます。

基本的な例

次の例には、コンテナーを実行できるだけの最低限の引数が含まれています。

docker run --rm -it -p 5000:5000 --memory 4g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY}

ApplicationInsights の例

次の例では、コンテナーの実行中にテレメトリを Application Insights に送信するように、ApplicationInsights の引数を設定しています。

docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
InstrumentationKey={INSTRUMENTATION_KEY}

ログの例

次のコマンドでは、ログ レベル (Logging:Console:LogLevel) を設定することにより、ログ レベルを Information に構成しています。

docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
Logging:Console:LogLevel:Default=Information

次のステップ