Configurar contêineres do Docker de OCR de leitura
Você pode configurar o ambiente de tempo de execução do contêiner do Azure AI Vision Read OCR usando os argumentos de docker run
comando. Este contêiner tem algumas configurações necessárias, juntamente com algumas configurações opcionais. Vários exemplos do comando estão disponíveis. As configurações específicas do contêiner são as configurações de faturamento.
Definições de configuração
O contêiner tem as seguintes definições de configuração:
Necessário | Definição | Purpose |
---|---|---|
Sim | ApiKey | Rastreia informações de faturamento. |
Não | ApplicationInsights | Permite adicionar suporte de telemetria do Azure Application Insights ao seu contêiner. |
Sim | Faturação | Especifica o URI do ponto de extremidade do recurso de serviço no Azure. |
Sim | Eula | Indica que você aceitou a licença para o contêiner. |
Não | Fluente | Grava dados de log e, opcionalmente, métricos em um servidor Fluentd. |
Não | HTTP Proxy | Configura um proxy HTTP para fazer solicitações de saída. |
Não | Registo | Fornece suporte de log ASP.NET Core para seu contêiner. |
Não | Montagens | Lê e grava dados do computador host para o contêiner e do contêiner de volta para o computador host. |
Importante
As ApiKey
configurações , Billing
, e são Eula
usadas juntas, e você deve fornecer valores válidos para todas as três, caso contrário, seu contêiner não será iniciado. Para obter mais informações sobre como usar essas definições de configuração para instanciar um contêiner, consulte Faturamento.
O contêiner também tem as seguintes definições de configuração específicas do contêiner:
Necessário | Definição | Propósito |
---|---|---|
Não | ReadEngineConfig:ResultExpirationPeriod |
Apenas contentores v2.0. Período de expiração do resultado em horas. O padrão é 48 horas. A configuração especifica quando o sistema deve limpar os resultados do reconhecimento. Por exemplo, se resultExpirationPeriod=1 , o sistema limpa o resultado do reconhecimento 1 hora após o processo. Se resultExpirationPeriod=0 , o sistema limpa o resultado do reconhecimento depois que o resultado é recuperado. |
Não | Cache:Redis |
Apenas contentores v2.0. Permite o armazenamento Redis para armazenar resultados. Um cache é necessário se vários contêineres OCR de leitura forem colocados atrás de um balanceador de carga. |
Não | Queue:RabbitMQ |
Apenas contentores v2.0. Habilita o RabbitMQ para despachar tarefas. A configuração é útil quando vários contêineres OCR de leitura são colocados atrás de um balanceador de carga. |
Não | Queue:Azure:QueueVisibilityTimeoutInMilliseconds |
Apenas contentores v3.x. O tempo para uma mensagem ficar invisível quando outro trabalhador a está processando. |
Não | Storage::DocumentStore::MongoDB |
Apenas contentores v2.0. Permite o MongoDB para armazenamento permanente de resultados. |
Não | Storage:ObjectStore:AzureBlob:ConnectionString |
Apenas contentores v3.x. Cadeia de conexão de armazenamento de blob do Azure. |
Não | Storage:TimeToLiveInDays |
Apenas contentores v3.x. Período de expiração do resultado em dias. A configuração especifica quando o sistema deve limpar os resultados do reconhecimento. O padrão é dois dias, o que significa que qualquer resultado que esteja ativo por mais tempo do que esse período não tem garantia de ser recuperado com sucesso. O valor é inteiro e deve ser entre um dia a sete dias. |
Não | StorageTimeToLiveInMinutes |
v3.2-model-2021-09-30-preview e novos contêineres. Período de expiração do resultado em minutos. A configuração especifica quando o sistema deve limpar os resultados do reconhecimento. O padrão é dois dias (2.880 minutos), o que significa que qualquer resultado que esteja ativo por mais tempo do que esse período não tem garantia de ser recuperado com sucesso. O valor é inteiro e deve estar entre 60 minutos a sete dias (10080 minutos). |
Não | Task:MaxRunningTimeSpanInMinutes |
Apenas contentores v3.x. Tempo máximo de execução para uma única solicitação. O padrão é 60 minutos. |
Não | EnableSyncNTPServer |
Somente contêineres v3.x, exceto para v3.2-model-2021-09-30-preview e contêineres mais recentes. Habilita o mecanismo de sincronização do servidor NTP, que garante a sincronização entre a hora do sistema e o tempo de execução esperado da tarefa. Observe que isso requer tráfego de rede externo. A predefinição é true . |
Não | NTPServerAddress |
Somente contêineres v3.x, exceto para v3.2-model-2021-09-30-preview e contêineres mais recentes. Servidor NTP para a sincronização de tempo. A predefinição é time.windows.com . |
Não | Mounts:Shared |
Apenas contentores v3.x. Pasta local para armazenar o resultado do reconhecimento. A predefinição é /share . Para executar contêiner sem usar o armazenamento de blob do Azure, recomendamos montar um volume nessa pasta para garantir que você tenha espaço suficiente para os resultados de reconhecimento. |
Definição de configuração ApiKey
A ApiKey
configuração especifica a chave de recurso Visão usada para controlar as informações de faturamento do contêiner. Você deve especificar um valor para ApiKey e o valor deve ser uma chave válida para o recurso Vision especificado para a definição de Billing
configuração.
Essa configuração pode ser encontrada no seguinte local:
- Portal do Azure: Gerenciamento de Recursos de Serviços de IA do Azure, em Chaves
Configuração do ApplicationInsights
A ApplicationInsights
configuração permite que você adicione suporte à telemetria do Azure Application Insights ao seu contêiner. O Application Insights fornece monitoramento detalhado do seu contêiner. Você pode facilmente monitorar seu contêiner quanto à disponibilidade, desempenho e uso. Você também pode identificar e diagnosticar rapidamente erros em seu contêiner.
A tabela a seguir descreve as definições de configuração suportadas ApplicationInsights
na seção .
Necessário | Name | Tipo de dados | Description |
---|---|---|---|
Não | InstrumentationKey |
String | A chave de instrumentação da instância do Application Insights para a qual os dados de telemetria do contêiner são enviados. Para obter mais informações, consulte Application Insights for ASP.NET Core. Exemplo: InstrumentationKey=123456789 |
Definição de configuração de faturação
A Billing
configuração especifica o URI do ponto de extremidade do recurso de serviços de IA do Azure no Azure usado para medir as informações de cobrança do contêiner. Você deve especificar um valor para essa definição de configuração e o valor deve ser um URI de ponto de extremidade válido para um recurso de serviços de IA do Azure no Azure. O contêiner relata o uso a cada 10 a 15 minutos.
Essa configuração pode ser encontrada no seguinte local:
- Portal do Azure: Visão geral dos serviços de IA do Azure, rotulada
Endpoint
Lembre-se de adicionar o vision/<version>
roteamento ao URI do ponto de extremidade, conforme mostrado na tabela a seguir.
Necessário | Name | Tipo de dados | Description |
---|---|---|---|
Sim | Billing |
String | URI do ponto de extremidade de faturamento Exemplo: Billing=https://westcentralus.api.cognitive.microsoft.com/vision/v3.2 |
Configuração do EULA
A Eula
configuração indica que você aceitou a licença para o contêiner. Você deve especificar um valor para essa definição de configuração e o valor deve ser definido como accept
.
Necessário | Name | Tipo de dados | Description |
---|---|---|---|
Sim | Eula |
String | Aceitação da licença Exemplo: Eula=accept |
Os contêineres de serviços de IA do Azure são licenciados sob seu contrato que rege seu uso do Azure. Se não tiver um contrato existente que regule a sua utilização do Azure, concorda que o seu contrato que rege a utilização do Azure é o Contrato de Subscrição Online da Microsoft, que incorpora os Termos dos Serviços Online. Para visualizações, você também concorda com os Termos de Uso Suplementares para Visualizações do Microsoft Azure. Ao usar o contêiner, você concorda com estes termos.
Configurações fluentes
Fluentd é um coletor de dados de código aberto para registro em log unificado. As Fluentd
configurações gerenciam a conexão do contêiner com um servidor Fluentd . O contêiner inclui um provedor de registro em log Fluentd, que permite que seu contêiner grave logs e, opcionalmente, dados métricos em um servidor Fluentd.
A tabela a seguir descreve as definições de configuração suportadas Fluentd
na seção .
Name | Tipo de dados | Description |
---|---|---|
Host |
String | O endereço IP ou nome de host DNS do servidor Fluentd. |
Port |
Número inteiro | A porta do servidor Fluentd. O valor padrão é 24224. |
HeartbeatMs |
Número inteiro | O intervalo de batimento cardíaco, em milissegundos. Se nenhum tráfego de eventos tiver sido enviado antes que esse intervalo expire, uma pulsação será enviada para o servidor Fluentd. O valor padrão é 60000 milissegundos (1 minuto). |
SendBufferSize |
Número inteiro | O espaço de buffer de rede, em bytes, alocado para operações de envio. O valor padrão é 32768 bytes (32 kilobytes). |
TlsConnectionEstablishmentTimeoutMs |
Número inteiro | O tempo limite, em milissegundos, para estabelecer uma conexão SSL/TLS com o servidor Fluentd. O valor padrão é 10000 milissegundos (10 segundos). Se UseTLS estiver definido como false, esse valor será ignorado. |
UseTLS |
Boolean | Indica se o contêiner deve usar SSL/TLS para se comunicar com o servidor Fluentd. O valor predefinido é false. |
Configurações de credenciais de proxy HTTP
Se você precisar configurar um proxy HTTP para fazer solicitações de saída, use estes dois argumentos:
Name | Tipo de dados | Description |
---|---|---|
HTTP_PROXY | string | O proxy a ser usado, por exemplo, http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | string | Quaisquer credenciais necessárias para autenticar no proxy, por exemplo, username:password . Esse valor deve estar em minúsculas. |
<proxy-user> |
string | O usuário para o proxy. |
<proxy-password> |
string | A senha associada ao <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> \
Definições de registo
As Logging
configurações gerenciam ASP.NET suporte de log principal para seu contêiner. Você pode usar as mesmas definições de configuração e valores para seu contêiner que você usa para um aplicativo ASP.NET Core.
Os seguintes provedores de log são suportados pelo contêiner:
Provider | Propósito |
---|---|
Consola | O provedor de log ASP.NET Core Console . Todas as definições de configuração do ASP.NET Core e os valores padrão para este provedor de log são suportados. |
Debug | O provedor de log ASP.NET Core Debug . Todas as definições de configuração do ASP.NET Core e os valores padrão para este provedor de log são suportados. |
Disk | O provedor de log JSON. Esse provedor de log grava dados de log na montagem de saída. |
Este comando container armazena informações de log no formato JSON para a montagem de saída:
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
Este comando container mostra informações de depuração, prefixadas com dbug
, enquanto o contêiner está em execução:
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
Registo de discos
O Disk
provedor de log suporta as seguintes definições de configuração:
Name | Tipo de dados | Description |
---|---|---|
Format |
String | O formato de saída para arquivos de log. Nota: Esse valor deve ser definido para json habilitar o provedor de log. Se esse valor for especificado sem especificar também uma montagem de saída ao instanciar um contêiner, ocorrerá um erro. |
MaxFileSize |
Número inteiro | O tamanho máximo, em megabytes (MB), de um arquivo de log. Quando o tamanho do arquivo de log atual atende ou excede esse valor, um novo arquivo de log é iniciado pelo provedor de log. Se -1 for especificado, o tamanho do arquivo de log será limitado apenas pelo tamanho máximo do arquivo, se houver, para a montagem de saída. O valor predefinido é 1. |
Para obter mais informações sobre como configurar ASP.NET suporte ao log principal, consulte Configuração do arquivo de configurações.
Configurações de montagem
Use montagens de ligação para ler e gravar dados de e para o contêiner. Você pode especificar uma montagem de entrada ou de saída especificando a --mount
opção no comando docker run .
Os contêineres do Azure AI Vision não usam montagens de entrada ou saída para armazenar dados de treinamento ou serviço.
A sintaxe exata do local de montagem do host varia dependendo do sistema operacional do host. Além disso, o local de montagem do computador host pode não estar acessível devido a um conflito entre as permissões usadas pela conta de serviço do Docker e as permissões de local de montagem do host.
Opcional | Name | Tipo de dados | Description |
---|---|---|---|
Não permitido | Input |
String | Os contêineres do Azure AI Vision não usam esse campo. |
Opcional | Output |
String | O alvo da montagem de saída. O valor predefinido é /output . Este é o local dos logs. Isso inclui logs de contêiner. Exemplo: --mount type=bind,src=c:\output,target=/output |
Exemplo de comandos docker
Os exemplos a seguir usam as definições de configuração para ilustrar como escrever e usar docker run
comandos. Uma vez em execução, o contêiner continua a ser executado até que você o pare .
- Caractere de continuação de linha: Os comandos do Docker nas seções a seguir usam a barra invertida,
\
, como um caractere de continuação de linha. Substitua ou remova isso com base nos requisitos do sistema operacional do host. - Ordem dos argumentos: não altere a ordem dos argumentos, a menos que esteja familiarizado com os contêineres do Docker.
Substitua {argument_name} pelos seus próprios valores:
Marcador de Posição | Value | Formato ou exemplo |
---|---|---|
{API_KEY} | A chave do ponto de extremidade do recurso Visão na página de chaves de recurso. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | O valor do ponto de extremidade de cobrança está disponível na página de visão geral do recurso. | Consulte reunir parâmetros necessários para obter exemplos explícitos. |
Nota
Novos recursos criados após 1º de julho de 2019 usarão nomes de subdomínio personalizados. Para obter mais informações e uma lista completa de pontos de extremidade regionais, consulte Nomes de subdomínio personalizados para serviços de IA do Azure.
Importante
As Eula
opções , Billing
e devem ApiKey
ser especificadas para executar o contêiner, caso contrário, o contêiner não será iniciado. Para obter mais informações, consulte Faturamento.
O valor ApiKey é a chave da página Chaves de recurso Visão.
Exemplos de Docker de contêiner
Os exemplos do Docker a seguir são para o contêiner Read OCR.
Exemplo básico
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}
Exemplo de registo
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
Próximos passos
- Consulte Como instalar e executar contêineres.