Mengonfigurasi kontainer Docker Read OCR

Anda dapat mengonfigurasi lingkungan runtime kontainer Azure AI Vision Read OCR dengan menggunakan docker run argumen perintah. Kontainer ini memiliki beberapa pengaturan yang diperlukan, bersama dengan beberapa pengaturan opsional. Beberapa contoh perintah tersedia. Pengaturan khusus kontainer adalah pengaturan tagihan.

Pengaturan konfigurasi

Kontainer memiliki pengaturan konfigurasi berikut:

Wajib Pengaturan Tujuan
Ya ApiKey Melacak informasi penagihan.
No ApplicationInsights Memungkinkan menambahkan dukungan telemetri Azure Application Insights ke kontainer Anda.
Ya Billing Menentukan URI titik akhir sumber daya layanan di Azure.
Ya Eula Menunjukkan bahwa Anda telah menerima lisensi untuk kontainer.
No Fluentd Menulis log dan, secara opsional, data metrik ke server Fluentd.
No Proksi HTTP Mengonfigurasi proksi HTTP untuk membuat permintaan keluar.
No Pembuatan Log Memberikan dukungan pengelogan ASP.NET Core untuk kontainer Anda.
No Pemasangan Membaca dan menulis data dari komputer host ke kontainer dan dari kontainer kembali ke komputer host.

Penting

Pengaturan ApiKey, Billing, dan Eula digunakan bersama-sama, dan Anda harus menyediakan nilai yang valid untuk ketiganya; jika tidak, kontainer Anda tidak akan dimulai. Untuk informasi selengkapnya tentang menggunakan pengaturan konfigurasi ini untuk membuat instans kontainer, lihat Tagihan.

Kontainer juga memiliki pengaturan konfigurasi khusus kontainer berikut:

Wajib Pengaturan Tujuan
No ReadEngineConfig:ResultExpirationPeriod kontainer v2.0 saja. Masa kedaluwarsa hasil dalam jam. Defaultnya adalah 48 jam. Pengaturan menentukan kapan sistem harus menghapus hasil pengenalan. Misalnya, jika resultExpirationPeriod=1, sistem akan menghapus hasil pengenalan 1 jam setelah proses. Jika resultExpirationPeriod=0, sistem akan menghapus hasil pengenalan begitu hasil diambil.
No Cache:Redis kontainer v2.0 saja. Memungkinkan penyimpanan Redis untuk menyimpan hasil. Cache diperlukan jika beberapa kontainer read OCR berada di belakang penyeimbang muatan.
No Queue:RabbitMQ kontainer v2.0 saja. Memungkinkan RabbitMQ mengirim tugas. Pengaturan ini berguna saat beberapa kontainer read OCR berada di belakang penyeimbang muatan.
No Queue:Azure:QueueVisibilityTimeoutInMilliseconds kontainer v3.x saja. Waktu untuk pesan tidak dapat dilihat saat pekerja lain sedang memprosesnya.
No Storage::DocumentStore::MongoDB kontainer v2.0 saja. Mengaktifkan MongoDB untuk penyimpanan hasil permanen.
No Storage:ObjectStore:AzureBlob:ConnectionString kontainer v3.x saja. String koneksi penyimpanan blob Azure.
No Storage:TimeToLiveInDays kontainer v3.x saja. Masa kedaluwarsa hasil dalam jam. Pengaturan menentukan kapan sistem harus menghapus hasil pengenalan. Defaultnya adalah 2 hari, yang berarti hasil yang disimpan lebih lama dari periode tersebut tidak dijamin dapat berhasil diambil. Nilainya merupakan bilangan bulat dan harus antara 1 hari hingga 7 hari.
No StorageTimeToLiveInMinutes v3.2-model-2021-09-30-preview serta kontainer baru. Periode kedaluwarsa hasil dalam menit. Pengaturan menentukan kapan sistem harus menghapus hasil pengenalan. Defaultnya merupakan 2 hari (2880 jam), yang berarti hasil yang disimpan lebih lama dari periode tersebut tidak dijamin dapat berhasil diambil. Nilainya merupakan bilangan bulat dan harus antara 60 menit hingga 7 hari (10080 menit).
No Task:MaxRunningTimeSpanInMinutes kontainer v3.x saja. Waktu pengoperasian maksimum untuk satu permintaan. Defaultnya adalah 60 menit.
No EnableSyncNTPServer Hanya kontainer v3.x, kecuali bagi v3.2-model-2021-09-30-preview dan kontainer yang lebih baru. Memungkinkan mekanisme sinkronisasi server NTP, yang memastikan sinkronisasi antara waktu sistem dan runtime bahasa umum dari tugas yang diharapkan. Perhatikan bahwa ini membutuhkan lalu lintas jaringan eksternal. Default adalah true.
No NTPServerAddress Hanya kontainer v3.x, kecuali bagi v3.2-model-2021-09-30-preview dan kontainer yang lebih baru. Server NTP untuk sinkronisasi waktu. Default adalah time.windows.com.
No Pemasangan:Berbagi kontainer v3.x saja. Folder lokal untuk menyimpan hasil pengenalan. Default adalah /share. Untuk menjalankan kontainer tanpa menggunakan penyimpanan blob Azure, kami sarankan untuk memasang volume ke folder ini untuk memastikan Anda memiliki cukup ruang untuk hasil pengenalan.

