Verwenden von Containern für den Speech-Dienst mit Kubernetes und Helm

Eine Möglichkeit zur lokalen Verwaltung Ihrer Speech-Container ist die Verwendung von Kubernetes und Helm. Hier erfahren Sie, wie Sie ein Kubernetes-Paket erstellen und Kubernetes und Helm verwenden, um die Containerimages für Spracherkennung und Sprachsynthese zu definieren. Dieses Paket wird lokal für einen Kubernetes-Cluster bereitgestellt. Schließlich erfahren Sie, wie Sie die bereitgestellten Dienste und verschiedene Konfigurationsoptionen testen können. Weitere Informationen zum Ausführen von Docker-Containern ohne Kubernetes-Orchestrierung finden Sie unter Installieren und Ausführen von Containern für den Speech-Dienst.

Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein, damit Speech-Container lokal verwendet werden können:

Erforderlich Zweck
Azure-Konto Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Zugriff auf die Containerregistrierung Kubernetes benötigt Zugriff auf die Containerregistrierung, um die Docker-Images in den Cluster pullen zu können.
Kubernetes-Befehlszeilenschnittstelle Mithilfe der Kubernetes-Befehlszeilenschnittstelle werden die gemeinsam genutzten Anmeldeinformationen aus der Containerregistrierung verwaltet. Kubernetes wird außerdem vor Helm (Kubernetes-Paket-Manager) benötigt.
Helm-Befehlszeilenschnittstelle Installieren Sie die Helm-Befehlszeilenschnittstelle. Sie wird zum Installieren eines Helm-Charts (Containerpaketdefinition) verwendet.
Speech-Ressource Um diese Container zu verwenden, benötigen Sie Folgendes:

Eine Azure-Ressource vom Typ Speech, um den entsprechenden Abrechnungsschlüssel und den URI des Abrechnungsendpunkts zu erhalten. Beide Werte stehen im Azure-Portal auf der Übersichts- und auf der Schlüsselseite für Speech zur Verfügung und werden zum Starten des Containers benötigt.

{API_KEY} : Der Ressourcenschlüssel.

{ENDPOINT_URI} : Der Endpunkt-URI. Beispiel: https://eastus.api.cognitive.microsoft.com/sts/v1.0

Orientieren Sie sich an den Details unter Der Hostcomputer des Artikels „Installieren und Ausführen von Containern für den Speech-Dienst“. Dieses Helm-Chart berechnet automatisch die CPU- und Arbeitsspeicheranforderungen auf der Grundlage der vom Benutzer angegebenen Anzahl von Decodierungen (gleichzeitige Anforderungen). Außerdem wird es entsprechend angepasst, wenn Optimierungen für die Audio-/Texteingabe als enabled konfiguriert sind. Standardmäßig verwendet das Helm-Chart zwei gleichzeitige Anforderungen und keine Optimierung.

Dienst CPU/Container Arbeitsspeicher/Container
Spracherkennung Für einen einzelnen Decoder sind mindestens 1.150 Millicores erforderlich. Wenn optimizedForAudioFile aktiviert ist, werden 1.950 Millicores benötigt. (Standard: zwei Decoder) Erforderlich: 2 GB
Eingeschränkt: 4 GB
Sprachsynthese Pro gleichzeitiger Anforderung sind mindestens 500 Millicores erforderlich. Wenn optimizeForTurboMode aktiviert ist, werden 1.000 Millicores benötigt. (Standard: zwei gleichzeitige Anforderungen) Erforderlich: 1 GB
Eingeschränkt: 2 GB

Herstellen einer Verbindung mit dem Kubernetes-Cluster

Für den Hostcomputer muss ein verfügbarer Kubernetes-Cluster vorhanden sein. Das Konzept der Bereitstellung eines Kubernetes-Clusters für einen Hostcomputer wird im Tutorial Bereitstellen eines Azure Kubernetes Service-Clusters (AKS) erläutert.

Konfigurieren von Helm-Chart-Werten für die Bereitstellung

Im Helm-Hub von Microsoft finden Sie alle öffentlich verfügbaren Helm-Charts von Microsoft. Im Microsoft Helm Hub steht das lokale Azure KI Speech-Diagramm zur Verfügung. Das lokale Azure KI Speech-Diagramm ist das Diagramm, das wir installieren. Zunächst müssen wir jedoch die Datei config-values.yaml mit expliziten Konfigurationen erstellen. Als Erstes fügen wir das Microsoft-Repository unserer Helm-Instanz hinzu:

