Konfigurieren von Docker-Containern für Language Understanding
Wichtig
LUIS wird am 1. Oktober 2025 eingestellt, und ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Es wird die Migration Ihrer LUIS-Anwendungen zu Conversational Language Understanding empfohlen, um fortgesetzte Produktunterstützung und mehrsprachige Funktionen zu erhalten.
Die Laufzeitumgebung für LUIS-Container (Language Understanding) wird über die Argumente des Befehls docker run
konfiguriert. LUIS verfügt über mehrere erforderliche Einstellungen sowie einige optionale Einstellungen. Es sind noch viele Beispiele für den Befehl verfügbar. Die containerspezifischen Einstellungen sind die für Eingabebereitstellung und Abrechnung.
Konfigurationseinstellungen
Dieser Container hat die folgenden Konfigurationseinstellungen:
Erforderlich | Einstellung | Zweck |
---|---|---|
Ja | ApiKey | Wird zum Nachverfolgen von Abrechnungsinformationen verwendet. |
Nein | ApplicationInsights | Ermöglicht das Hinzufügen von Unterstützung für Azure Application Insights-Telemetriedaten in Ihrem Container. |
Ja | Abrechnung | Gibt den Endpunkt-URI der Dienstressource in Azure an. |
Ja | Eula | Gibt an, dass Sie die Lizenz für den Container akzeptiert haben. |
Nein | Fluentd | Schreibt Protokoll- und optional auch Metrikdaten auf einen Fluentd-Server. |
Nein | HTTP-Proxy | Konfigurieren Sie einen HTTP-Proxy für ausgehende Anforderungen. |
Nein | Logging | Bietet Unterstützung für die ASP.NET Core-Protokollierung für Ihren Container. |
Ja | Mounts | Liest und schreibt Daten vom Hostcomputer in den Container und umgekehrt. |
Wichtig
Die Einstellungen ApiKey
, Billing
und Eula
werden gemeinsam verwendet, und Sie müssen gültige Werte für alle drei angeben, da der Container andernfalls nicht startet. Weitere Informationen zum Instanziieren eines Containers mithilfe dieser Konfigurationseinstellungen finden Sie unter Abrechnung.
ApiKey-Einstellung
Die ApiKey
-Einstellung gibt den Schlüssel der Azure-Ressourcen an, mit dem die Abrechnungsinformationen für den Container verfolgt werden. Sie müssen einen Wert für ApiKey angeben. Bei diesem Wert muss es sich um einen gültigen Schlüssel für die Azure KI Services-Ressource handeln, die für die Konfigurationseinstellung Billing
angegeben wurde.
Diese Einstellung finden Sie hier:
- Azure-Portal: Ressourcenverwaltung für Azure KI Services unter Schlüssel
- LUIS-Portal: Einstellungsseite für Schlüssel und Endpunkt.
Verwenden Sie nicht den Starter- oder Erstellungsschlüssel.
ApplicationInsights-Einstellung
Die ApplicationInsights
-Einstellung ermöglicht das Hinzufügen von Unterstützung für Azure Application Insights-Telemetriedaten in Ihrem Container. Application Insights ermöglicht eine tief greifende Überwachung Ihrer Container. Sie können ganz einfach die Verfügbarkeit, Leistung und Nutzung Ihrer Container überwachen. Außerdem können Sie schnell Fehler in Ihrem Container erkennen und diagnostizieren.
In der folgenden Tabelle werden die Konfigurationseinstellungen beschrieben, die unter dem Abschnitt ApplicationInsights
unterstützt werden.
Erforderlich | Name | Datentyp | BESCHREIBUNG |
---|---|---|---|
Nein | InstrumentationKey |
String | Der Instrumentierungsschlüssel der Application Insights-Instanz, an die Telemetriedaten für den Container gesendet werden. Weitere Informationen finden Sie unter Application Insights für ASP.NET Core. Beispiel: InstrumentationKey=123456789 |
Billing-Einstellung
Die Billing
-Einstellung gibt den Endpunkt-URI der Azure KI Services-Ressource in Azure an, der zum Messen der Abrechnungsinformationen für den Container verwendet wird. Sie müssen einen Wert für diese Konfigurationseinstellung angeben, und bei dem Wert muss es sich um einen gültigen URI-Endpunkt für eine Azure KI Services-Ressource in Azure handeln. Der Container meldet die Nutzung etwa alle 10 bis 15 Minuten.
Diese Einstellung finden Sie hier:
- Azure-Portal: Azure KI Services-Übersicht, Bezeichnung
Endpoint
- LUIS-Portal: Einstellungsseite für Schlüssel und Endpunkt als Teil des Endpunkt-URI.
Erforderlich | Name | Datentyp | Beschreibung |
---|---|---|---|
Ja | Billing |
Zeichenfolge | URI des Abrechnungsendpunkts. Weitere Informationen zum Erhalt eines Abrechnungs-URI finden Sie unter Erfassen erforderlicher Parameter. Weitere Informationen und eine vollständige Liste mit regionalen Endpunkten finden Sie unter Benutzerdefinierte Unterdomänennamen für Azure KI Services. |
Eula-Einstellung
Die Eula
-Einstellung gibt an, dass Sie die Lizenz für den Container akzeptiert haben. Sie müssen einen Wert für diese Konfigurationseinstellung angeben, und der Wert muss auf accept
festgelegt werden.
Erforderlich | Name | Datentyp | Beschreibung |
---|---|---|---|
Ja | Eula |
String | Zustimmung zur Lizenz Beispiel: Eula=accept |
Azure KI Services-Container werden im Rahmen Ihres Vertrags lizenziert, der Ihre Nutzung von Azure regelt. Wenn Sie über keine Vereinbarung zur Nutzung von Azure verfügen, bestätigen Sie, dass Ihre Vereinbarung zur Nutzung von Azure der Microsoft Online-Abonnementvertrag ist, der die Nutzungsbedingungen für Onlinedienste umfasst. Für Vorschauversionen stimmen Sie auch den ergänzenden Nutzungsbedingungen für Microsoft Azure-Vorschauversionen zu. Durch die Nutzung von Containern stimmen Sie diesen Bedingungen zu.
Fluentd-Einstellungen
Fluentd ist ein Open-Source-Datensammler für die einheitliche Protokollierung. Die Fluentd
-Einstellungen verwalten die Verbindung des Containers mit einem Fluentd-Server. Der Container enthält einen Fluentd-Protokollanbieter, der es Ihrem Container ermöglicht, Protokolldaten (und optional auch Metrikdaten) auf einen Fluentd-Server zu schreiben.
In der folgenden Tabelle werden die Konfigurationseinstellungen beschrieben, die unter dem Abschnitt Fluentd
unterstützt werden.
Name | Datentyp | Beschreibung |
---|---|---|
Host |
String | Die IP-Adresse oder der DNS-Hostname des Fluentd-Servers. |
Port |
Integer | Der Port des Fluentd-Servers. Standardwert: 24224 |
HeartbeatMs |
Integer | Das Heartbeatintervall in Millisekunden. Wurde bis zum Ablauf dieses Intervalls kein Ereignisdatenverkehr gesendet, wird ein Heartbeat an den Fluentd-Server gesendet. Standardwert: 60.000 Millisekunden (eine Minute) |
SendBufferSize |
Integer | Der für Sendevorgänge zugeordnete Netzwerkpufferspeicher (in Byte). Standardwert: 32.768 Byte (32 KB) |
TlsConnectionEstablishmentTimeoutMs |
Integer | Das Timeout (in Millisekunden) für die Herstellung einer SSL/TLS-Verbindung mit dem Fluentd-Server. Der Standardwert beträgt 10.000 Millisekunden (zehn Sekunden). Wenn UseTLS auf FALSE festgelegt ist, wird dieser Wert ignoriert. |
UseTLS |
Boolean | Gibt an, ob der Container für die Kommunikation mit dem Fluentd-Server SSL/TLS verwenden soll. Der Standardwert ist „FALSE“. |
Anmeldeinformationseinstellungen für HTTP-Proxy
Wenn Sie einen HTTP-Proxy für ausgehende Anforderungen konfigurieren müssen, verwenden Sie diese zwei Argumente:
Name | Datentyp | BESCHREIBUNG |
---|---|---|
HTTP_PROXY | string | Der zu verwendende Proxy, z. B. http://proxy:8888 .<proxy-url> |
HTTP_PROXY_CREDS | Zeichenfolge | Beliebige Anmeldeinformationen, die zur Authentifizierung bei dem Proxy erforderlich sind, z. B. username:password . Dieser Wert muss in Kleinbuchstaben eingegeben werden. |
<proxy-user> |
string | Der Benutzer für den Proxy. |
<proxy-password> |
string | Das Kennwort, das dem <proxy-user> für den Proxy zugeordnet ist. |
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-Einstellungen
Die Logging
-Einstellungen dienen zur Verwaltung der ASP.NET Core-Protokollierungsunterstützung für Ihren Container. Sie können für Ihren Container die gleichen Konfigurationseinstellungen und Werte verwenden wie für eine ASP.NET Core-Anwendung.
Der Container unterstützt folgende Protokollanbieter:
Anbieter | Zweck |
---|---|
Konsole | Der ASP.NET Core-Protokollierungsanbieter Console . Alle ASP.NET Core-Konfigurationseinstellungen und Standardwerte für diesen Protokollanbieter werden unterstützt. |
Debuggen | Der ASP.NET Core-Protokollierungsanbieter Debug . Alle ASP.NET Core-Konfigurationseinstellungen und Standardwerte für diesen Protokollanbieter werden unterstützt. |
Datenträger | Der JSON-Protokollanbieter. Dieser Protokollanbieter schreibt Protokolldaten in die Ausgabeeinbindung. |
Dieser Containerbefehl speichert Protokollierungsinformationen im JSON-Format für die Ausgabeeinbindung:
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
Dieser Containerbefehl zeigt Debuginformationen an, denen dbug
vorangestellt ist, während der Container ausgeführt wird:
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
Datenträgerprotokollierung
Der Protokollanbieter Disk
unterstützt folgende Konfigurationseinstellungen:
Name | Datentyp | Beschreibung |
---|---|---|
Format |
String | Das Ausgabeformat für Protokolldateien. Hinweis: Dieser Wert muss auf json festgelegt werden, um den Protokollanbieter zu aktivieren. Wenn dieser Wert bei der Containerinstanziierung angegeben wird, ohne eine Ausgabeeinbindung anzugeben, tritt ein Fehler auf. |
MaxFileSize |
Integer | Die maximale Größe einer Protokolldatei (in MB). Wenn die Größe der aktuellen Protokolldatei diesen Wert erreicht oder übersteigt, wird vom Protokollanbieter eine neue Protokolldatei erstellt. Bei Angabe von „-1“ wird die Größe der Protokolldatei nur durch die maximal zulässige Dateigröße für die Ausgabeeinbindung begrenzt (sofern vorhanden). Der Standardwert ist 1. |
Weitere Informationen zum Konfigurieren der ASP.NET Core-Protokollierungsunterstützung finden Sie unter Protokollierung in ASP.NET Core.
Einbindungseinstellungen
Verwenden Sie Bindungsbereitstellungen zum Lesen und Schreiben von Daten im Container. Sie können eine Eingabe- oder Ausgabebereitstellung über die Option --mount
im Befehl docker run angeben.
Der LUIS-Container verwendet die Eingabe- oder Ausgabebereitstellungen nicht zum Speichern von Trainings- oder Dienstdaten.
Die genaue Syntax für den Bereitstellungspunkt auf dem Host variiert je nach Betriebssystem des Hosts. Darüber hinaus ist es eventuell nicht möglich, auf den Bereitstellungspunkt auf dem Hostcomputer zuzugreifen, wenn ein Konflikt zwischen den vom Docker-Dienstkonto verwendeten Berechtigungen und den für den Bereitstellungspunkt auf dem Host verwendeten Berechtigungen besteht.
In der folgenden Tabelle werden die unterstützten Einstellungen beschrieben.
Erforderlich | Name | Datentyp | Beschreibung |
---|---|---|---|
Ja | Input |
String | Das Ziel der Eingabeeinbindung. Standardwert: /input . Dies ist der Speicherort der LUIS-Paketdateien. Beispiel: --mount type=bind,src=c:\input,target=/input |
Nein | Output |
String | Das Ziel der Ausgabeeinbindung. Standardwert: /output . Dies ist der Speicherort der Protokolle. Dazu gehören auch LUIS-Abfrageprotokolle und -Containerprotokolle. Beispiel: --mount type=bind,src=c:\output,target=/output |
Beispiele für den Befehl „docker run“
Die folgenden Beispiele verwenden die Konfigurationseinstellungen, um zu veranschaulichen, wie docker run
-Befehle geschrieben und verwendet werden. Nach dem Ausführen wird der Container so lange ausgeführt, bis Sie ihn beenden.
- In diesen Beispielen wird das Verzeichnis auf dem Laufwerk
C:
verwendet, um Berechtigungskonflikte in Windows zu vermeiden. Wenn Sie ein bestimmtes Verzeichnis als Eingabeverzeichnis verwenden möchten, müssen Sie dem Docker-Dienst möglicherweise die erforderliche Berechtigung gewähren. - Ändern Sie die Reihenfolge der Argumente nur, wenn Sie mit Docker-Containern sehr gut vertraut sind.
- Wenn Sie ein anderes Betriebssystem verwenden, verwenden Sie beim Einbinden die richtige Konsole/das richtige Terminal, die richtige Ordnersyntax und das richtige Zeilenfortsetzungszeichen für Ihr System. In diesen Beispielen wird von einer Windows-Konsole mit dem Zeilenfortsetzungszeichen
^
ausgegangen. Da der Container ein Linux-Betriebssystem ist, verwendet die Zieleinbindung eine linuxartige Ordnersyntax.
Ersetzen Sie {argument_name} durch Ihre eigenen Werte:
Platzhalter | Wert | Format oder Beispiel |
---|---|---|
{API_KEY} | Der Endpunktschlüssel der LUIS -Ressource auf der Azure LUIS -Schlüsselseite. |
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | Den Wert des Abrechnungsendpunkts finden Sie auf der Übersichtsseite von Azure LUIS . |
Explizite Beispiele finden Sie unter Erfassen erforderlicher Parameter. |
Hinweis
Neue Ressourcen, die nach dem 1. Juli 2019 erstellt wurden, verwenden benutzerdefinierte Unterdomänennamen. Weitere Informationen und eine vollständige Liste mit regionalen Endpunkten finden Sie unter Benutzerdefinierte Unterdomänennamen für Azure KI Services.
Wichtig
Die Optionen Eula
, Billing
und ApiKey
müssen angegeben werden, um den Container auszuführen, andernfalls wird der Container nicht gestartet. Weitere Informationen finden Sie unter Abrechnung.
Der Wert ApiKey ist der Schlüssel von der Seite „Schlüssel und Endpunkte“ im LUIS-Portal. Er ist auch auf der Seite mit den Schlüsseln der Azure Azure AI services
-Ressourcen verfügbar.
Einfaches Beispiel
Das folgende Beispiel enthält die wenigsten Argumente, die zum Ausführen des Containers erforderlich sind:
docker run --rm -it -p 5000:5000 --memory 4g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY}
Beispiel für ApplicationInsights
Im folgenden Beispiel wird das ApplicationInsights-Argument so festgelegt, dass während der Ausführung des Containers Telemetriedaten an Application Insights gesendet werden:
docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
InstrumentationKey={INSTRUMENTATION_KEY}
Beispiel für die Protokollierung
Der folgende Befehl legt in Logging:Console:LogLevel
die Protokollierungsstufe auf Information
fest.
docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
Logging:Console:LogLevel:Default=Information
Nächste Schritte
- Weitere Informationen finden Sie unter Installieren und Ausführen von Containern.
- Unter Problembehandlung finden Sie Informationen zum Beheben von Problemen im Zusammenhang mit LUIS-Funktionen.
- Verwenden weiterer Azure KI-Container