Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
- Een Azure-abonnement. Als u nog geen account hebt, kunt u een gratis account aanmaken.
- Azure CLI is geïnstalleerd
- Een AKS-cluster met:
- Workloadidentiteit ingeschakeld
- Beheerde identiteit gemaakt in hetzelfde abonnement
- Een Kubernetes-serviceaccount
- Federatief identiteitsbewijs
- Dapr-extensie geïnstalleerd op het AKS-cluster
- kubectl lokaal geïnstalleerd
De opslagplaats klonen
Kloon de QuickStart-opslagplaats voor Dapr met behulp van de
git cloneopdracht.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitGa naar de
dapr-aks-extension-quickstartdirectory.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.
Vul de aanbevolen informatie in volgens de quickstart Een Azure Cache voor Redis-exemplaar maken .
Selecteer Maken om de implementatie van het Redis-exemplaar te starten.
Resourcegegevens verifiëren
Zodra de Redis-resource is geïmplementeerd, gaat u naar de overzichtspagina.
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.
- De hostnaam, te vinden in de sectie Essentials van de overzichtspagina van de cache. De hostnaamindeling ziet er ongeveer als volgt uit:
Navigeer naar Instellingenverificatie> en controleer of Microsoft Entra-verificatie is ingeschakeld voor uw resource.
Beheerde identiteit toevoegen
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.
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.
Navigeer naar Hetprivé-eindpunt>.
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
Navigeer in de code-editor van uw voorkeur naar de implementatiemap in de voorbeeldopslagplaats en open redis.yaml.
Vervang
redisHostde 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"
Navigeer naar de
deploydirectory en open node.yaml.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
Pas de Node.js-app-implementatie toe op uw cluster met behulp van de
kubectl applyopdracht.kubectl apply -f ./deploy/node.yamlKubernetes-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/nodeappOpen uw service met behulp van de
kubectl get svcopdracht.kubectl get svc nodeappNoteer de
EXTERNAL-IPin de uitvoer.
De Node.js-service controleren
Gebruik
curlom de dienst met uwEXTERNAL-IPaan te roepen.curl <EXTERNAL-IP>/portsVoorbeelduitvoer
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}Dien een bestelling in bij de applicatie.
curl --request POST --data "@sample.json" --header Content-Type:application/json <EXTERNAL-IP>/neworderBevestig de bestelling.
curl <EXTERNAL-IP>/orderVerwachte 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"
Navigeer naar de
deploymap en open python.yaml.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
Implementeer de Python-app in uw Kubernetes-cluster met behulp van de
kubectl applyopdracht.kubectl apply -f ./deploy/python.yamlKubernetes-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.
Haal de logboeken van de Node.js-app op met behulp van de
kubectl logsopdracht.kubectl logs --selector=app=node -c node --tail=-1Verwachte 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 stateGebruik
curlom het ordereindpunt van de Node.js-app aan te roepen en de nieuwste bestelling op te halen.curl <EXTERNAL-IP>/orderU 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>