設定讀取 OCR Docker 容器
您可以使用 docker run
命令引數,來設定 Azure AI 視覺讀取 OCR 容器的執行階段環境。 此容器有一些必要的設定,以及一些選擇性設定。 命令有相關範例可供參考。 容器專屬設定包括計費設定。
組態設定
此容器具有下列組態設定:
必要 | 設定 | 目的 |
---|---|---|
Yes | ApiKey | 追蹤計費資訊。 |
No | ApplicationInsights | 可讓您將 Azure Application Insights 遙測支援新增至容器。 |
Yes | Billing | 指定 Azure 上服務資源的端點 URI。 |
Yes | Eula | 表示您已接受容器的授權。 |
No | Fluentd | 將記錄和/或計量資料寫入 Fluentd 伺服器。 |
No | HTTP Proxy | 設定 HTTP Proxy 以提出輸出要求。 |
No | Logging | 提供適用於容器的 ASP.NET Core 記錄支援。 |
No | Mounts | 在主機電腦和容器之間往來讀取和寫入資料。 |
容器也有下列容器特定的組態設定:
必要 | 設定 | 目的 |
---|---|---|
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 | Storage::DocumentStore::MongoDB |
僅限 v2.0 容器。 啟用 MongoDB 以永久儲存結果。 |
No | Storage:ObjectStore:AzureBlob:ConnectionString |
僅限 v3.x 容器。 Azure Blob 儲存體連接字串。 |
No | Storage:TimeToLiveInDays |
僅限 v3.x 容器。 結果到期時間會以天為單位。 此設定會指定系統應該清除辨識結果的時間。 默認值為兩天,這表示任何存留時間超過該期間的結果不保證會成功擷取。 此值為整數,且必須介於一天到七天之間。 |
No | StorageTimeToLiveInMinutes |
v3.2-model-2021-09-30-preview 和新容器。 結果到期時間會以分鐘為單位。 此設定會指定系統應該清除辨識結果的時間。 默認值為兩天(2,880 分鐘),這表示任何存留時間超過該期間的結果不保證會成功擷取。 值為整數,且其必須介於 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 Application Insights 遙測支援新增至容器。 Application Insights 可提供深入容器監視。 您可輕鬆監視容器的可用性、效能和使用情形。 您也可以快速識別並診斷容器中的錯誤。
下表說明 ApplicationInsights
區段下所支援的組態設定。
必要 | 名稱 | 資料類型 | 描述 |
---|---|---|---|
No | InstrumentationKey |
String | Application Insights 執行個體的檢測金鑰,容器的遙測資料會傳送到這裡。 如需詳細資訊,請參閱 ASP.NET Core 的 Application Insights。 範例: InstrumentationKey=123456789 |
Billing 組態設定
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 線上訂閱合約 (其中包含線上服務條款)。 對於預覽版,您也同意 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 與 <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
設定可管理適用於容器的 ASP.NET Core 記錄支援。 對於您用於 ASP.NET Core 應用程式的容器,您可以使用相同的組態設定和值。
容器支援下列記錄提供者:
Provider | 目的 |
---|---|
主控台 | 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
記錄提供者支援下列組態設定:
名稱 | 資料類型 | 描述 |
---|---|---|
Format |
String | 適用於記錄檔的輸出格式。 注意:此值必須設定為 json 以啟用記錄提供者。 如果在具現化期間指定此值,但沒有同時指定輸出裝載,便會發生錯誤。 |
MaxFileSize |
整數 | 記錄檔的大小上限,以 MB 為單位。 當目前記錄檔的大小符合或超過此值時,記錄提供者便會建立新的記錄檔。 如果指定 -1,記錄檔的大小便只會受限於輸出裝載的檔案大小上限 (若有的話)。 預設值是 1。 |
如需設定 ASP.NET Core 記錄支援的詳細資訊,請參閱設定檔案組態。
裝載設定
使用繫結裝載將資料讀取和寫入至容器,及從中讀取和寫入。 您可以在 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
、Billing
及 ApiKey
選項以執行容器,否則容器將不會啟動。 如需詳細資訊,請參閱帳單。
ApiKey 值是 [視覺資源金鑰] 頁面中的金鑰。
容器 Docker 範例
以下是讀取 OCR 容器的 Docker 範例。
基本範例
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
下一步
- 檢閱如何安裝及執行容器。