Konfigurowanie kontenerów OCR Docker odczytu

Środowisko uruchomieniowe kontenera OCR odczytu usługi Azure AI Vision można skonfigurować przy użyciu docker run argumentów polecenia. Ten kontener ma kilka wymaganych ustawień wraz z kilkoma ustawieniami opcjonalnymi. Dostępnych jest kilka przykładów polecenia. Ustawienia specyficzne dla kontenera to ustawienia rozliczeń.

Ustawienia konfiguracji

Kontener ma następujące ustawienia konfiguracji:

Wymagania Ustawienie Purpose
Tak ApiKey Śledzi informacje o rozliczeniach.
Nie. ApplicationInsights Umożliwia dodawanie obsługi telemetrii aplikacja systemu Azure Szczegółowe informacje do kontenera.
Tak Rozliczenia Określa identyfikator URI punktu końcowego zasobu usługi na platformie Azure.
Tak Eula Wskazuje, że zaakceptowano licencję dla kontenera.
Nie. Biegle Zapisuje dziennik i, opcjonalnie, dane metryk na serwerze Fluentd.
Nie. HTTP Proxy Konfiguruje serwer proxy HTTP do tworzenia żądań wychodzących.
Nie. Rejestrowanie Zapewnia obsługę rejestrowania ASP.NET Core dla kontenera.
Nie. Wierzchowce Odczytuje i zapisuje dane z komputera hosta do kontenera i z kontenera z powrotem do komputera hosta.

Ważne

Ustawienia ApiKey, Billingi są Eula używane razem i należy podać prawidłowe wartości dla wszystkich trzech z nich; w przeciwnym razie kontener nie zostanie uruchomiony. Aby uzyskać więcej informacji na temat używania tych ustawień konfiguracji do tworzenia wystąpienia kontenera, zobacz Rozliczenia.

Kontener ma również następujące ustawienia konfiguracji specyficzne dla kontenera:

Wymagania Ustawienie Purpose
Nie. ReadEngineConfig:ResultExpirationPeriod Tylko kontenery w wersji 2.0. Okres wygaśnięcia wyniku w godzinach. Wartość domyślna to 48 godzin. Ustawienie określa, kiedy system powinien wyczyścić wyniki rozpoznawania. Jeśli na przykład resultExpirationPeriod=1system wyczyści wynik rozpoznawania 1 godzinę po procesie. Jeśli resultExpirationPeriod=0system wyczyści wynik rozpoznawania po pobraniu wyniku.
Nie. Pamięć podręczna:Redis Tylko kontenery w wersji 2.0. Umożliwia przechowywanie wyników w usłudze Redis Storage. Pamięć podręczna jest wymagana , jeśli wiele kontenerów OCR do odczytu znajduje się za modułem równoważenia obciążenia.
Nie. Queue:RabbitMQ Tylko kontenery w wersji 2.0. Włącza narzędzie RabbitMQ do wysyłania zadań. To ustawienie jest przydatne, gdy za modułem równoważenia obciążenia znajduje się wiele kontenerów odczytu OCR.
Nie. Queue:Azure:QueueVisibilityTimeoutInMilliseconds Tylko kontenery w wersji 3.x. Czas, aby komunikat był niewidoczny, gdy inny proces roboczy go przetwarza.
Nie. Storage::D ocumentStore::MongoDB Tylko kontenery w wersji 2.0. Włącza bazę danych MongoDB dla trwałego magazynu wyników.
Nie. Storage:ObjectStore:AzureBlob:Połączenie ionString Tylko kontenery w wersji 3.x. Parametry połączenia usługi Azure Blob Storage.
Nie. Storage:TimeToLiveInDays Tylko kontenery w wersji 3.x. Okres wygaśnięcia wyniku w dniach. Ustawienie określa, kiedy system powinien wyczyścić wyniki rozpoznawania. Wartość domyślna to 2 dni, co oznacza, że każdy wynik trwa dłużej niż ten okres, nie ma gwarancji, że zostanie pomyślnie pobrany. Wartość jest liczbą całkowitą i musi należeć od 1 dnia do 7 dni.
Nie. StorageTimeToLiveInMinutes 3.2-model-2021-09-30-preview i nowe kontenery. Okres wygaśnięcia wyniku w minutach. Ustawienie określa, kiedy system powinien wyczyścić wyniki rozpoznawania. Wartość domyślna to 2 dni (2880 minut), co oznacza, że wszystkie wyniki będą aktywne dłużej niż ten okres, nie ma gwarancji pomyślnego pobrania. Wartość jest liczbą całkowitą i musi należeć od 60 minut do 7 dni (10080 minut).
Nie. Zadanie:MaxRunningTimeSpanInMinutes Tylko kontenery w wersji 3.x. Maksymalny czas wykonywania pojedynczego żądania. Wartość domyślna to 60 minut.
Nie. EnableSyncNTPServer Tylko kontenery w wersji 3.x, z wyjątkiem wersji 3.2-model-2021-09-30-preview i nowszych kontenerów. Włącza mechanizm synchronizacji serwera NTP, który zapewnia synchronizację między czasem systemowym a oczekiwanym środowiskiem uruchomieniowym zadania. Należy pamiętać, że wymaga to ruchu sieciowego zewnętrznego. Wartość domyślna to true.
Nie. NTPServerAddress Tylko kontenery w wersji 3.x, z wyjątkiem wersji 3.2-model-2021-09-30-preview i nowszych kontenerów. Serwer NTP na potrzeby synchronizacji czasu. Wartość domyślna to time.windows.com.
Nie. Mounts:Shared Tylko kontenery w wersji 3.x. Folder lokalny do przechowywania wyników rozpoznawania. Wartość domyślna to /share. W przypadku uruchamiania kontenera bez korzystania z usługi Azure Blob Storage zalecamy zainstalowanie woluminu w tym folderze w celu zapewnienia wystarczającej ilości miejsca na wyniki rozpoznawania.