helm repo add microsoft https://microsoft.github.io/charts/repo

Danach konfigurieren wir unsere Helm-Chart-Werte. Kopieren Sie den folgenden YAML-Code, und fügen Sie ihn in eine Datei mit dem Namen config-values.yaml ein. Weitere Informationen zum Anpassen des lokalen Helm-Diagramms von Azure KI Speech finden Sie unter Anpassen von Helm-Diagrammen. Ersetzen Sie die Kommentare # {ENDPOINT_URI} und # {API_KEY} durch Ihre eigenen Werte.

# These settings are deployment specific and users can provide customizations
# speech to text configurations
speechToText:
  enabled: true
  numberOfConcurrentRequest: 3
  optimizeForAudioFile: true
  image:
    registry: mcr.microsoft.com
    repository: azure-cognitive-services/speechservices/speech-to-text
    tag: latest
    pullSecrets:
      - mcr # Or an existing secret
    args:
      eula: accept
      billing: # {ENDPOINT_URI}
      apikey: # {API_KEY}

# text to speech configurations
textToSpeech:
  enabled: true
  numberOfConcurrentRequest: 3
  optimizeForTurboMode: true
  image:
    registry: mcr.microsoft.com
    repository: azure-cognitive-services/speechservices/neural-text-to-speech
    tag: latest
    pullSecrets:
      - mcr # Or an existing secret
    args:
      eula: accept
      billing: # {ENDPOINT_URI}
      apikey: # {API_KEY}

Wichtig

Ohne Angabe der Werte billing und apikey laufen die Dienste nach 15 Minuten ab. Dies führt dann dazu, dass die Überprüfung nicht erfolgreich ist, da die Dienste nicht zur Verfügung stehen.

Das Kubernetes-Paket (Helm-Chart)

Das Helm-Chart enthält die Konfiguration, die angibt, welche Docker-Images aus der Containerregistrierung mcr.microsoft.com gepullt werden sollen.

Bei einem Helm-Chart handelt es sich um eine Sammlung von Dateien, die eine zusammengehörige Gruppe von Kubernetes-Ressourcen beschreiben. Ein einzelnes Chart kann sowohl für eine einfache Bereitstellung (beispielsweise eines Memcached-Pods) als auch für komplexere Bereitstellungen (etwa eines vollständigen Web-App-Stapels mit HTTP-Servern, Datenbanken, Caches und Ähnlichem) verwendet werden.

Die bereitgestellten Helm-Charts pullen die Docker-Images des Speech-Diensts (Sprachsynthese- und Spracherkennungsdienst) aus der Containerregistrierung mcr.microsoft.com.

Installieren des Helm-Charts für den Kubernetes-Cluster

Führen Sie den Befehl helm install aus, um das Helm-Chart zu installieren, wobei Sie <config-values.yaml> durch das entsprechende Pfad- und Dateinamenargument ersetzen. Das Helm-Chart microsoft/cognitive-services-speech-onpremise ist im Microsoft Helm Hub verfügbar.

helm install onprem-speech microsoft/cognitive-services-speech-onpremise \
    --version 0.1.1 \
    --values <config-values.yaml> 

Nach einer erfolgreichen Installation kann die Ausgabe beispielsweise wie folgt aussehen:

NAME:   onprem-speech
LAST DEPLOYED: Tue Jul  2 12:51:42 2019
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Pod(related)
NAME                             READY  STATUS             RESTARTS  AGE
speech-to-text-7664f5f465-87w2d  0/1    Pending            0         0s
speech-to-text-7664f5f465-klbr8  0/1    ContainerCreating  0         0s
neural-text-to-speech-56f8fb685b-4jtzh  0/1    ContainerCreating  0         0s
neural-text-to-speech-56f8fb685b-frwxf  0/1    Pending            0         0s

==> v1/Service
NAME            TYPE          CLUSTER-IP    EXTERNAL-IP  PORT(S)       AGE
speech-to-text  LoadBalancer  10.0.252.106  <pending>    80:31811/TCP  1s
neural-text-to-speech  LoadBalancer  10.0.125.187  <pending>    80:31247/TCP  0s

==> v1beta1/PodDisruptionBudget
NAME                                MIN AVAILABLE  MAX UNAVAILABLE  ALLOWED DISRUPTIONS  AGE
speech-to-text-poddisruptionbudget  N/A            20%              0                    1s
neural-text-to-speech-poddisruptionbudget  N/A            20%              0                    1s