Pengaturan konfigurasi ApiKey

ApiKey Pengaturan menentukan kunci sumber daya Visi yang digunakan untuk melacak informasi penagihan untuk kontainer. Anda harus menentukan nilai untuk ApiKey dan nilainya harus merupakan kunci yang valid untuk sumber daya Visi yang ditentukan untuk Billing pengaturan konfigurasi.

Pengaturan ini dapat ditemukan di tempat berikut:

  • portal Azure: Manajemen Sumber Daya layanan Azure AI, di bawah Kunci

Pengaturan ApplicationInsights

Pengaturan ApplicationInsights memungkinkan Anda menambahkan dukungan telemetri Azure Application Insights ke kontainer Anda. Application Insights menyediakan pemantauan mendalam kontainer Anda. Anda dapat dengan mudah memantau kontainer Anda untuk mengetahui ketersediaan, performa, dan penggunaan. Anda juga dapat dengan cepat mengidentifikasi dan mendiagnosis kesalahan dalam kontainer Anda.

Tabel berikut menjelaskan pengaturan konfigurasi yang didukung di bawah bagian ApplicationInsights.

Wajib Nama Jenis data Deskripsi
No InstrumentationKey String Kunci instrumentasi instans Application Insights tempat data telemetri untuk kontainer dikirim. Untuk mengetahui informasi selengkapnya, lihat Application Insights untuk ASP.NET Core.

Contoh:
InstrumentationKey=123456789

Pengaturan konfigurasi tagihan

Billing Pengaturan menentukan URI titik akhir sumber daya layanan Azure AI di Azure yang digunakan untuk mengukur informasi penagihan untuk kontainer. Anda harus menentukan nilai untuk pengaturan konfigurasi ini, dan nilainya harus merupakan URI titik akhir yang valid untuk sumber daya layanan Azure AI di Azure. Kontainer melaporkan penggunaan sekitar setiap 10 hingga 15 menit.

Pengaturan ini dapat ditemukan di tempat berikut:

  • portal Azure: Gambaran Umum layanan Azure AI, berlabelEndpoint

Jangan lupa untuk menambahkan perutean vision/<version> ke URI titik akhir seperti yang diperlihatkan dalam tabel berikut ini.

Wajib Nama Jenis data Deskripsi
Ya Billing String URI titik akhir tagihan

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

Pengaturan Eula

Pengaturan Eula menunjukkan bahwa Anda telah menerima lisensi untuk kontainer. Anda harus menentukan nilai untuk pengaturan konfigurasi ini, dan nilainya harus diatur ke accept.