Ustawienie konfiguracji apiKey

Ustawienie ApiKey określa klucz zasobu usługi Vision używany do śledzenia informacji rozliczeniowych dla kontenera. Musisz określić wartość elementu ApiKey, a wartość musi być prawidłowym kluczem dla zasobu przetwarzania obrazów określonego Billing dla ustawienia konfiguracji.

To ustawienie można znaleźć w następującym miejscu:

  • Azure Portal: Zarządzanie zasobami usług Azure AI w obszarze Klucze

Ustawienie aplikacji Szczegółowe informacje

Ustawienie ApplicationInsights umożliwia dodanie aplikacja systemu Azure Szczegółowe informacje obsługi telemetrii do kontenera. Szczegółowe informacje aplikacji zapewnia szczegółowe monitorowanie kontenera. Kontener można łatwo monitorować pod kątem dostępności, wydajności i użycia. Możesz również szybko identyfikować i diagnozować błędy w kontenerze.

W poniższej tabeli opisano ustawienia konfiguracji obsługiwane w ApplicationInsights sekcji .

Wymagania Nazwisko Typ danych opis
Nie. InstrumentationKey String Klucz instrumentacji wystąpienia usługi Application Szczegółowe informacje, do którego są wysyłane dane telemetryczne dla kontenera. Aby uzyskać więcej informacji, zobacz Application Szczegółowe informacje for ASP.NET Core.

Przykład:
InstrumentationKey=123456789

Ustawienie konfiguracji rozliczeń

Ustawienie Billing określa identyfikator URI punktu końcowego zasobu usług azure AI na platformie Azure używany do pomiaru informacji rozliczeniowych dla kontenera. Musisz określić wartość dla tego ustawienia konfiguracji, a wartość musi być prawidłowym identyfikatorem URI punktu końcowego dla zasobu usług Azure AI na platformie Azure. Kontener raportuje użycie co około 10 do 15 minut.

To ustawienie można znaleźć w następującym miejscu:

  • Azure Portal: Omówienie usług AI platformy Azure z etykietą Endpoint

Pamiętaj, aby dodać vision/<version> routing do identyfikatora URI punktu końcowego, jak pokazano w poniższej tabeli.

Wymagania Nazwisko Typ danych opis
Tak Billing String Identyfikator URI punktu końcowego rozliczeń

Przykład:
Billing=https://westcentralus.api.cognitive.microsoft.com/vision/v3.2

