Bereitstellen eines Containers für die Schlüsselbegriffserkennung in Azure Kubernetes Service
Erfahren Sie, wie Sie einen Docker-Container für die Schlüsselbegriffserkennung in Azure Kubernetes Service (AKS) bereitstellen. In diesem Verfahren wird gezeigt, wie Sie eine Language-Ressource erstellen, ein Containerimage zuordnen und die Orchestrierung der beiden über einen Browser durchführen. Die Verwendung von Containern kann Ihre Aufmerksamkeit von der Verwaltung der Infrastruktur auf die Anwendungsentwicklung lenken. In diesem Artikel wird der Prozess zwar beispielhaft für einen Container für die Schlüsselbegriffserkennung dargestellt, Sie können ihn jedoch auch für andere Container verwenden, die von Azure KI Language angeboten werden.
Voraussetzungen
Für dieses Verfahren müssen mehrere Tools lokal installiert und ausgeführt werden. Verwenden Sie nicht Azure Cloud Shell. Sie benötigen Folgendes:
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Einen Text-Editor, z.B. Visual Studio Code.
- Die Azure CLI muss installiert sein.
- Die Kubernetes CLI muss installiert sein.
- Eine Azure-Ressource mit dem korrekten Tarif. Nicht alle Tarife können mit diesem Container verwendet werden:
- Azure KI Language-Ressource nur mit F0- oder Standard-Tarif
- Azure KI Services-Ressource mit dem S0-Tarif.
Erstellen einer Azure KI Language-Ressource
Melden Sie sich beim Azure-Portal an.
Wählen Sie Ressource erstellen aus, und navigieren Sie dann zu KI + Machine Learning>Sprache. Oder navigieren Sie zu Create a Language resource (Sprachressource erstellen).
Geben Sie alle erforderlichen Einstellungen ein:
Einstellung Wert Name Geben Sie einen Namen ein (2–64 Zeichen). Subscription Wählen Sie das entsprechende Abonnement aus. Standort Wählen Sie einen nahe gelegenen Speicherort aus. Tarif Geben Sie S als Standardtarif ein. Resource group Wählen Sie eine verfügbare Ressourcengruppe aus. Klicken Sie auf Erstellen, und warten Sie, bis die Ressource erstellt wurde. Ihr Browser leitet Sie automatisch zur neu erstellten Ressourcenseite weiter.
Rufen Sie den konfigurierten
endpoint
und einen API-Schlüssel ab:Registerkarte „Ressource“ im Portal Einstellung Wert Übersicht Endpunkt Kopieren Sie den Endpunkt. Dieser sieht etwa so aus: https://my-resource.cognitiveservices.azure.com/text/analytics/v3.0
.Schlüssel API-Schlüssel Kopieren Sie einen der beiden Schlüssel. Es handelt sich um eine aus 32 alphanumerischen Zeichen bestehende Zeichenfolge ohne Leerzeichen oder Bindestriche: < xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>.
Erstellen einer Azure Kubernetes Service-Clusterressource
Wechseln Sie zu Azure Kubernetes Service, und klicken Sie auf Erstellen.
Geben Sie folgende Informationen auf der Registerkarte Grundeinstellungen an:
Einstellung Wert Subscription Wählen Sie ein entsprechendes Abonnement aus. Resource group Wählen Sie eine verfügbare Ressourcengruppe aus. Kubernetes-Clustername Geben Sie einen Namen ein (Kleinbuchstaben). Region Wählen Sie einen nahe gelegenen Speicherort aus. Kubernetes-Version Jeder Wert, der als (Standard) markiert ist. DNS-Namenspräfix Wird automatisch erstellt, kann jedoch überschrieben werden. Knotengröße Standard DS2 v2: 2 vCPUs
,7 GB
Knotenanzahl Lassen Sie den Schieberegler auf dem Standardwert. Behalten Sie auf der Registerkarte Knotenpools die Standardwerte für virtuelle Knoten und VM-Skalierungsgruppen bei.
Behalten Sie Registerkarte Authentifizierung die Standardwerte für Dienstprinzipal und RBAC aktivieren bei.
Geben Sie auf der Registerkarte Netzwerk die folgende Auswahl ein:
Einstellung Wert HTTP-Anwendungsrouting Nein Netzwerkkonfiguration Basic Stellen Sie auf der Registerkarte Integrationen sicher, dass Containerüberwachung auf Aktiviert festgelegt ist, und behalten Sie den Standardwert für den Log Analytics-Arbeitsbereich bei.
Lassen Sie auf der Registerkarte Tags die Name/Wert-Paare vorerst leer.
Klicken Sie auf Überprüfen und erstellen.
Wenn die Überprüfung erfolgreich war, wählen Sie Erstellen aus.
Hinweis
Wenn bei der Überprüfung ein Fehler auftritt, ist der Grund dafür möglicherweise ein Fehler beim „Dienstprinzipal“. Navigieren Sie zurück zur Registerkarte Authentifizierung und dann zurück zu Überprüfen und erstellen, wo die Überprüfung ausgeführt und bestanden werden sollte.
Bereitstellen des Containers für die Schlüsselbegriffserkennung für einen AKS-Cluster
Öffnen Sie die Azure CLI, und melden Sie sich bei Azure an.
az login
Melden Sie sich bei dem AKS-Cluster an. Ersetzen Sie
your-cluster-name
undyour-resource-group
durch die entsprechenden Werte.az aks get-credentials -n your-cluster-name -g -your-resource-group
Nachdem dieser Befehl ausgeführt wurde, wird eine Meldung ähnlich der folgenden ausgegeben:
Merged "your-cluster-name" as current context in /home/username/.kube/config
Warnung
Wenn Sie über mehrere Abonnements in Ihrem Azure-Konto verfügen und der
az aks get-credentials
-Befehl mit einem Fehler zurückgegeben wird, ist ein häufiges Problem, dass Sie das falsche Abonnement verwenden. Stellen Sie den Kontext Ihrer Azure CLI-Sitzung so ein, dass Sie das gleiche Abonnement verwenden, mit dem Sie die Ressourcen erstellt haben, und versuchen Sie es erneut.az account set -s subscription-id
Öffnen Sie den Text-Editor Ihrer Wahl. In diesem Beispiel wird Visual Studio Code verwendet.
code .
Erstellen Sie im Text-Editor eine neue Datei namens keyphrase.yaml, und fügen Sie die folgende YAML darin ein. Achten Sie darauf, dass Sie
billing/value
undapikey/value
durch Ihre eigenen Werte ersetzen.apiVersion: apps/v1beta1 kind: Deployment metadata: name: keyphrase spec: template: metadata: labels: app: keyphrase-app spec: containers: - name: keyphrase image: mcr.microsoft.com/azure-cognitive-services/keyphrase ports: - containerPort: 5000 resources: requests: memory: 2Gi cpu: 1 limits: memory: 4Gi cpu: 1 env: - name: EULA value: "accept" - name: billing value: # {ENDPOINT_URI} - name: apikey value: # {API_KEY} --- apiVersion: v1 kind: Service metadata: name: keyphrase spec: type: LoadBalancer ports: - port: 5000 selector: app: keyphrase-app
Wichtig
Denken Sie daran, den Schlüssel aus Ihrem Code zu entfernen, wenn Sie fertig sind, und ihn niemals zu veröffentlichen. Verwenden Sie für die Produktion eine sichere Art der Speicherung und des Zugriffs auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen finden Sie im Artikel zur Azure KI Services-Sicherheit.
Speichern Sie die Datei, und schließen Sie den Text-Editor.
Führen Sie den Kubernetes-Befehl
apply
mit der Datei keyphrase.yaml als Ziel aus:kubectl apply -f keyphrase.yaml
Nachdem der Befehl die Bereitstellungskonfiguration erfolgreich angewendet hat, wird eine Meldung ähnlich der folgenden Ausgabe angezeigt:
deployment.apps "keyphrase" created service "keyphrase" created
Überprüfen Sie, ob der Pod bereitgestellt wurde:
kubectl get pods
Die Ausgabe für den Ausführungsstatus des Pods:
NAME READY STATUS RESTARTS AGE keyphrase-5c9ccdf575-mf6k5 1/1 Running 0 1m
Überprüfen Sie, ob der Dienst verfügbar ist, und rufen Sie die IP-Adresse ab.
kubectl get services
Die Ausgabe für den Ausführungsstatus des keyphrase-Diensts im Pod:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 2m keyphrase LoadBalancer 10.0.100.64 168.61.156.180 5000:31234/TCP 2m
Überprüfen der Containerinstanz für die Schlüsselbegriffserkennung
Wählen Sie die Registerkarte Übersicht aus, und kopieren Sie die IP-Adresse.
Öffnen Sie eine neue Registerkarte im Browser, und geben Sie die IP-Adresse ein. Geben Sie zum Beispiel
http://<IP-address>:5000 (http://55.55.55.55:5000
) ein. Die Homepage des Containers wird angezeigt, in der Sie erkennen, dass der Container ausgeführt wird.Klicken Sie auf den Link Dienst-API-Beschreibung, um die Swagger-Seite des Containers aufzurufen.
Wählen Sie eine der POST-APIs und dann Jetzt ausprobieren aus. Die Parameter werden angezeigt, einschließlich der folgenden Beispieleingabe:
{ "documents": [ { "id": "1", "text": "Hello world" }, { "id": "2", "text": "Bonjour tout le monde" }, { "id": "3", "text": "La carretera estaba atascada. Había mucho tráfico el día de ayer." }, { "id": "4", "text": ":) :( :D" } ] }
Ersetzen Sie die Eingabe durch folgenden JSON-Code:
{ "documents": [ { "language": "en", "id": "7", "text": "I was fortunate to attend the KubeCon Conference in Barcelona, it is one of the best conferences I have ever attended. Great people, great sessions and I thoroughly enjoyed it!" } ] }
Legen Sie showStats auf
true
fest.Wählen Sie Ausführen aus, um die Stimmung des Texts zu bestimmen.
Das im Container enthaltene Modell erzeugt einen Bewertungsbereich von 0 bis 1, wobei 0 negativ und 1 positiv ist.
Die zurückgegebene JSON-Antwort enthält die Stimmung für die aktualisierte Texteingabe:
{ "documents": [ { "id": "7", "keyPhrases": [ "Great people", "great sessions", "KubeCon Conference", "Barcelona", "best conferences" ], "statistics": { "charactersCount": 176, "transactionsCount": 1 } } ], "errors": [], "statistics": { "documentsCount": 1, "validDocumentsCount": 1, "erroneousDocumentsCount": 0, "transactionsCount": 1 } }
Das Dokument id
der in der Antwort enthaltenen JSON-Daten kann nun mit dem ursprünglichen Dokument id
in Korrelation gebracht werden. Das resultierende Dokument weist ein keyPhrases
-Array auf, das die Liste der Schlüsselbegriffe enthält, die aus dem entsprechenden Eingabedokument extrahiert wurden. Zusätzlich gibt es verschiedene Statistiken wie characterCount
und transactionCount
für jedes resultierende Dokument.
Nächste Schritte
- Verwenden weiterer Azure KI-Container
- Übersicht über die Schlüsselbegriffserkennung