Wajib Nama Jenis data Deskripsi
Ya Eula String Penerimaan lisensi

Contoh:
Eula=accept

Kontainer layanan Azure AI dilisensikan berdasarkan perjanjian Anda yang mengatur penggunaan Azure. Jika Anda tidak memiliki perjanjian yang sudah ada yang mengatur penggunaan Azure oleh Anda, Anda setuju bahwa perjanjian yang mengatur penggunaan Azure adalah Perjanjian Langganan Microsoft Online, yang menggabungkan Ketentuan Layanan Online. Untuk pratinjau, Anda juga menyetujui Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure. Dengan menggunakan kontainer, Anda menyetujui persyaratan ini.

Pengaturan Fluentd

Fluentd adalah kolektor data sumber terbuka untuk pengelogan terpadu. Pengaturan Fluentd mengelola koneksi kontainer ke server Fluentd. Kontainer ini mencakup penyedia pembuatan log Fluentd, yang memungkinkan kontainer Anda menulis log dan, secara opsional, data metrik ke server Fluentd.

Tabel berikut menjelaskan pengaturan konfigurasi yang didukung di bawah bagian Fluentd.

Nama Jenis data Deskripsi
Host String Alamat IP atau nama host DNS server Fluentd.
Port Bilangan bulat Port server Fluentd.
Nilai defaultnya adalah 24224.
HeartbeatMs Bilangan bulat Interval heartbeat, dalam milidetik. Jika tidak ada lalu lintas peristiwa yang dikirim sebelum interval ini berakhir, heartbeat dikirim ke server Fluentd. Nilai defaultnya adalah 60000 milidetik (1 menit).
SendBufferSize Bilangan bulat Ruang buffer jaringan, dalam byte, dialokasikan untuk operasi pengiriman. Nilai default adalah 32768 byte (32 kilobyte).
TlsConnectionEstablishmentTimeoutMs Bilangan bulat Waktu habis, dalam hitungan milidetik, untuk membangun sambungan SSL/TLS dengan server Fluentd. Nilai defaultnya adalah 10000 milidetik (10 detik).
Jika UseTLS diatur ke false, nilai ini diabaikan.
UseTLS Boolean Menunjukkan apakah kontainer harus menggunakan SSL/TLS untuk berkomunikasi dengan server Fluentd. Nilai defaultnya adalah false.

Pengaturan info masuk proksi HTTP

Jika Anda perlu mengonfigurasi proxy HTTP untuk membuat permintaan keluar, gunakan dua argumen berikut:

Nama Jenis data Deskripsi
HTTP_PROXY string Proksi yang akan digunakan, misalnya, http://proxy:8888
<proxy-url>
HTTP_PROXY_CREDS string Kredensial apa pun yang diperlukan untuk mengautentikasi terhadap proxy, misalnya, username:password. Nilai ini harus dalam huruf kecil.
<proxy-user> string Pengguna untuk proksi.
<proxy-password> string Kata sandi yang terkait dengan <proxy-user> untuk proksi.
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> \

Pengaturan pengelogan

Pengaturan Logging mengelola ASP.NET Core log support untuk kontainer Anda. Anda dapat menggunakan pengaturan konfigurasi dan nilai yang sama untuk kontainer yang Anda gunakan untuk ASP.NET Core.

Penyedia pembuatan log berikut didukung oleh kontainer:

Penyedia Tujuan
Konsol Penyedia log ASP.NET Console Core. Semua pengaturan konfigurasi ASP.NET dan nilai default untuk penyedia pembuatan log ini didukung.
Debug Penyedia log ASP.NET Debug Core. Semua pengaturan konfigurasi ASP.NET dan nilai default untuk penyedia pembuatan log ini didukung.
Hard Penyedia pencatatan log JSON. Penyedia pencatatan log ini menulis data log ke tempat output.

