Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku Szybki start użyjesz rozszerzenia klastra Dapr w klastrze Kubernetes obsługującym usługę AKS lub Arc. Wdrażasz hello world przykład, który składa się z aplikacji w języku Python, która generuje komunikaty i Node.js aplikację, która używa i utrwala komunikaty.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Zainstalowany interfejs wiersza polecenia platformy Azure lub program Azure PowerShell .
- Klaster usługi AKS z:
- Włączono tożsamość obciążenia
- Tożsamość zarządzana utworzona w tej samej subskrypcji
- Konto usługi Kubernetes
- Poświadczenia tożsamości federacyjnej
- Rozszerzenie klastra Dapr zainstalowane w klastrze usługi AKS
- narzędzie kubectl zainstalowane lokalnie.
Klonowanie repozytorium
Sklonuj repozytorium Szybki start języka Dapr przy użyciu
git clonepolecenia .git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitPrzejdź do
dapr-aks-extension-quickstartkatalogu.
Tworzenie i konfigurowanie magazynu Redis
Otwórz witrynę Azure Portal, aby uruchomić przepływ tworzenia usługi Azure Cache for Redis.
- Wypełnij zalecane informacje zgodnie z instrukcjami szybkiego startu "Tworzenie pamięci podręcznej Redis Cache typu open source".
- Wybierz pozycję Utwórz , aby rozpocząć wdrażanie wystąpienia usługi Redis.
Weryfikowanie informacji o zasobie
- Po wdrożeniu zasobu usługi Redis przejdź do strony przeglądu.
- Zanotuj następujące kwestie:
- Nazwa hosta znajduje się w sekcji Podstawy strony przeglądu pamięci podręcznej. Format nazwy hosta wygląda podobnie do:
xxxxxx.redis.cache.windows.net. - Port SSL znajdujący się w bloku Ustawienia zaawansowane pamięci podręcznej. Domyślna wartość to
6380.
- Nazwa hosta znajduje się w sekcji Podstawy strony przeglądu pamięci podręcznej. Format nazwy hosta wygląda podobnie do:
- Przejdź do bloku Uwierzytelnianie i sprawdź, czy w zasobie jest włączone uwierzytelnianie entra firmy Microsoft.
Dodawanie tożsamości zarządzanej
W bloku Uwierzytelnianie wpisz nazwę tożsamości zarządzanej utworzonej jako wymaganie wstępne w polu w obszarze Wyboru Włącz uwierzytelnianie firmy Microsoft Entra.
Sprawdź, czy tożsamość zarządzana została dodana jako uprawnienia zasad dostępu właściciela danych przypisanego przez użytkownika usługi Redis.
Włączanie dostępu do sieci publicznej
W tym scenariuszu pamięć podręczna Redis Cache używa dostępu do sieci publicznej. Pamiętaj, aby wyczyścić zasoby po zakończeniu pracy z tym przewodnikiem Szybki start.
- Przejdź do bloku Prywatny punkt końcowy .
- Kliknij pozycję Włącz dostęp do sieci publicznej z górnego menu.
Konfigurowanie składników języka Dapr
W redis.yamlsystemie składnik jest skonfigurowany do używania uwierzytelniania entra ID przy użyciu tożsamości obciążenia włączonej dla klastra usługi AKS. Nie są wymagane żadne klucze dostępu.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
W preferowanym edytorze kodu przejdź do
deploykatalogu w przykładzie i otwórz plikredis.yaml.W polu
redisHostzastąp wartość symbolu zastępczego<REDIS_HOST>:<REDIS_PORT>nazwą hosta pamięci podręcznej Redis Cache i portem SSL zapisanym wcześniej w witrynie Azure Portal.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Stosowanie konfiguracji
redis.yamlZastosuj plik przy użyciukubectl applypolecenia .kubectl apply -f ./deploy/redis.yamlSprawdź, czy magazyn stanów został pomyślnie skonfigurowany przy użyciu
kubectl get components.redispolecenia .kubectl get components.redis -o yamlOczekiwane dane wyjściowe
component.dapr.io/statestore created
Wdrażanie aplikacji Node.js za pomocą przyczepki Dapr
Konfigurowanie aplikacji Node.js
W node.yamlpliku specyfikacja zasobnika zawiera etykietę dodaną do używania tożsamości obciążenia:
labels:
app: node
azure.workload.identity/use: "true"
Przejdź do
deploykatalogu i otwórz pliknode.yaml.Zastąp wartość symbolu zastępczego
<SERVICE_ACCOUNT_NAME>nazwąserviceAccountNameutworzonego konta usługi.- Ta wartość powinna być tym samym kontem usługi, które zostało użyte do utworzenia poświadczeń tożsamości federacyjnej.
Stosowanie konfiguracji
Zastosuj wdrożenie aplikacji Node.js do klastra
kubectl applyprzy użyciu polecenia .kubectl apply -f ./deploy/node.yamlWdrożenia platformy Kubernetes są asynchroniczne, więc przed przejściem do następnych kroków sprawdź, czy wdrożenie zostało ukończone przy użyciu następującego polecenia:
kubectl rollout status deploy/nodeappUzyskaj dostęp do usługi przy użyciu
kubectl get svcpolecenia .kubectl get svc nodeappZanotuj element
EXTERNAL-IPw danych wyjściowych.
Weryfikowanie usługi Node.js
Za pomocą polecenia
curlwywołaj usługę za pomocą poleceniaEXTERNAL-IP.curl $EXTERNAL_IP/portsPrzykładowe dane wyjściowe
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}Prześlij zamówienie do aplikacji.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworderPotwierdź zamówienie.
curl $EXTERNAL_IP/orderOczekiwane dane wyjściowe
{ "orderId": "42" }
Wdrażanie aplikacji w języku Python przy użyciu przyczepki języka Dapr
Konfigurowanie aplikacji w języku Python
W specyfikacji zasobnika python.yaml etykieta została dodana do używania tożsamości obciążenia:
labels:
app: node
azure.workload.identity/use: "true"
Przejdź do
deploykatalogu i otwórz plikpython.yaml.Zastąp wartość symbolu zastępczego
<SERVICE_ACCOUNT_NAME>nazwąserviceAccountNameutworzonego konta usługi.- Ta wartość powinna być tym samym kontem usługi, które zostało użyte do utworzenia poświadczeń tożsamości federacyjnej.
Stosowanie konfiguracji
Wdróż aplikację w języku Python w klastrze Kubernetes przy użyciu
kubectl applypolecenia .kubectl apply -f ./deploy/python.yamlWdrożenia platformy Kubernetes są asynchroniczne, więc przed przejściem do następnych kroków sprawdź, czy wdrożenie zostało ukończone przy użyciu następującego polecenia:
kubectl rollout status deploy/pythonapp
Obserwowanie komunikatów i potwierdzanie trwałości
Teraz, gdy wdrażane są zarówno aplikacje Node.js, jak i Python, możesz obserwować komunikaty.
Pobierz dzienniki aplikacji Node.js przy użyciu
kubectl logspolecenia .kubectl logs --selector=app=node -c node --tail=-1Oczekiwane dane wyjściowe
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 stateZa pomocą metody
curlwywołaj punkt końcowy zamówienia aplikacji Node.js, aby uzyskać najnowsze zamówienie.curl $EXTERNAL_IP/orderW odpowiedzi powinny zostać wyświetlone najnowsze dane wyjściowe JSON.
Czyszczenie zasobów
Jeśli nie planujesz już korzystać z zasobów z tego przewodnika Szybki start, możesz usunąć wszystkie skojarzone zasoby, usuwając grupę zasobów.
Usuń grupę zasobów, klaster, przestrzeń nazw i wszystkie powiązane zasoby przy użyciu polecenia az group delete .
az group delete --name MyResourceGroup