設定讀取 OCR Docker 容器

您可以使用命令自變數來設定 Azure AI Vision Read OCR 容器的運行時間環境 docker run 。 此容器有數個必要設定,以及一些選擇性設定。 有數 個命令範例 可供使用。 容器特定的設定是計費設定。

組態設定

容器具有下列組態設定:

必要 設定 目的
Yes ApiKey 追蹤帳單資訊。
No ApplicationInsights 可讓您將 Azure 應用程式 Insights 遙測支援新增至您的容器。
Yes Billing 指定 Azure 上服務資源的端點 URI。
Yes Eula 表示您已接受容器的授權。
No Fluentd 將記錄和選擇性地計量數據寫入 Fluentd 伺服器。
No HTTP Proxy 設定 HTTP Proxy 以提出輸出要求。
No Logging 為您的容器提供 ASP.NET 核心記錄支援。
No 坐騎 從主計算機讀取和寫入數據至容器,以及從容器回寫主計算機。

重要

ApiKeyBillingEula 設定會一起使用,您必須為這三個設定提供有效的值,否則您的容器將不會啟動。 如需使用這些組態設定具現化容器的詳細資訊,請參閱 計費

容器也有下列容器特定的組態設定:

必要 設定 目的
No ReadEngineConfig:ResultExpirationPeriod 僅限 v2.0 容器。 結果到期期間以小時為單位。 預設值為 48 小時。 此設定會指定系統何時應該清除辨識結果。 例如,如果 resultExpirationPeriod=1,系統會在程序之後 1 小時清除辨識結果。 如果 resultExpirationPeriod=0為 ,系統會在擷取結果之後清除辨識結果。
No Cache:Redis 僅限 v2.0 容器。 啟用 Redis 記憶體來儲存結果。 如果多個讀取 OCR 容器放在負載平衡器後方,則需要快取。
No Queue:RabbitMQ 僅限 v2.0 容器。 啟用RabbitMQ來分派工作。 當多個讀取 OCR 容器放在負載平衡器後方時,此設定很有用。
No Queue:Azure:QueueVisibilityTimeoutInMilliseconds 僅限 v3.x 容器。 當另一個背景工作角色正在處理訊息時,訊息要隱藏的時間。
No 儲存體::D ocumentStore::MongoDB 僅限 v2.0 容器。 啟用 MongoDB 以進行永久的結果記憶體。
No 儲存體:ObjectStore:AzureBlob:連線 ionString 僅限 v3.x 容器。 Azure Blob 記憶體 連接字串。
No 儲存體:TimeToLiveInDays 僅限 v3.x 容器。 結果到期期間以天為單位。 此設定會指定系統何時應該清除辨識結果。 默認值為 2 天,這表示任何結果的存留時間都超過該期間,不保證能成功擷取。 值為整數,且其必須介於1天到7天之間。
No 儲存體 TimeToLiveInMinutes v3.2-model-2021-09-30-preview 和新的容器。 結果到期期間以分鐘為單位。 此設定會指定系統何時應該清除辨識結果。 默認值為2天(2880分鐘),這表示任何結果的存留時間都超過該期間,不保證能成功擷取。 值為整數,且其必須介於 60 分鐘到 7 天之間(10080 分鐘)。
No Task:MaxRunningTimeSpanInMinutes 僅限 v3.x 容器。 單一要求的運行時間上限。 預設值是 60 分鐘。
No EnableSyncNTPServer 僅限 v3.x 容器,但 v3.2-model-2021-09-30-preview 和較新的容器除外。 啟用 NTP 伺服器同步處理機制,以確保系統時間與預期的工作運行時間之間的同步處理。 請注意,這需要外部網路流量。 預設值為 true
No NTPServerAddress 僅限 v3.x 容器,但 v3.2-model-2021-09-30-preview 和較新的容器除外。 時間同步處理的 NTP 伺服器。 預設值為 time.windows.com
No Mounts:Shared 僅限 v3.x 容器。 用於儲存辨識結果的本機資料夾。 預設值為 /share。 針對不使用 Azure Blob 記憶體的執行容器,建議您將磁碟區掛接至此資料夾,以確保您有足夠的空間可辨識結果。

ApiKey 組態設定

ApiKey 設定會指定用來追蹤容器帳單資訊的視覺資源金鑰。 您必須指定 ApiKey 的值,而且值必須是針對組 Billing 態設定所指定視覺資源的有效索引鍵。

您可以在下列位置找到此設定:

  • Azure 入口網站:Azure AI 服務資源管理,位於 [金鑰] 底下

ApplicationInsights 設定

ApplicationInsights設定可讓您將 Azure 應用程式 Insights 遙測支援新增至您的容器。 Application Insights 提供容器的深入監視。 您可以輕鬆地監視容器的可用性、效能和使用方式。 您也可以快速識別並診斷容器中的錯誤。

下表描述 區段底下 ApplicationInsights 支援的組態設定。

必要 名稱 資料類型 描述
No InstrumentationKey String 傳送容器遙測數據的ApplicationInsights實例檢測密鑰。 如需詳細資訊,請參閱 ASP.NET Core 的 Application Insights

範例:
InstrumentationKey=123456789

帳單組態設定

Billing 設定會指定 Azure 上用來對容器計算計費資訊之 Azure AI 服務資源的端點 URI。 您必須為此組態設定指定值,而且此值必須是 Azure 上 Azure AI 服務資源的有效端點 URI。 容器會每隔 10 到 15 分鐘報告使用量。

您可以在下列位置找到此設定:

  • Azure 入口網站:Azure AI 服務概觀,標示為 Endpoint

請記得將 vision/<version> 路由新增至端點 URI,如下表所示。

必要 名稱 資料類型 描述
Yes Billing String 計費端點 URI