==> v1beta2/Deployment
NAME            READY  UP-TO-DATE  AVAILABLE  AGE
speech-to-text  0/2    2           0          0s
neural-text-to-speech  0/2    2           0          0s

==> v2beta2/HorizontalPodAutoscaler
NAME                       REFERENCE                  TARGETS        MINPODS  MAXPODS  REPLICAS  AGE
speech-to-text-autoscaler  Deployment/speech-to-text  <unknown>/50%  2        10       0         0s
neural-text-to-speech-autoscaler  Deployment/neural-text-to-speech  <unknown>/50%  2        10       0         0s


NOTES:
cognitive-services-speech-onpremise has been installed!
Release is named onprem-speech

Der Kubernetes-Bereitstellungsvorgang kann mehrere Minuten dauern. Vergewissern Sie sich durch Ausführen des folgenden Befehls, dass die Pods und Dienste ordnungsgemäß bereitgestellt wurden und verfügbar sind:

kubectl get all

Die Ausgabe sollte in etwa wie folgt aussehen:

NAME                                  READY     STATUS    RESTARTS   AGE
pod/speech-to-text-7664f5f465-87w2d   1/1       Running   0          34m
pod/speech-to-text-7664f5f465-klbr8   1/1       Running   0          34m
pod/neural-text-to-speech-56f8fb685b-4jtzh   1/1       Running   0          34m
pod/neural-text-to-speech-56f8fb685b-frwxf   1/1       Running   0          34m

NAME                     TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
service/kubernetes       ClusterIP      10.0.0.1       <none>           443/TCP        3h
service/speech-to-text   LoadBalancer   10.0.252.106   52.162.123.151   80:31811/TCP   34m
service/neural-text-to-speech   LoadBalancer   10.0.125.187   65.52.233.162    80:31247/TCP   34m

NAME                             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/speech-to-text   2         2         2            2           34m
deployment.apps/neural-text-to-speech   2         2         2            2           34m

NAME                                        DESIRED   CURRENT   READY     AGE
replicaset.apps/speech-to-text-7664f5f465   2         2         2         34m
replicaset.apps/neural-text-to-speech-56f8fb685b   2         2         2         34m

NAME                                                            REFERENCE                   TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
horizontalpodautoscaler.autoscaling/speech-to-text-autoscaler   Deployment/speech-to-text   1%/50%    2         10        2          34m
horizontalpodautoscaler.autoscaling/neural-text-to-speech-autoscaler   Deployment/neural-text-to-speech   0%/50%    2         10        2          34m

Überprüfen der Helm-Bereitstellung mit Helm-Tests

Die installierten Helm-Charts definieren Helm-Tests, um die Überprüfung zu vereinfachen. Diese Tests dienen zur Überprüfung der Dienstbereitschaft. Sie führen den Befehl Helm test aus, um sowohl die Spracherkennung als auch die Sprachsynthese zu überprüfen.

helm test onprem-speech

Wichtig

Diese Tests sind nicht erfolgreich, wenn der Podstatus nicht Running lautet oder die Bereitstellung nicht in der Spalte AVAILABLE aufgeführt ist. Dieser Vorgang kann mehr als zehn Minuten dauern.

Diese Tests geben verschiedene Statusergebnisse aus:

RUNNING: speech to text-readiness-test
PASSED: speech to text-readiness-test
RUNNING: text to speech-readiness-test
PASSED: text to speech-readiness-test

Als Alternative zur Ausführung der Helm-Tests können Sie auch die externen IP-Adressen und die entsprechenden Ports des Befehls kubectl get all sammeln. Öffnen Sie unter Verwendung der IP-Adresse und des Ports einen Webbrowser, und navigieren Sie zu http://<external-ip>:<port>:/swagger/index.html, um die API-Swagger-Seite(n) anzuzeigen.

Anpassen von Helm-Charts

Helm-Charts sind hierarchisch. Die hierarchische Struktur ermöglicht Chart-Vererbungen und kommt auch dem Konzept der Spezifität zugute, das dafür sorgt, dass geerbte Regeln durch spezifischere Einstellungen überschrieben werden.

Sprache (übergeordnetes Diagramm)

Werte im übergeordneten Diagramm auf oberster Ebene überschreiben die entsprechenden Werte im untergeordneten Diagramm. Deshalb sollten alle lokal angepassten Werte hier hinzugefügt werden.

