Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten använder du Dapr-tillägget i ett AKS- eller Arc-aktiverat Kubernetes-kluster. Du distribuerar ett hello world exempel som består av ett Python-program som genererar meddelanden och ett Node.js program som använder och bevarar meddelandena.
Prerequisites
- Ett Azure-abonnemang. Om du inte har ett konto kan du skapa ett kostnadsfritt konto.
- Azure CLI installerat
- Ett AKS-kluster med:
- Arbetsbelastningsidentitet aktiverad
- Hanterad identitet som skapats i samma prenumeration
- Ett Kubernetes-tjänstkonto
- Federerade identitetsautentiseringsuppgifter
- Dapr-tillägget installerat på AKS-klustret
- kubectl installerat lokalt
Klona lagringsplatsen
Klona Dapr-snabbstartslagringsplatsen med kommandot
git clone.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitByt till
dapr-aks-extension-quickstart-katalogen.cd dapr-aks-extension-quickstart
Skapa och konfigurera ett Redis-arkiv
Öppna Azure-portalen för att starta skapandeflödet Azure Managed Redis.
Fyll i den rekommenderade informationen enligt snabbstarten Skapa en Azure Hanterad Redis-instans.
Välj Skapa för att starta distributionen av Redis-instansen.
Verifiera resursinformation
När Redis-resursen har distribuerats går du till översiktssidan.
Observera:
- Värdnamnet finns i avsnittet Essentials på resursöversiktssidan. Värdnamnsformatet ser ut ungefär så här:
<your-cache-name>.<region>.redis.azure.net. - SSL-porten finns i Inställningar>Avancerade inställningar. Standardvärdet är
10000.
- Värdnamnet finns i avsnittet Essentials på resursöversiktssidan. Värdnamnsformatet ser ut ungefär så här:
Aktivera åtkomstnyckelautentisering på standarddatabasen i terminalen.
az redisenterprise database update \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --access-keys-auth EnabledHämta primärnyckeln för standarddatabasen och spara den i en miljövariabel.
export REDIS_PRIMARY_KEY=$(az redisenterprise database list-keys \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --query primaryKey \ -o tsv)
Aktivera åtkomst till offentligt nätverk
I det här scenariot använder din Azure Managed Redis-instans offentlig nätverksåtkomst. Se till att rensa resurser när du har slutfört den här snabbstarten.
På resursmenyn går du till Inställningaroch väljer Nätverk.
Ange Åtkomst till offentligt nätverktill Aktiverad.
Konfigurera Dapr-komponenterna
I filen redis.yaml konfigurerar du komponenten så att den använder åtkomstnyckelautentisering med TLS.
- name: redisPassword
secretKeyRef:
name: redis-secret
key: redisPassword
- name: useEntraID
value: "false"
- name: enableTLS
value: true
I önskad kodredigerare navigerar du till distributionskatalogen i exempellagringsplatsen och öppnar redis.yaml.
För
redisHostersätter du platshållarvärdet<REDIS_HOST>:10000med det Azure hanterade Redis-värdnamnet som du sparade tidigare från Azure-portalen.- name: redisHost value: <your-cache-name>.<region>.redis.azure.net:10000Skapa Kubernetes-hemligheten som används av
redisPassword.kubectl create secret generic redis-secret \ --from-literal=redisPassword="$REDIS_PRIMARY_KEY"
Tillämpa konfigurationen
Använd filen redis.yaml med kommandot kubectl apply .
kubectl apply -f ./deploy/redis.yaml
Förväntade utdata
component.dapr.io/statestore created
Distribuera Node.js-appen med Dapr-sidovagnen
Konfigurera Node.js-appen
Gå till
deploykatalogen och öppna workload-identity.yaml.Ersätt
<MANAGED_IDENTITY_CLIENT_ID>med klient-ID:t för den användartilldelade hanterade identiteten som du skapade.Använd tjänstkontomanifestet innan du distribuerar appmanifest.
kubectl apply -f ./deploy/workload-identity.yaml
I node.yaml används podspecifikationen med etiketten för workload identity och det delade workload-sa servicekontot:
labels:
app: node
azure.workload.identity/use: "true"
Tillämpa konfigurationen
Använd Node.js app-distribution till klustret med hjälp av kommandot
kubectl apply.kubectl apply -f ./deploy/node.yamlKubernetes-distributioner är asynkrona, så innan du går vidare till nästa steg kontrollerar du att distributionen är klar med följande kommando:
kubectl rollout status deploy/nodeappFå åtkomst till din tjänst med hjälp av
kubectl get svckommandot .kubectl get svc nodeappAnteckna
EXTERNAL-IPi utdata och ange det som en miljövariabel.export EXTERNAL_IP=<EXTERNAL-IP>
Verifiera Node.js-tjänsten
Använd
curlför att anropa tjänsten medEXTERNAL-IP.curl $EXTERNAL_IP/portsExempel på utdata
{"DAPR_HTTP_ENDPOINT":"http://localhost:3500","DAPR_GRPC_ENDPOINT":"http://localhost:50001"}Skicka en beställning till applikationen.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworderBekräfta beställningen.
curl $EXTERNAL_IP/orderFörväntade utdata
{ "orderId": "42" }
Distribuera Python-appen med Dapr-sidovagnen
Konfigurera Python-appen
I python.yaml använder podspecifikationen etiketten för arbetsbelastningsidentitet och det delade tjänstkontot workload-sa:
labels:
app: python
azure.workload.identity/use: "true"
Tillämpa konfigurationen
Distribuera Python-appen till ditt Kubernetes-kluster med hjälp av
kubectl applykommandot .kubectl apply -f ./deploy/python.yamlKubernetes-distributioner är asynkrona, så innan du går vidare till nästa steg kontrollerar du att distributionen är klar med följande kommando:
kubectl rollout status deploy/pythonapp
Observera meddelanden och bekräfta beständighet
Nu när både Node.js- och Python-programmen har distribuerats kan du se meddelanden komma igenom.
Hämta loggarna för Node.js-appen med hjälp av
kubectl logskommandot .kubectl logs --selector=app=node -c node --tail=-1Förväntade utdata
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 stateAnropa Node.js-appens orderslutpunkt för att hämta den senaste ordern med hjälp av
curl.curl $EXTERNAL_IP/orderDu bör se de senaste JSON-utdata i svaret.
Rensa resurser
Om du inte längre planerar att använda resurserna från den här snabbstarten kan du ta bort resursgruppen, klustret, namnområdet och alla relaterade resurser med kommandot az group delete .
az group delete --name <your-resource-group>