範例:
Billing=https://westcentralus.api.cognitive.microsoft.com/vision/v3.2

Eula 設定

Eula 設定表示您已接受容器的授權。 您必須設定指定值,且值必須設定為 accept

必要 名稱 資料類型 描述
Yes Eula String 接受授權

範例:
Eula=accept

Azure AI 服務容器是在您的合約 (控管您對於 Azure 的使用) 底下獲得授權。 如果您沒有管理您 Azure 使用的現有合約,表示您同意管理 Azure 使用方式的合約是 Microsoft Online 訂用帳戶合約,其中包含 在線服務條款。 針對預覽版,您也同意 Microsoft Azure 預覽版的補充使用規定。 藉由使用容器,即表示您同意這些條款。

Fluentd 設定

Fluentd 是統一記錄的開放原始碼數據收集器。 這些 Fluentd 設定會管理容器與 Fluentd 伺服器的連線。 容器包含 Fluentd 記錄提供者,可讓您的容器將記錄和選擇性地計量數據寫入 Fluentd 伺服器。

下表描述 區段底下 Fluentd 支援的組態設定。

名稱 資料類型 描述
Host String Fluentd 伺服器的IP位址或 DNS 主機名。
Port 整數 Fluentd 伺服器的埠。
預設值為 24224。
HeartbeatMs 整數 活動訊號間隔,以毫秒為單位。 如果此間隔到期之前未傳送任何事件流量,活動訊號就會傳送至 Fluentd 伺服器。 默認值為 60000 毫秒(1 分鐘)。
SendBufferSize 整數 配置給傳送作業的網路緩衝區空間,以位元組為單位。 默認值為32768位元組(32 KB)。
TlsConnectionEstablishmentTimeoutMs 整數 逾時,以毫秒為單位,用來建立與 Fluentd 伺服器的 SSL/TLS 連線。 默認值為10000毫秒(10秒)。
如果 UseTLS 設定為 false,則會忽略此值。
UseTLS 布林值 指出容器是否應該使用 SSL/TLS 與 Fluentd 伺服器通訊。 預設值為 false。

HTTP Proxy 認證設定

如果您需要設定 HTTP Proxy 以提出輸出要求,請使用這兩個自變數:

名稱 資料類型 描述
HTTP_PROXY string 要使用的 Proxy,例如 http://proxy:8888
<proxy-url>
HTTP_PROXY_CREDS string 任何針對 Proxy 進行驗證所需的認證,例如 username:password。 此值 必須以小寫為單位。
<proxy-user> string Proxy 的使用者。
<proxy-password> string <proxy-user> Proxy 相關聯的密碼。
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 設定會管理容器的 ASP.NET Core 記錄支援。 您可以針對用於 ASP.NET Core 應用程式的容器使用相同的組態設定和值。

容器支援下列記錄提供者:

提供者 目的
主控台 ASP.NET Core Console 記錄提供者。 支援此記錄提供者的所有 ASP.NET 核心組態設定和預設值。
偵錯 ASP.NET Core Debug 記錄提供者。 支援此記錄提供者的所有 ASP.NET 核心組態設定和預設值。
磁碟 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 提供者支援下列組態設定:

名稱 資料類型 描述
Format String 記錄檔的輸出格式。
注意: 此值必須設定為 json ,才能啟用記錄提供者。 如果在具現化容器時未指定輸出掛接,則會發生錯誤。
MaxFileSize 整數 記錄檔的大小上限,以 MB 為單位。 當目前記錄檔的大小符合或超過此值時,記錄提供者會啟動新的記錄檔。 如果指定了 -1,記錄檔的大小只會受限於輸出掛接的最大檔案大小。 預設值是 1。

如需設定核心記錄支援 ASP.NET 的詳細資訊,請參閱 設定 檔案組態

掛接設定

使用系結掛接來讀取和寫入容器中的數據。 您可以在 docker run 命令中指定 選項,以指定--mount輸入掛接或輸出掛接。

Azure AI 視覺容器不會使用輸入或輸出掛接來儲存定型或服務數據。

主機掛接位置的確切語法會根據主機操作系統而有所不同。 此外,由於 Docker 服務帳戶所使用的許可權與主機裝載位置許可權之間發生衝突, 因此可能無法存取主計算機的掛接位置。

選擇性 名稱 資料類型 描述
不允許 Input String Azure AI 視覺容器不會使用此容器。
選擇性 Output String 輸出掛接的目標。 預設值是 /output。 這是記錄的位置。 這包括容器記錄。

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

範例 docker 執行命令

下列範例會使用組態設定來說明如何撰寫和使用 docker run 命令。 執行之後,容器會繼續執行,直到您 停止 為止。

  • 行接續字元:下列各節中的 Docker 命令會使用反斜 \線 ,做為行接續字元。 根據您的主機作業系統需求取代或移除此專案。
  • 自變數順序:除非您非常熟悉 Docker 容器,否則請勿變更自變數的順序。

將 {argument_name} 取代為您自己的值:

預留位置 格式或範例
{API_KEY} 資源金鑰頁面上視覺資源的端點金鑰。 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} 計費端點值可在資源概觀頁面上取得。 如需明確的範例,請參閱 收集必要的參數

注意

在 2019 年 7 月 1 日之後建立的新資源將會使用自定義子域名稱。 如需詳細資訊和完整的區域端點清單,請參閱 Azure AI 服務的自訂子網域名稱

重要

Eula必須指定、 BillingApiKey 選項來執行容器,否則容器將不會啟動。 如需詳細資訊,請參閱 計費。 ApiKey 值是 [視覺資源索引鍵] 頁面的 [金鑰 ]。

容器 Docker 範例

下列 Docker 範例適用於讀取 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

下一步