Parameter BESCHREIBUNG Standard
speechToText.enabled Gibt an, ob der Spracherkennungsdienst aktiviert ist. true
speechToText.verification.enabled Gibt an, ob die helm test-Funktion für den Spracherkennungsdienst aktiviert ist. true
speechToText.verification.image.registry Das Docker-Imagerepository, das von helm test zum Testen des Spracherkennungsdiensts verwendet wird. Helm erstellt separate Pods innerhalb des Clusters zum Testen und ruft das test-use-Image aus dieser Registrierung ab. docker.io
speechToText.verification.image.repository Das Docker-Imagerepository, das von helm test zum Testen des Spracherkennungsdiensts verwendet wird. Der Helm-Testpod verwendet dieses Repository zum Abrufen des test-use-Images. antsu/on-prem-client
speechToText.verification.image.tag Das Docker-Imagetag, das mit helm test für den Spracherkennungsdienst verwendet wird. Der Helm-Testpod verwendet dieses Tag zum Abrufen des test-use-Images. latest
speechToText.verification.image.pullByHash Gibt an, ob das Docker-Image test-use mithilfe von Hashing abgerufen wird. Wenn true, sollte speechToText.verification.image.hash mit einem gültigen Imagehashwert hinzugefügt werden. false
speechToText.verification.image.arguments Die Argumente, die zum Ausführen des Docker-Images test-use verwendet werden. Der Helm-Testpod übergibt diese Argumente beim Ausführen von helm test an den Container. "./speech-to-text-client"
"./audio/whatstheweatherlike.wav"
"--expect=What's the weather like"
"--host=$(SPEECH_TO_TEXT_HOST)"
"--port=$(SPEECH_TO_TEXT_PORT)"
textToSpeech.enabled Gibt an, ob der Sprachsynthesedienst aktiviert ist. true
textToSpeech.verification.enabled Gibt an, ob die helm test-Funktion für den Spracherkennungsdienst aktiviert ist. true
textToSpeech.verification.image.registry Das Docker-Imagerepository, das von helm test zum Testen des Spracherkennungsdiensts verwendet wird. Helm erstellt separate Pods innerhalb des Clusters zum Testen und ruft das test-use-Image aus dieser Registrierung ab. docker.io
textToSpeech.verification.image.repository Das Docker-Imagerepository, das von helm test zum Testen des Spracherkennungsdiensts verwendet wird. Der Helm-Testpod verwendet dieses Repository zum Abrufen des test-use-Images. antsu/on-prem-client
textToSpeech.verification.image.tag Das Docker-Imagetag, das mit helm test für den Spracherkennungsdienst verwendet wird. Der Helm-Testpod verwendet dieses Tag zum Abrufen des test-use-Images. latest
textToSpeech.verification.image.pullByHash Gibt an, ob das Docker-Image test-use mithilfe von Hashing abgerufen wird. Wenn true, sollte textToSpeech.verification.image.hash mit einem gültigen Imagehashwert hinzugefügt werden. false
textToSpeech.verification.image.arguments Die Argumente für die Ausführung mit dem Docker-Image test-use. Der Helm-Testpod übergibt diese Argumente beim Ausführen von helm test an den Container. "./text-to-speech-client"
"--input='What's the weather like'"
"--host=$(TEXT_TO_SPEECH_HOST)"
"--port=$(TEXT_TO_SPEECH_PORT)"

Spracherkennung (Unterdiagramm: charts/speechToText)

Zum Überschreiben des übergeordneten Diagramms fügen Sie das Präfix speechToText. bei einem beliebigen Parameter hinzu, um das Diagramm genauer zu definieren. Dadurch wird der entsprechende Parameter überschrieben. Beispielsweise überschreibt speechToText.numberOfConcurrentRequest den Parameter numberOfConcurrentRequest.

