Distribuera en container för extrahering av nyckelfraser till Azure Kubernetes Service

Lär dig hur du distribuerar en dockercontaineravbildning för nyckelfrasextrahering till Azure Kubernetes Service (AKS). Den här proceduren visar hur du skapar en språkresurs, hur du associerar en containeravbildning och hur du använder orkestreringen av de två från en webbläsare. Att använda containrar kan flytta uppmärksamheten från att hantera infrastrukturen till att i stället fokusera på programutveckling. Den här artikeln använder containern för extrahering av nyckelfraser som exempel, men du kan använda den här processen för andra containrar som erbjuds av Azure AI Language

Förutsättningar

Den här proceduren kräver flera verktyg som måste installeras och köras lokalt. Använd inte Azure Cloud Shell. Du behöver följande:

  • En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
  • En textredigerare, till exempel Visual Studio Code.
  • Azure CLI installerat.
  • Kubernetes CLI installerat.
  • En Azure-resurs med rätt prisnivå. Alla prisnivåer fungerar inte med den här containern:
    • Azure AI Language-resurs med endast F0- eller standardprisnivåer.
    • Azure AI-tjänstresurs med prisnivån S0.

Skapa en Azure AI Language-resurs

  1. Logga in på Azure-portalen.

  2. Välj Skapa en resurs och gå sedan till AI + Machine Learning>Language. Eller gå till Skapa en språkresurs.

  3. Ange alla nödvändiga inställningar:

    Inställning Värde
    Namn Ange ett namn (2–64 tecken).
    Prenumeration Välj lämplig prenumeration.
    Plats Välj en närliggande plats.
    Prisnivå Ange S, standardprisnivån.
    Resursgrupp Välj en tillgänglig resursgrupp.
  4. Klicka på Skapa och vänta tills resursen har skapats. Webbläsaren omdirigeras automatiskt till den nyligen skapade resurssidan.

  5. Samla in den konfigurerade endpoint och en API-nyckel:

    Fliken Resurs i portalen Inställningen Värde
    Översikt Slutpunkt Kopiera slutpunkten. Det verkar likna https://my-resource.cognitiveservices.azure.com/text/analytics/v3.0.
    Nycklar API-nyckel Kopiera en av de två nycklarna. Det är en alfanumerisk sträng på 32 tecken utan blanksteg eller bindestreck: <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>.

Skapa en Azure Kubernetes Service klusterresurs

  1. Gå till Azure Kubernetes Service och välj Skapa.

  2. På fliken Grundläggande anger du följande information:

    Inställningen Värde
    Prenumeration Välj en lämplig prenumeration.
    Resursgrupp Välj en tillgänglig resursgrupp.
    Kubernetes-klusternamn Ange ett namn (gemener).
    Region Välj en närliggande plats.
    Kubernetes-version Det värde som har markerats som (standard).
    DNS-namnprefix Skapas automatiskt, men du kan åsidosätta.
    Nodstorlek Standard DS2 v2:
    2 vCPUs, 7 GB
    Nodantal Låt skjutreglaget vara kvar på standardvärdet.
  3. På fliken Nodpooler låter du Virtuella noder och VM-skalningsuppsättningar vara inställda på standardvärdena.

  4. På fliken Autentisering lämnar du tjänstens huvudnamn och Aktivera RBAC inställt på standardvärdena.

  5. På fliken Nätverk anger du följande val:

    Inställningen Värde
    Routning av HTTP-program No
    Nätverkskonfiguration Basic
  6. På fliken Integreringar kontrollerar du att Containerövervakning är inställt på Aktiverad och lämnar Log Analytics-arbetsytan som standardvärde.

  7. Lämna namn/värde-paren tomma tills vidare på fliken Taggar .

  8. Välj Granska och skapa.

  9. När verifieringen har godkänts väljer du Skapa.

Anteckning

Om verifieringen misslyckas kan det bero på felet "Tjänstens huvudnamn". Gå tillbaka till fliken Autentisering och gå sedan tillbaka till Granska + skapa, där valideringen ska köras och sedan skickas.

Distribuera containern extrahering av nyckelfraser till ett AKS-kluster

  1. Öppna Azure CLI och logga in på Azure.

    az login
    
  2. Logga in på AKS-klustret. Ersätt your-cluster-name och your-resource-group med lämpliga värden.

    az aks get-credentials -n your-cluster-name -g -your-resource-group
    

    När det här kommandot har körts rapporterar det ett meddelande som liknar följande:

    Merged "your-cluster-name" as current context in /home/username/.kube/config
    

    Varning

    Om du har flera prenumerationer tillgängliga för dig på ditt Azure-konto och az aks get-credentials kommandot returneras med ett fel är ett vanligt problem att du använder fel prenumeration. Ange kontexten för Azure CLI-sessionen så att den använder samma prenumeration som du skapade resurserna med och försök igen.

     az account set -s subscription-id
    
  3. Öppna valfri textredigerare. I det här exemplet används Visual Studio Code.

    code .
    
  4. I textredigeraren skapar du en ny fil med namnet keyphrase.yaml och klistrar in följande YAML i den. Se till att ersätta billing/value och apikey/value med din egen information.

    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
    

Viktigt

Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information finns i säkerhetsartikeln om Azure AI-tjänster.

  1. Spara filen och stäng textredigeraren.

  2. Kör Kubernetes-kommandot apply med filen keyphrase.yaml som mål:

    kubectl apply -f keyphrase.yaml
    

    När kommandot har tillämpat distributionskonfigurationen visas ett meddelande som liknar följande utdata:

    deployment.apps "keyphrase" created
    service "keyphrase" created
    
  3. Kontrollera att podden har distribuerats:

    kubectl get pods
    

    Utdata för poddens körningsstatus:

    NAME                         READY     STATUS    RESTARTS   AGE
    keyphrase-5c9ccdf575-mf6k5   1/1       Running   0          1m
    
  4. Kontrollera att tjänsten är tillgänglig och hämta IP-adressen.

    kubectl get services
    

    Utdata för körningsstatusen för keyphrase-tjänsten i podden:

    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
    

Verifiera containerinstansen extrahering av nyckelfraser

  1. Välj fliken Översikt och kopiera IP-adressen.

  2. Öppna en ny webbläsarflik och ange IP-adressen. Ange http://<IP-address>:5000 (http://55.55.55.55:5000till exempel ). Containerns startsida visas, vilket gör att du vet att containern körs.

    Visa containerns startsida för att kontrollera att den körs

  3. Välj länken Beskrivning av tjänst-API för att gå till containerns Swagger-sida.

  4. Välj något av POST-API :erna och välj Prova. Parametrarna visas, som innehåller följande exempelindata:

    {
      "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"
        }
      ]
    }
    
  5. Ersätt indata med följande JSON-innehåll:

    {
      "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!"
        }
      ]
    }
    
  6. Ange showStats till true.

  7. Välj Kör för att fastställa attityden i texten.

    Modellen som paketeras i containern genererar en poäng som sträcker sig från 0 till 1, där 0 är negativ och 1 är positiv.

    JSON-svaret som returneras innehåller sentiment för den uppdaterade textinmatningen:

    {
      "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
      }
    }
    

Nu kan vi korrelera dokumentet id för svarsnyttolastens JSON-data med det ursprungliga nyttolastdokumentet idför begäran. Det resulterande dokumentet har en keyPhrases matris som innehåller listan över nyckelfraser som har extraherats från motsvarande indatadokument. Dessutom finns det olika statistik, till exempel characterCount och transactionCount för varje resulterande dokument.

Nästa steg