Delen via


Quickstart: Een toepassing implementeren met behulp van de Dapr-extensie voor Azure Kubernetes Service (AKS) of Kubernetes met Arc

In deze quickstart gebruikt u de Dapr-extensie in een Kubernetes-cluster met AKS of Arc. U implementeert een hello world voorbeeld, dat bestaat uit een Python-toepassing die berichten genereert en een Node.js toepassing die de berichten verbruikt en persistent maakt.

Prerequisites

De opslagplaats klonen

  1. Kloon de QuickStart-opslagplaats voor Dapr met behulp van de git clone opdracht.

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Ga naar de dapr-aks-extension-quickstart directory.

    cd dapr-aks-extension-quickstart
    

Een Redis-archief maken en configureren

Open de Azure Portal om het proces voor het aanmaken van Azure Cache voor Redis te starten.

  1. Vul de aanbevolen informatie in volgens de quickstart Een Azure Cache voor Redis-exemplaar maken .

  2. Selecteer Maken om de implementatie van het Redis-exemplaar te starten.

Resourcegegevens verifiëren

  1. Zodra de Redis-resource is geïmplementeerd, gaat u naar de overzichtspagina.

  2. Noteer:

    • De hostnaam, te vinden in de sectie Essentials van de overzichtspagina van de cache. De hostnaamindeling ziet er ongeveer als volgt uit: xxxxxx.redis.cache.windows.net.
    • De SSL-poort, te vinden in Instellingen>Geavanceerde instellingen. De standaardwaarde is 6380.
  3. Navigeer naar Instellingenverificatie> en controleer of Microsoft Entra-verificatie is ingeschakeld voor uw resource.

Beheerde identiteit toevoegen

  1. Voer in de sectie Verificatie onder het selectievakje Microsoft Entra-verificatie inschakelen de naam in van de beheerde identiteit die u hebt gemaakt als een vereiste.

    Schermopname van het veld waarin u een beheerde identiteit kunt selecteren die u als Redis-gebruiker wilt toevoegen.

  2. Controleer of uw beheerde identiteit is toegevoegd als een Redis-gebruiker met machtigingen voor het toegangsbeleid van gegevenseigenaar.

Openbare netwerktoegang inschakelen

Voor dit scenario maakt uw Redis-cache gebruik van openbare netwerktoegang. Zorg ervoor dat u middelen opschoont nadat u klaar bent met deze snelstartgids.

  1. Navigeer naar Hetprivé-eindpunt>.

  2. Selecteer Openbare netwerktoegang inschakelen in het menu.

De Dapr-onderdelen configureren

In het bestand redis.yaml wordt de component geconfigureerd om Entra ID-verificatie te gebruiken met behulp van workloadidentiteit die is ingeschakeld voor een AKS-cluster. Er zijn geen toegangssleutels vereist.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. Navigeer in de code-editor van uw voorkeur naar de implementatiemap in de voorbeeldopslagplaats en open redis.yaml.

  2. Vervang redisHost de tijdelijke aanduidingswaarde <REDIS_HOST>:<REDIS_PORT> door de hostnaam van de Redis-cache en SSL-poort die u eerder hebt opgeslagen in de Azure Portal.

    - name: redisHost
      value: <your-cache-name>.redis.cache.windows.net:6380
    

De configuratie toepassen

Pas het bestand redis.yaml toe met behulp van de kubectl apply opdracht.

kubectl apply -f ./deploy/redis.yaml

Verwachte uitvoer

component.dapr.io/statestore created

De Node.js-app implementeren met de Dapr-sidecar

De Node.js-app configureren

In node.yaml is aan de podspecificatie het label toegevoegd om de workloadidentiteit te gebruiken.

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigeer naar de deploy directory en open node.yaml.

  2. Vervang de waarde van de tijdelijke aanduiding <SERVICE_ACCOUNT_NAME> door de naam van het serviceaccount dat u hebt gemaakt.

    • Deze waarde moet hetzelfde serviceaccount zijn dat u hebt gebruikt om de federatieve identiteitsreferentie te maken.

De configuratie toepassen

  1. Pas de Node.js-app-implementatie toe op uw cluster met behulp van de kubectl apply opdracht.

    kubectl apply -f ./deploy/node.yaml
    
  2. Kubernetes-implementaties zijn asynchroon, dus voordat u verdergaat met de volgende stappen, controleert u of de implementatie is voltooid met de volgende opdracht:

    kubectl rollout status deploy/nodeapp
    
  3. Open uw service met behulp van de kubectl get svc opdracht.

    kubectl get svc nodeapp
    
  4. Noteer de EXTERNAL-IP in de uitvoer.

De Node.js-service controleren

  1. Gebruik curl om de dienst met uw EXTERNAL-IP aan te roepen.

    curl <EXTERNAL-IP>/ports
    

    Voorbeelduitvoer

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Dien een bestelling in bij de applicatie.

    curl --request POST --data "@sample.json" --header Content-Type:application/json <EXTERNAL-IP>/neworder
    
  3. Bevestig de bestelling.

    curl <EXTERNAL-IP>/order
    

    Verwachte uitvoer

    { "orderId": "42" }
    

De Python-app implementeren met de Dapr-sidecar

De Python-app configureren

In python.yaml is het label aan de podspecificatie toegevoegd om workload-identiteit te gebruiken.

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigeer naar de deploy map en open python.yaml.

  2. Vervang de waarde van de tijdelijke aanduiding <SERVICE_ACCOUNT_NAME> door de naam van het serviceaccount dat u hebt gemaakt.

    • Deze waarde moet hetzelfde serviceaccount zijn dat u hebt gebruikt om de federatieve identiteitsreferentie te maken.

De configuratie toepassen

  1. Implementeer de Python-app in uw Kubernetes-cluster met behulp van de kubectl apply opdracht.

    kubectl apply -f ./deploy/python.yaml
    
  2. Kubernetes-implementaties zijn asynchroon, dus voordat u verdergaat met de volgende stappen, controleert u of de implementatie is voltooid met de volgende opdracht:

    kubectl rollout status deploy/pythonapp
    

Observeer berichten en bevestig persistentie.

Nu zowel de Node.js als python-toepassingen zijn geïmplementeerd, kunt u berichten bekijken.

  1. Haal de logboeken van de Node.js-app op met behulp van de kubectl logs opdracht.

    kubectl logs --selector=app=node -c node --tail=-1
    

    Verwachte uitvoer

    Got a new order! Order ID: 1
    Successfully persisted state
    Got a new order! Order ID: 2
    Successfully persisted state
    Got a new order! Order ID: 3
    Successfully persisted state
    
  2. Gebruik curl om het ordereindpunt van de Node.js-app aan te roepen en de nieuwste bestelling op te halen.

    curl <EXTERNAL-IP>/order
    

    U ziet nu de meest recente JSON-uitvoer in het antwoord.

De hulpbronnen opschonen

Als u niet langer van plan bent om de resources uit deze quickstart te gebruiken, kunt u de resourcegroep, het cluster, de naamruimte en alle gerelateerde resources verwijderen met behulp van de opdracht az group delete .

az group delete --name <your-resource-group>

Volgende stap