Parameter BESCHREIBUNG Standard
enabled Gibt an, ob der Spracherkennungsdienst aktiviert ist. false
numberOfConcurrentRequest Die Anzahl gleichzeitiger Anforderungen für den Spracherkennungsdienst. In diesem Diagramm werden automatisch CPU- und Speicherressourcen basierend auf diesem Wert berechnet. 2
optimizeForAudioFile Gibt an, ob der Dienst für die Audioeingabe über Audiodateien optimiert werden muss. Wenn true, werden in diesem Diagramm dem Dienst mehr CPU-Ressourcen zugeordnet. false
image.registry Die Docker-Imageregistrierung für Spracherkennung. containerpreview.azurecr.io
image.repository Das Docker-Imagerepository für Spracherkennung. microsoft/cognitive-services-speech-to-text
image.tag Das Docker-Imagetag für Spracherkennung. latest
image.pullSecrets Die Imagegeheimnisse zum Abrufen des Docker-Images für Spracherkennung.
image.pullByHash Gibt an, ob das Docker-Image mithilfe von Hashing abgerufen wird. Wenn true, ist image.hash erforderlich. false
image.hash Der Docker-Imagehash für Spracherkennung. Nur verwendet, wenn image.pullByHash: true.
image.args.eula (erforderlich) Gibt an, dass Sie die Lizenz akzeptiert haben. Der einzige gültige Wert ist accept.
image.args.billing (erforderlich) Den URI des Abrechnungsendpunkts finden Sie im Azure-Portal auf der Speech-Übersichtsseite.
image.args.apikey (erforderlich) Wird zum Nachverfolgen von Abrechnungsinformationen verwendet.
service.type Der Kubernetes-Diensttyp des Spracherkennungsdiensts. Weitere Informationen finden Sie unter den Kubernetes-Anweisungen für Diensttypen und beim Support des Cloudanbieters. LoadBalancer
service.port Der Port des Spracherkennungsdiensts. 80
service.annotations Die Spracherkennungs-Anmerkungen für die Dienstmetadaten. Anmerkungen sind Schlüssel-Wert-Paare.
annotations:
  some/annotation1: value1
  some/annotation2: value2
service.autoScaler.enabled Gibt an, ob die horizontale automatische Podskalierung aktiviert ist. Wenn true, wird speech-to-text-autoscaler im Kubernetes-Cluster bereitgestellt. true
service.podDisruption.enabled Gibt an, ob das Budget für die Unterbrechung von Pods aktiviert ist. Wenn true, wird speech-to-text-poddisruptionbudget im Kubernetes-Cluster bereitgestellt. true

Standpunktanalyse (Unterdiagramm: charts/speechToText)

Ab Version 2.2.0 des Spracherkennungs-Containers und Version 0.2.0 des Helm-Charts werden folgende Parameter für die Stimmungsanalyse mit der Sprachdienst-API verwendet.

Parameter BESCHREIBUNG Werte Standard
textanalytics.enabled Gibt an, ob der Dienst Textanalyse aktiviert ist. TRUE/FALSE false
textanalytics.image.registry Die Docker-Imageregistrierung für Textanalyse. Gültige Docker-Imageregistrierung
textanalytics.image.repository Das Docker-Imagerepository für Textanalyse. Gültiges Docker-Imagerepository
textanalytics.image.tag Das Docker-Imagetag für Textanalyse. Gültiges Docker-Imagetag
textanalytics.image.pullSecrets Die Imagegeheimnisse zum Pullen des Docker-Images für Textanalyse. Gültiger Geheimnisname
textanalytics.image.pullByHash Gibt an, ob das Docker-Image per Hash gepullt wird. yes: image.hash muss ebenfalls vorhanden sein. no: Legen Sie die Einstellung auf „false“ fest. Der Standardwert ist false. TRUE/FALSE false
textanalytics.image.hash Der Docker-Imagehash für Textanalyse. Darf nur in Kombination mit image.pullByHash:true verwendet werden. Gültiger Docker-Imagehash
textanalytics.image.args.eula Eines der für den Container vom Typ Textanalyse erforderlichen Argumente, um anzugeben, dass Sie die Lizenz akzeptiert haben. Der Wert dieser Option muss accept lauten. accept, wenn Sie den Container verwenden möchten
textanalytics.image.args.billing Eines der für den Container vom Typ Textanalyse erforderlichen Argumente zur Angabe des URI des Abrechnungsendpunkts. Den URI des Abrechnungsendpunkts finden Sie im Azure-Portal auf der Speech-Übersichtsseite. Gültiger URI des Abrechnungsendpunkts
textanalytics.image.args.apikey Eines der für den Container vom Typ Textanalyse erforderlichen Argumente zur Nachverfolgung von Abrechnungsinformationen. Gültiger API-Schlüssel
textanalytics.cpuRequest Die angeforderte CPU für den Container vom Typ Textanalyse. INT 3000m
textanalytics.cpuLimit Die eingeschränkte CPU für den Container vom Typ Textanalyse. 8000m
textanalytics.memoryRequest Der angeforderte Arbeitsspeicher für den Container vom Typ Textanalyse. 3Gi
textanalytics.memoryLimit Der eingeschränkte Arbeitsspeicher für den Container vom Typ Textanalyse. 8Gi
textanalytics.service.sentimentURISuffix Das URI-Suffix der Standpunktanalyse. Der gesamte URI hat das Format „http://<service>:<port>/<sentimentURISuffix>“. text/analytics/v3.0-preview/sentiment
textanalytics.service.type Die Art des Diensts Textanalyse in Kubernetes. Weitere Informationen zu Kubernetes-Diensttypen finden Sie hier. Gültiger Kubernetes-Diensttyp LoadBalancer
textanalytics.service.port Der Port des Diensts Textanalyse. INT 50085
textanalytics.service.annotations Die Anmerkungen, die Benutzer den Metadaten des Diensts Textanalyse hinzufügen können. Beispiel:
annotations:
beliebige/Anmerkung1: Wert1
beliebige/Anmerkung2: Wert2
Anmerkungen, jeweils eine pro Zeile
textanalytics.serivce.autoScaler.enabled Gibt an, ob die horizontale automatische Podskalierung aktiviert ist. Falls ja, wird text-analytics-autoscaler im Kubernetes-Cluster bereitgestellt. TRUE/FALSE true
textanalytics.service.podDisruption.enabled Gibt an, ob das Budget für die Unterbrechung von Pods aktiviert ist. Falls ja, wird text-analytics-poddisruptionbudget im Kubernetes-Cluster bereitgestellt. TRUE/FALSE true

