Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste início rápido, você usa a extensão de cluster Dapr em um cluster Kubernetes habilitado para AKS ou Arc. Você implanta um hello world exemplo, que consiste em um aplicativo Python que gera mensagens e um aplicativo Node.js que consome e persiste as mensagens.
Pré-requisitos
- Uma subscrição do Azure. Se não tiver uma subscrição do Azure, pode criar uma conta gratuita.
- CLI do Azure ou Azure PowerShell instalado.
- Um cluster AKS com:
- Identidade de carga de trabalho ativada
- Identidade gerenciada criada na mesma assinatura
- Uma conta de serviço do Kubernetes
- Credencial de identidade federada
- Extensão de cluster Dapr instalada no cluster AKS
- Kubectl instalado localmente.
Clonar o repositório
Clone o repositório de inícios rápidos do Dapr usando o
git clonecomando.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitMude para o
dapr-aks-extension-quickstartdiretório.
Criar e configurar uma loja Redis
Abra o portal do Azure para iniciar o fluxo de criação do Cache do Azure para Redis.
- Preencha as informações recomendadas de acordo com as instruções de início rápido "Criar um cache Redis de código aberto".
- Selecione Criar para iniciar a implantação da instância Redis.
Verificar informações de recursos
- Depois que o recurso Redis for implantado, navegue até a página de visão geral.
- Tome nota:
- O nome do host, encontrado na secção Essentials da página de visão geral do cache. O formato hostname é semelhante a:
xxxxxx.redis.cache.windows.net. - A porta SSL, encontrada na folha Configurações avançadas do cache. O valor predefinido é
6380.
- O nome do host, encontrado na secção Essentials da página de visão geral do cache. O formato hostname é semelhante a:
- Navegue até ao painel Autenticação e verifique se a Autenticação do Microsoft Entra está ativada no seu recurso.
Adicionar identidade gerenciada
No painel Autenticação, digite o nome da Identidade Gerida que criou como pré-requisito no campo abaixo da caixa de seleção Habilitar Autenticação do Microsoft Entra.
Verifique se a sua identidade gerida foi adicionada com permissões de Política de Acesso de Proprietário de Dados atribuídas a um utilizador de Redis.
Habilitar acesso à rede pública
Para esse cenário, o cache Redis usa acesso à rede pública. Certifique-se de limpar os recursos quando terminar este início rápido.
- Navegue até ao Endpoint Privado painel.
- Clique em Ativar acesso à rede pública no menu superior.
Configurar os componentes do Dapr
No redis.yaml, o componente é configurado para usar a Autenticação de ID do Entra usando a identidade de carga de trabalho habilitada para o cluster AKS. Não são necessárias chaves de acesso.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
No editor de códigos da sua preferência, navegue até ao diretório
deployno exemplo e abraredis.yaml.Para
redisHost, substitua o valor do marcador<REDIS_HOST>:<REDIS_PORT>pelo nome de host do cache Redis e pela porta do SSL que guardou anteriormente do portal do Azure.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Aplicar a configuração
Aplique o
redis.yamlarquivo usando okubectl applycomando.kubectl apply -f ./deploy/redis.yamlVerifique se o armazenamento de estado foi configurado com êxito usando o
kubectl get components.rediscomando.kubectl get components.redis -o yamlResultados esperados
component.dapr.io/statestore created
Implemente a aplicação Node.js com o sidecar Dapr
Configurar o aplicativo Node.js
Em node.yaml, a especificação do pod inclui o rótulo para usar a identidade da carga de trabalho:
labels:
app: node
azure.workload.identity/use: "true"
Navegue até o diretório
deploye abranode.yaml.Substitua o valor de espaço reservado
<SERVICE_ACCOUNT_NAME>paraserviceAccountNamepelo nome da conta de serviço que você criou.- Esse valor deve ser a mesma conta de serviço usada para criar a credencial de identidade federada.
Aplicar a configuração
Aplique a implantação do aplicativo Node.js ao cluster usando o
kubectl applycomando.kubectl apply -f ./deploy/node.yamlAs implantações do Kubernetes são assíncronas, portanto, antes de passar para as próximas etapas, verifique se a implantação está concluída com o seguinte comando:
kubectl rollout status deploy/nodeappAcesse seu serviço usando o
kubectl get svccomando.kubectl get svc nodeappAnote o
EXTERNAL-IPna saída.
Verificar o serviço Node.js
Usando
curl, chame o serviço com o seuEXTERNAL-IP.curl $EXTERNAL_IP/portsExemplo de saída
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}Envie um pedido para o aplicativo.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworderConfirme a encomenda.
curl $EXTERNAL_IP/orderResultados esperados
{ "orderId": "42" }
Implante o aplicativo Python com o sidecar Dapr
Configurar o aplicativo Python
Em python.yaml, a especificação do pod tem o rótulo adicionado para usar a identidade da carga de trabalho:
labels:
app: node
azure.workload.identity/use: "true"
Navegue até o diretório
deploye abrapython.yaml.Substitua o valor de espaço reservado
<SERVICE_ACCOUNT_NAME>paraserviceAccountNamepelo nome da conta de serviço que você criou.- Esse valor deve ser a mesma conta de serviço usada para criar a credencial de identidade federada.
Aplicar a configuração
Implante o aplicativo Python em seu cluster Kubernetes usando o
kubectl applycomando.kubectl apply -f ./deploy/python.yamlAs implantações do Kubernetes são assíncronas, portanto, antes de passar para as próximas etapas, verifique se a implantação está concluída com o seguinte comando:
kubectl rollout status deploy/pythonapp
Observe as mensagens e confirme a persistência
Agora que os aplicativos Node.js e Python estão implantados, você pode ver as mensagens chegarem.
Obtenha os logs do aplicativo Node.js usando o
kubectl logscomando.kubectl logs --selector=app=node -c node --tail=-1Resultados esperados
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 stateUsando
curl, chame o endpoint de pedidos da aplicação Node.js para obter o pedido mais recente.curl $EXTERNAL_IP/orderVocê deve ver a saída JSON mais recente na resposta.
Limpar recursos
Se você não planeja mais usar os recursos deste início rápido, poderá excluir todos os recursos associados removendo o grupo de recursos.
Remova o grupo de recursos, cluster, namespace e todos os recursos relacionados usando o comando az group delete .
az group delete --name MyResourceGroup