Perintah kontainer ini menyimpan informasi pencatatan dalam format JSON ke tempat output:

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

Perintah kontainer ini menunjukkan informasi debugging, dia awali dengan dbug, saat kontainer sedang berjalan:

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

Pencatatan log disk

Penyedia pencatatan log Disk mendukung setelan konfigurasi berikut ini:

Nama Jenis data Deskripsi
Format String Format output untuk file log.
Catatan: Nilai ini harus disetel json untuk mengaktifkan penyedia pembuatan log. Jika nilai ini ditentukan tanpa juga menentukan dudukan output saat instantiating kontainer, kesalahan terjadi.
MaxFileSize Bilangan bulat Ukuran maksimum, dalam megabyte (MB), dari file log. Ketika ukuran file log saat ini memenuhi atau melebihi nilai ini, file log baru dimulai oleh penyedia pembuatan log. Jika -1 dispesifikasikan, ukuran berkas log hanya dibatasi oleh ukuran berkas maksimum, jika ada, untuk keluaran mount. Nilai default adalah 1.

Untuk informasi selengkapnya tentang mengonfigurasi ASP.NET log Core, lihat Pengaturan konfigurasi file.

Pengaturan Pemasangan

Gunakan pemasangan ikat untuk membaca dan menulis data ke dan dari kontainer. Anda dapat menentukan pemasangan input atau pemasangan output dengan menentukan opsi --mount di perintah eksekusi docker.

Kontainer Azure AI Vision tidak menggunakan pemasangan input atau output untuk menyimpan data pelatihan atau layanan.

Sintaks yang tepat untuk lokasi pemasangan host bervariasi tergantung sistem operasi host. Selain itu, lokasi pemasangan komputer host mungkin tidak dapat diakses karena konflik antara izin yang digunakan oleh akun layanan Docker dan izin lokasi pemasangan host.

Opsional Nama Jenis data Deskripsi
Tidak diizinkan Input String Kontainer Azure AI Vision tidak menggunakan ini.
Opsional Output String Target dari pemasangan output. Nilai defaultnya adalah /output. Ini adalah lokasi log. Ini termasuk log kontainer.

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

Contoh perintah eksekusi docker

Contoh berikut menggunakan pengaturan konfigurasi untuk mengilustrasikan cara menulis dan menggunakan perintah docker run. Begitu dijalankan, kontainer akan terus berjalan sampai Anda menghentikan kontainer tersebut.

  • Karakter kelanjutan baris: Perintah Docker di bagian berikut menggunakan garis miring belakang, \, sebagai karakter kelanjutan baris. Ganti atau hapus ini berdasarkan persyaratan sistem operasi host Anda.
  • Urutan argumen: Jangan ubah urutan argumen kecuali Anda sangat familier dengan kontainer Docker.

Ganti {argument_name} dengan nilai Anda sendiri:

Placeholder Value Format atau contoh
{API_KEY} Kunci titik akhir sumber daya Visi di halaman kunci sumber daya. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} Nilai titik akhir penagihan tersedia di halaman gambaran umum sumber daya. Lihat mengumpulkan parameter yang diperlukan untuk contoh eksplisit.

Catatan

Sumber daya baru yang dibuat setelah 1 Juli 2019, akan menggunakan nama subdomain kustom. Untuk informasi selengkapnya dan daftar lengkap titik akhir regional, lihat Nama subdomain kustom untuk layanan Azure AI.

Penting

Opsi Eula, Billing, dan ApiKey harus ditentukan untuk menjalankan kontainer; jika tidak, kontainer tidak akan dimulai. Untuk mengetahui informasi lebih lanjut, lihat Penagihan. Nilai ApiKey adalah Kunci dari halaman kunci sumber daya Vision.

Contoh Docker Kontainer

Contoh Docker berikut adalah untuk kontainer Read OCR.

Contoh dasar

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}

Contoh pembuatan log

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

Langkah berikutnya