Sprachsynthese (Unterdiagramm: charts/textToSpeech)

Zum Überschreiben des übergeordneten Diagramms fügen Sie das Präfix textToSpeech. bei einem beliebigen Parameter hinzu, um das Diagramm genauer zu definieren. Dadurch wird der entsprechende Parameter überschrieben. Beispielsweise überschreibt textToSpeech.numberOfConcurrentRequest den Parameter numberOfConcurrentRequest.

Parameter BESCHREIBUNG Standard
enabled Gibt an, ob der Sprachsynthesedienst aktiviert ist. false
numberOfConcurrentRequest Die Anzahl gleichzeitiger Anforderungen für den Sprachsynthesedienst. In diesem Diagramm werden automatisch CPU- und Speicherressourcen basierend auf diesem Wert berechnet. 2
optimizeForTurboMode Gibt an, ob der Dienst für die Texteingabe über Textdateien optimiert werden muss. Wenn true, werden in diesem Diagramm dem Dienst mehr CPU-Ressourcen zugeordnet. false
image.registry Die Docker-Imageregistrierung für Sprachsynthese. containerpreview.azurecr.io
image.repository Das Docker-Imagerepository für Sprachsynthese. microsoft/cognitive-services-text-to-speech
image.tag Das Docker-Imagetag für Sprachsynthese. latest
image.pullSecrets Die Imagegeheimnisse zum Abrufen des Docker-Images für Sprachsynthese.
image.pullByHash Gibt an, ob das Docker-Image mithilfe von Hashing abgerufen wird. Wenn true, ist image.hash erforderlich. false
image.hash Der Docker-Imagehash für Sprachsynthese. Nur verwendet, wenn image.pullByHash: true.
image.args.eula (erforderlich) Gibt an, dass Sie die Lizenz akzeptiert haben. Der einzige gültige Wert ist accept.
image.args.billing (erforderlich) Den URI des Abrechnungsendpunkts finden Sie im Azure-Portal auf der Speech-Übersichtsseite.
image.args.apikey (erforderlich) Wird zum Nachverfolgen von Abrechnungsinformationen verwendet.
service.type Der Kubernetes-Diensttyp des Sprachsynthesediensts. Weitere Informationen finden Sie unter den Kubernetes-Anweisungen für Diensttypen und beim Support des Cloudanbieters. LoadBalancer
service.port Der Port des Sprachsynthesediensts. 80
service.annotations Die Sprachsynthese-Anmerkungen für die Dienstmetadaten. Anmerkungen sind Schlüssel-Wert-Paare.
annotations:
  some/annotation1: value1
  some/annotation2: value2
service.autoScaler.enabled Gibt an, ob die horizontale automatische Podskalierung aktiviert ist. Wenn true, wird text-to-speech-autoscaler im Kubernetes-Cluster bereitgestellt. true
service.podDisruption.enabled Gibt an, ob das Budget für die Unterbrechung von Pods aktiviert ist. Wenn true, wird text-to-speech-poddisruptionbudget im Kubernetes-Cluster bereitgestellt. true

Nächste Schritte

Ausführlichere Informationen zum Installieren von Anwendungen mit Helm in Azure Kubernetes Service (AKS) finden Sie hier.