Translator Docker 컨테이너 구성
Azure AI 서비스는 각 컨테이너에 공통 구성 프레임워크를 제공합니다. Translator 컨테이너를 쉽게 구성하고, 강력한 클라우드 기능 및 에지 위치에 맞게 최적화된 Translator 애플리케이션 아키텍처를 빌드할 수 있습니다.
Translator 컨테이너 런타임 환경은 docker run
명령 인수를 사용하여 구성됩니다. 이 컨테이너에는 필수 설정과 선택 사항 설정이 모두 있습니다. 필수 컨테이너별 설정은 청구 설정입니다.
구성 설정
컨테이너에는 다음 구성 설정이 있습니다.
Required | 설정 | 목적 |
---|---|---|
예 | ApiKey | 청구 정보를 추적합니다. |
아니요 | ApplicationInsights | 컨테이너에 Azure Application Insights 원격 분석 지원을 추가할 수 있습니다. |
예 | Billing | Azure에서 서비스 리소스의 엔드포인트 URI를 지정합니다. |
예 | EULA | 컨테이너에 대한 EULA(최종 사용자 라이선스 계약)에 동의했음을 나타냅니다. |
아니요 | Fluentd | 로그 및 메트릭 데이터(선택 사항)를 Fluentd 서버에 씁니다. |
아니요 | HTTP 프록시 | 아웃바운드 요청을 만들기 위한 HTTP 프록시를 구성합니다. |
아니요 | 로깅 | 컨테이너에 대한 ASP.NET Core 로깅 지원을 제공합니다. |
예 | Mounts | 호스트 컴퓨터에서 컨테이너로, 컨테이너에서 호스트 컴퓨터로 데이터를 읽고 씁니다. |
Important
ApiKey, Billing 및 EULA 설정은 함께 사용되며, 세 가지 설정 모두에 대해 유효한 값을 제공해야 합니다. 그렇지 않으면 컨테이너는 시작되지 않습니다. 이러한 구성 설정을 사용하여 컨테이너를 인스턴스화하는 방법에 대한 자세한 내용은 다음을 참조하세요.
ApiKey 구성 설정
ApiKey
설정은 컨테이너에 대한 청구 정보를 추적하는 데 사용되는 Azure 리소스 키를 지정합니다. ApiKey에 대한 값을 지정해야 하며 이 값은 Billing
구성 설정에 대해 지정된 Translator 리소스에 대한 유효한 키여야 합니다.
이 설정은 다음 위치에서 찾을 수 있습니다.
- Azure Portal: 키 아래의 Translator 리소스 관리
ApplicationInsights 설정
ApplicationInsights
설정으로 Azure Application Insights 원격 분석 지원을 컨테이너에 추가할 수 있습니다. Application Insights는 컨테이너의 심층 모니터링을 제공합니다. 컨테이너의 가용성, 성능 및 사용량을 쉽게 모니터링할 수 있습니다. 또한 컨테이너의 오류를 빠르게 식별하고 진단할 수 있습니다.
다음 표에서는 ApplicationInsights
섹션에서 지원되는 구성 설정을 설명합니다.
Required | 이름 | 데이터 유형 | 설명 |
---|---|---|---|
아니요 | InstrumentationKey |
문자열 | 컨테이너에 대한 원격 분석 데이터가 전송되는 Application Insights 인스턴스의 계측 키입니다. 자세한 내용은 ASP.NET Core용 Application Insights를 참조하세요. 예시: InstrumentationKey=123456789 |
청구 구성 설정
Billing
설정은 컨테이너에 대한 청구 정보를 측정하는 데 사용되는 Azure의 Translator 리소스에 대한 엔드포인트 URI를 지정합니다. 이 구성 설정에 대한 값을 지정해야 하며, 이 값은 Azure의 Translator 리소스에 대한 유효한 엔드포인트 URI여야 합니다. 컨테이너는 약 10 ~ 15분마다 사용량을 보고합니다.
이 설정은 다음 위치에서 찾을 수 있습니다.
- Azure Portal: Translator 개요 페이지, 레이블이 지정된
Endpoint
Required | 이름 | 데이터 유형 | 설명 |
---|---|---|---|
예 | Billing |
문자열 | 청구 엔드포인트 URI입니다. 청구 URI 가져오기에 대한 자세한 정보는 필수 매개 변수 수집을 참조하세요. 자세한 내용과 지역 엔드포인트의 전체 목록은 Azure AI 서비스에 대한 사용자 지정 하위 도메인 이름을 참조하세요. |
EULA 설정
Eula
설정은 컨테이너에 대한 라이선스에 동의했음을 나타냅니다. 이 구성 설정에 대한 값을 지정해야 하며, 이 값은 accept
로 설정해야 합니다.
Required | 이름 | 데이터 유형 | 설명 |
---|---|---|---|
예 | Eula |
문자열 | 라이선스 승인 예시: Eula=accept |
Azure AI 서비스 컨테이너는 Azure 사용에 관한 계약에 따라 라이선스가 부여됩니다. Azure 사용에 관한 기존 계약이 없으면 Azure 사용에 관한 계약은 온라인 서비스 사용 약관을 포함한 Microsoft 온라인 정기가입 계약임에 동의합니다. 미리 보기의 경우 Microsoft Azure 미리 보기에 대한 추가 사용 약관에도 동의합니다. 컨테이너를 사용하여 이 사용 약관에 동의합니다.
Fluentd 설정
Fluentd는 통합된 로깅에 대한 오픈 소스 데이터 수집기입니다. Fluentd
설정은 Fluentd 서버에 컨테이너의 연결을 관리합니다. 컨테이너에는 Fluentd 로깅 공급자가 포함되어 있어 컨테이너에서 로그 및 메트릭 데이터(선택 사항)를 Fluentd 서버에 쓸 수 있습니다.
다음 표에서는 Fluentd
섹션에서 지원되는 구성 설정을 설명합니다.
이름 | 데이터 유형 | 설명 |
---|---|---|
Host |
문자열 | Fluentd 서버의 IP 주소 또는 DNS 호스트 이름입니다. |
Port |
정수 | Fluentd 서버의 포트입니다. 기본값은 24224입니다. |
HeartbeatMs |
정수 | 하트비트 간격(밀리초)입니다. 이 간격이 만료되기 전에 전송된 이벤트 트래픽이 없을 경우 하트 비트는 Fluentd 서버로 전송됩니다. 기본값은 60000밀리초(1분)입니다. |
SendBufferSize |
정수 | 전송 작업에 할당된 네트워크 버퍼 공간(바이트)입니다. 기본값은 32768바이트(32킬로바이트)입니다. |
TlsConnectionEstablishmentTimeoutMs |
정수 | Fluentd 서버와 SSL/TLS 연결을 설정하기 위한 시간 제한(밀리초)입니다. 기본값은 10000밀리초(10초)입니다.UseTLS 가 false로 설정되어 있는 경우 이 값은 무시됩니다. |
UseTLS |
부울 | 컨테이너가 Fluentd 서버와 통신하기 위해 SSL/TLS를 사용해야 하는지 여부를 나타냅니다. 기본값은 false입니다. |
HTTP/HTTPS 프록시 자격 증명 설정
아웃바운드 요청을 만들기 위한 HTTP 프록시를 구성해야 하는 경우 다음 두 인수를 사용합니다.
이름 | 데이터 유형 | 설명 |
---|---|---|
HTTPS_PROXY | string | 프록시 URL(예: https://proxy:8888 ) |
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> \
HTTPS_PROXY=<proxy-url>
로깅 설정
변환기 컨테이너는 다음 로깅 공급자를 지원합니다.
공급자 | 목적 |
---|---|
콘솔 | ASP.NET Core Console 로깅 공급자입니다. 이 로깅 공급자에 대한 모든 ASP.NET Core 구성 설정 및 기본값이 지원됩니다. |
디버그 | ASP.NET Core Debug 로깅 공급자입니다. 이 로깅 공급자에 대한 모든 ASP.NET Core 구성 설정 및 기본값이 지원됩니다. |
디스크 | JSON 로깅 공급자입니다. 이 로깅 공급자는 출력 탑재에 로그 데이터를 씁니다. |
Logging
설정은 컨테이너에 대한 ASP.NET Core 로깅 지원을 관리합니다. ASP.NET Core 애플리케이션에 사용하는 컨테이너에 대한 동일한 구성 설정 및 값을 사용할 수 있습니다.Logging.LogLevel
은 기록할 최소 수준을 지정합니다.LogLevel
의 심각도 범위는 0~6입니다.LogLevel
이 지정되면 지정된 수준 이상의 메시지에 대해 로깅이 사용하도록 설정됩니다. 추적 = 0, 디버그 = 1, 정보 = 2, 경고 = 3, 오류 = 4, 위험 = 5, 없음 = 6.현재 Translator 컨테이너에는 경고 LogLevel 이상에서 로그를 제한하는 기능이 있습니다.
로깅을 위한 일반적인 명령 구문은 다음과 같습니다.
-Logging:LogLevel:{Provider}={FilterSpecs}
다음 명령은 LogLevel
을 경고로 설정하고 로깅 공급자를 콘솔로 설정하여 Docker 컨테이너를 시작합니다. 이 명령은 애플리케이션 흐름 중에 콘솔에 대한 비정상적이거나 예기치 못한 이벤트를 인쇄합니다.
docker run --rm -it -p 5000:5000
-v /mnt/d/TranslatorContainer:/usr/local/models \
-e apikey={API_KEY} \
-e eula=accept \
-e billing={ENDPOINT_URI} \
-e Languages=en,fr,es,ar,ru \
-e Logging:LogLevel:Console="Warning"
mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest
디스크 로깅
Disk
로깅 공급자는 다음과 같은 구성 설정을 지원합니다.
이름 | 데이터 유형 | 설명 |
---|---|---|
Format |
문자열 | 로그 파일에 대한 출력 형식입니다. 참고: 로깅 공급자를 사용 설정하려면 이 값을 json 으로 설정해야 합니다. 또한 컨테이너를 인스턴스화하는 동안 출력 탑재를 지정하지 않고 이 값이 지정된 경우에는 오류가 발생합니다. |
MaxFileSize |
정수 | 로그 파일의 최대 크기(MB)입니다. 현재 로그 파일의 크기가 이 값을 충족하거나 초과하면 로깅 공급자는 새 로그 파일을 시작합니다. -1을 지정하면 로그 파일의 크기는 출력 탑재(있는 경우)에 대한 최대 파일 크기에 의해서만 제한됩니다. 기본값은 1입니다. |
디스크 공급자 예
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type-bind,src=/home/azureuser/output,target=/output \
-e apikey={API_KEY} \
-e eula=accept \
-e billing={ENDPOINT_URI} \
-e Languages=en,fr,es,ar,ru \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output
ASP.NET Core 로깅 지원 구성에 대한 자세한 내용은 설정 파일 구성을 참조하세요.
탑재 설정
바인딩 탑재를 사용하여 컨테이너에서 또는 컨테이너로 읽고 씁니다. Docker 실행 명령의 --mount
옵션을 지정하여 입력 탑재 또는 출력 탑재를 지정할 수 있습니다.