Ustawienie Eula

Ustawienie Eula wskazuje, że zaakceptowano licencję dla kontenera. Musisz określić wartość dla tego ustawienia konfiguracji, a wartość musi być ustawiona na acceptwartość .

Wymagania Nazwisko Typ danych opis
Tak Eula String Akceptacja licencji

Przykład:
Eula=accept

Kontenery usług AI platformy Azure są licencjonowane zgodnie z umową regulującą korzystanie z platformy Azure. Jeśli nie masz istniejącej umowy dotyczącej korzystania z platformy Azure, zgadzasz się, że Umowa rządząca korzystaniem z platformy Azure jest umową subskrypcji online firmy Microsoft, która obejmuje postanowienia dotyczące usług online. W przypadku wersji zapoznawczych zgadzasz się również na dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure. Korzystając z kontenera, akceptujesz te warunki.

Ustawienia fluentd

Fluentd to moduł zbierający dane typu open source do ujednoliconego rejestrowania. Ustawienia Fluentd zarządzają połączeniem kontenera z serwerem Fluentd . Kontener zawiera dostawcę rejestrowania Fluentd, który umożliwia kontenerowi zapisywanie dzienników i opcjonalnie danych metryk na serwerze Fluentd.

W poniższej tabeli opisano ustawienia konfiguracji obsługiwane w Fluentd sekcji .

Nazwisko Typ danych opis
Host String Adres IP lub nazwa hosta DNS serwera Fluentd.
Port Integer Port serwera Fluentd.
Wartość domyślna to 24224.
HeartbeatMs Integer Interwał pulsu w milisekundach. Jeśli żaden ruch zdarzeń nie został wysłany przed wygaśnięciem tego interwału, puls jest wysyłany do serwera Fluentd. Wartość domyślna to 60000 milisekund (1 minuta).
SendBufferSize Integer Miejsce buforu sieci w bajtach przydzielone do operacji wysyłania. Wartość domyślna to 32768 bajtów (32 kilobajty).
TlsConnectionEstablishmentTimeoutMs Integer Limit czasu ( w milisekundach) w celu nawiązania połączenia SSL/TLS z serwerem Fluentd. Wartość domyślna to 10000 milisekund (10 sekund).
Jeśli UseTLS ustawiono wartość false, ta wartość jest ignorowana.
UseTLS Wartość logiczna Wskazuje, czy kontener powinien używać protokołu SSL/TLS do komunikacji z serwerem Fluentd. Wartość domyślna to false.

Ustawienia poświadczeń serwera proxy HTTP

Jeśli musisz skonfigurować serwer proxy HTTP do tworzenia żądań wychodzących, użyj następujących dwóch argumentów:

Nazwisko Typ danych opis
HTTP_PROXY string Serwer proxy do użycia, na przykład http://proxy:8888
<proxy-url>
HTTP_PROXY_CREDS string Wszelkie poświadczenia wymagane do uwierzytelnienia na serwerze proxy, na przykład username:password. Ta wartość musi być w małych literach.
<proxy-user> string Użytkownik serwera proxy.
<proxy-password> string Hasło skojarzone z <proxy-user> serwerem 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> \

Ustawienia rejestrowania

Ustawienia Logging zarządzają obsługą rejestrowania ASP.NET Core dla kontenera. Możesz użyć tych samych ustawień konfiguracji i wartości dla kontenera, który jest używany dla aplikacji ASP.NET Core.

Następujący dostawcy rejestrowania są obsługiwani przez kontener:

Dostawca Purpose
Konsola Dostawca rejestrowania ASP.NET Core Console . Obsługiwane są wszystkie ustawienia konfiguracji ASP.NET Core i wartości domyślne dla tego dostawcy rejestrowania.
Debug Dostawca rejestrowania ASP.NET Core Debug . Obsługiwane są wszystkie ustawienia konfiguracji ASP.NET Core i wartości domyślne dla tego dostawcy rejestrowania.
Disk Dostawca rejestrowania JSON. Ten dostawca rejestrowania zapisuje dane dziennika w instalacji wyjściowej.

To polecenie kontenera przechowuje informacje rejestrowania w formacie JSON do instalacji wyjściowej:

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

