読み取り OCR Docker コンテナーを構成する
docker run
コマンドの引数を使用すると、Azure AI Vision 読み取り OCR コンテナーのランタイム環境を構成できます。 このコンテナーには、いくつかの必須の設定と省略可能な設定があります。 いくつかのコマンドの例をご覧ください。 このコンテナーに固有の設定は、課金設定です。
構成設定
このコンテナーには、次の構成設定があります。
必須 | 設定 | 目的 |
---|---|---|
はい | ApiKey | 課金情報を追跡します。 |
いいえ | ApplicationInsights | お客様のコンテナーに対する Azure Application Insights テレメトリ サポートの追加を有効にします。 |
はい | Billing | Azure 上のサービス リソースのエンドポイント URI を指定します。 |
はい | Eula | コンテナーのライセンスに同意していることを示します。 |
いいえ | Fluentd | ログと (必要に応じて) メトリック データを Fluentd サーバーに書き込みます。 |
いいえ | HTTP Proxy | 送信要求を行うために、HTTP プロキシを構成します。 |
いいえ | Logging | ASP.NET Core のログ サポートをお客様のコンテナーに提供します。 |
いいえ | Mounts | ホスト コンピューターからコンテナーに、またコンテナーからホスト コンピューターにデータを読み取ったり書き込んだりします。 |
重要
ApiKey
、Billing
、Eula
の各設定は一緒に使用されるため、それらの 3 つすべてに有効な値を指定する必要があります。そうしないと、お客様のコンテナーは起動しません。 これらの構成設定を使用してコンテナーをインスタンス化する方法の詳細については、「課金」を参照してください。
このコンテナーには、次のコンテナー固有の構成設定もあります。
必須 | 設定 | 目的 |
---|---|---|
いいえ | ReadEngineConfig:ResultExpirationPeriod | v2.0 コンテナーのみ。 結果の有効期限 (時間)。 既定値は 48 時間です。 この設定によって、システムが認識結果をクリアするタイミングが指定されます。 たとえば、resultExpirationPeriod=1 の場合、プロセスの 1 時間後に、システムによって認識結果がクリアされます。 resultExpirationPeriod=0 の場合、結果が取得された後に、システムによって認識結果がクリアされます。 |
いいえ | Cache:Redis | v2.0 コンテナーのみ。 結果を格納するための Redis ストレージを有効にします。 ロード バランサーの背後に複数の Read OCR コンテナーが配置されている場合は、キャッシュが必要です。 |
いいえ | Queue:RabbitMQ | v2.0 コンテナーのみ。 タスクをディスパッチするための RabbitMQ を有効にします。 この設定は、ロード バランサーの背後に複数の Read OCR コンテナーが配置されている場合に便利です。 |
いいえ | Queue:Azure:QueueVisibilityTimeoutInMilliseconds | v3.x コンテナーのみ。 別のワーカーが処理しているときにメッセージが非表示になる時間。 |
いいえ | Storage::DocumentStore::MongoDB | v2.0 コンテナーのみ。 永続的な結果ストレージ用に MongoDB を有効にします。 |
いいえ | Storage:ObjectStore:AzureBlob:ConnectionString | v3.x コンテナーのみ。 Azure BLOB ストレージの接続文字列。 |
いいえ | Storage:TimeToLiveInDays | v3.x コンテナーのみ。 結果の有効期限 (日数)。 この設定によって、システムが認識結果をクリアするタイミングが指定されます。 既定値は 2 日です。これは、その期間より長く存続するすべての結果は、正常に取得されるとは限らないことを意味します。 値は整数で、1 日から 7 日の間である必要があります。 |
いいえ | StorageTimeToLiveInMinutes | v3.2-model-2021-09-30-preview および新しいコンテナー。 結果の有効期限 (分単位)。 この設定によって、システムが認識結果をクリアするタイミングが指定されます。 既定値は 2 日 (2880分) です。これは、その期間より長く存続するすべての結果は、正常に取得されるとは限らないことを意味します。 値は整数で、60 分から 7 日間 (10080 分) である必要があります。 |
いいえ | Task:MaxRunningTimeSpanInMinutes | v3.x コンテナーのみ。 1 つの要求の最大実行時間。 既定値は 60 分です。 |
いいえ | EnableSyncNTPServer | v3.x コンテナーのみ。v3.2-model-2021-09-30-プレビュー以降のコンテナーを除きます。 NTP サーバーの同期メカニズムを有効にして、システム時間と予想されるタスク実行時間の同期を確保します。 これには、外部のネットワーク トラフィックが必要であることに注意してください。 既定では、 true です。 |
いいえ | NTPServerAddress | v3.x コンテナーのみ。v3.2-model-2021-09-30-プレビュー以降のコンテナーを除きます。 時刻同期用 NTP サーバー。 既定では、 time.windows.com です。 |
いいえ | マウント:共有された | v3.x コンテナーのみ。 認識結果を格納するためのローカル フォルダー。 既定値は、/share です。 Azure Blob Storage を使用せずにコンテナーを実行する場合は、認識結果を保存するのに十分な領域を確保するために、このフォルダーにボリュームをマウントすることをお勧めします。 |
ApiKey 構成設定
ApiKey
設定は、コンテナーの課金情報を追跡するために使用される Vision リソース キーを指定します。 ApiKey の値を指定する必要があり、値は Billing
の構成設定に指定された Vision リソースの有効なキーでなければなりません。
この設定は次の場所で確認できます。
- Azure portal: [Azure AI サービス] リソース管理の [キー] の下
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
として表示されます。
次の表に示したように、エンドポイント URI には、忘れずに vision/<version>
ルーティングを追加してください。
必須 | 名前 | データの種類 | Description |
---|---|---|---|
イエス | Billing |
String | 課金エンドポイント URI 例: Billing=https://westcentralus.api.cognitive.microsoft.com/vision/v3.2 |
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
オプションを指定することによって指定できます。
Azure AI Vision コンテナーは、トレーニングやサービス データを保存するために入力マウントや出力マウントを使用しません。
ホストのマウント場所の厳密な構文は、ホスト オペレーティング システムによって異なります。 また、Docker サービス アカウントによって使用されるアクセス許可とホストのマウント場所のアクセス許可とが競合するために、ホスト コンピューターのマウント場所にアクセスできないこともあります。
省略可能 | 名前 | データの種類 | 説明 |
---|---|---|---|
禁止 | Input |
String | Azure AI Vision コンテナーは、これを使用しません。 |
省略可能 | Output |
String | 出力マウントのターゲット。 既定値は /output です。 これはログの保存先です。 これには、コンテナーのログが含まれます。 例: --mount type=bind,src=c:\output,target=/output |
docker run コマンドの例
以下の例では、docker run
コマンドの記述方法と使用方法を示す構成設定が使用されています。 コンテナーは一度実行すると、お客様が停止するまで動作し続けます。
- 行連結文字: 以降のセクションの Docker コマンドには、行連結文字としてバック スラッシュ (
\
) が使用されています。 お客様のホスト オペレーティング システムの要件に応じて、置換または削除してください。 - 引数の順序: Docker コンテナーについて高度な知識がある場合を除き、引数の順序は変更しないでください。
{ <引数名> } はお客様独自の値に置き換えてください。
プレースホルダー | 値 | 形式または例 |
---|---|---|
{API_KEY} | リソース キー ページ上の Vision リソースのエンドポイント キー。 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | 課金エンドポイントの値は、リソース概要ページ上で確認できます。 | 具体的な例については、「必須パラメーターの収集」を参照してください。 |
Note
2019 年 7 月 1 日より後に作成された新しいリソースには、カスタム サブドメイン名が使用されます。 リージョンのエンドポイントの詳細および完全な一覧については、「Azure AI サービスのカスタム サブドメイン名」 を参照してください。
重要
コンテナーを実行するには、Eula
、Billing
、ApiKey
の各オプションを指定する必要があります。そうしないと、コンテナーが起動しません。 詳細については、「課金」を参照してください。
ApiKey の値は、Vision リソース キー ページのキーです。
コンテナーの Docker の例
次の Docker の例は、Read OCR コンテナーに関するものです。
基本的な例
docker run --rm -it -p 5000:5000 --memory 16g --cpus 8 \
mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2022-04-30 \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
ログの例
docker run --rm -it -p 5000:5000 --memory 16g --cpus 8 \
mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2022-04-30 \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Logging:Console:LogLevel:Default=Information
次のステップ
- コンテナーのインストール方法と実行方法を確認します。