To polecenie kontenera wyświetla informacje debugowania z prefiksem dbug, gdy kontener jest uruchomiony:

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

Rejestrowanie dysku

Dostawca rejestrowania Disk obsługuje następujące ustawienia konfiguracji:

Nazwisko Typ danych opis
Format String Format danych wyjściowych dla plików dziennika.
Uwaga: ta wartość musi być ustawiona na wartość , aby json włączyć dostawcę rejestrowania. Jeśli ta wartość jest określona bez określania również instalacji wyjściowej podczas tworzenia wystąpienia kontenera, wystąpi błąd.
MaxFileSize Integer Maksymalny rozmiar w megabajtach (MB) pliku dziennika. Gdy rozmiar bieżącego pliku dziennika spełnia lub przekracza tę wartość, nowy plik dziennika jest uruchamiany przez dostawcę rejestrowania. Jeśli określono -1, rozmiar pliku dziennika jest ograniczony tylko przez maksymalny rozmiar pliku, jeśli istnieje, dla instalacji wyjściowej. Domyślna wartość wynosi 1.

Aby uzyskać więcej informacji na temat konfigurowania obsługi rejestrowania ASP.NET Core, zobacz Ustawienia konfiguracji plików.

Ustawienia instalacji

Użyj instalacji powiązania, aby odczytywać i zapisywać dane z i z kontenera. Możesz określić instalację wejściową lub instalację wyjściową, określając --mount opcję w poleceniu docker run .

Kontenery usługi Azure AI Vision nie używają instalacji wejściowych ani wyjściowych do przechowywania danych szkoleniowych lub usług.

Dokładna składnia lokalizacji instalacji hosta różni się w zależności od systemu operacyjnego hosta. Ponadto lokalizacja instalacji komputera hosta może być niedostępna z powodu konfliktu między uprawnieniami używanymi przez konto usługi Platformy Docker i uprawnieniami lokalizacji instalacji hosta.

Opcjonalnie Nazwisko Typ danych opis
Niedozwolone Input String Kontenery usługi Azure AI Vision nie używają tego.
Opcjonalnie Output String Element docelowy instalacji wyjściowej. Domyślna wartość to /output. Jest to lokalizacja dzienników. Obejmuje to dzienniki kontenerów.

Przykład:
--mount type=bind,src=c:\output,target=/output

Przykładowe polecenia uruchamiania platformy Docker

W poniższych przykładach użyto ustawień konfiguracji, aby zilustrować sposób pisania i używania docker run poleceń. Po uruchomieniu kontener będzie działać do momentu jego zatrzymania .

  • Znak kontynuacji wiersza: polecenia platformy Docker w poniższych sekcjach używają ukośnika odwrotnego , \jako znaku kontynuacji wiersza. Zastąp lub usuń to na podstawie wymagań systemu operacyjnego hosta.
  • Kolejność argumentów: nie zmieniaj kolejności argumentów, chyba że znasz kontenery platformy Docker.

Zastąp element {argument_name} własnymi wartościami:

Symbol zastępczy Wartość Formatowanie lub przykład
{API_KEY} Klucz punktu końcowego zasobu usługi Vision na stronie kluczy zasobów. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} Wartość punktu końcowego rozliczeń jest dostępna na stronie przeglądu zasobu. Zobacz Zbieranie wymaganych parametrów, aby zapoznać się z jawnymi przykładami.

Uwaga

Nowe zasoby utworzone po 1 lipca 2019 r. będą używać niestandardowych nazw domen podrzędnych. Aby uzyskać więcej informacji i pełną listę regionalnych punktów końcowych, zobacz Niestandardowe nazwy poddomeny dla usług Azure AI.

Ważne

Aby Eulauruchomić kontener, należy określić opcje , Billingi ApiKey . W przeciwnym razie kontener nie zostanie uruchomiony. Aby uzyskać więcej informacji, zobacz Rozliczenia. Wartość ApiKey to klucz ze strony kluczy zasobów usługi Vision.

Przykłady platformy Docker dla kontenerów

Poniższe przykłady platformy Docker dotyczą kontenera OCR odczytu.

Przykład podstawowy

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}

Przykład rejestrowania

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

Następne kroki