Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você usará a extensão Dapr em um cluster Kubernetes com suporte a 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 assinatura do Azure. Se você não tiver uma, poderá criar uma conta gratuita.
- CLI do Azure instalada
- Um cluster do AKS com:
- Identidade da carga de trabalho habilitada
- Identidade gerenciada criada na mesma assinatura
- Uma conta de serviço do Kubernetes
- Credencial da identidade federada
- Extensão dapr instalada no cluster do AKS
- kubectl instalado localmente
Clonar o repositório
Clone o repositório de início rápido do Dapr usando o
git clonecomando.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitAltere para o diretório
dapr-aks-extension-quickstart.cd dapr-aks-extension-quickstart
Criar e configurar um repositório de 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 o guia de início rápido Criar uma instância do Cache do Azure para Redis.
Selecione criar para iniciar a implantação da instância do Redis.
Verifique as informações do recurso
Depois que o recurso Redis for implantado, navegue até sua página de visão geral.
Tome nota:
- O nome do host, encontrado na seção Essentials da página de visão geral do cache. O formato do nome do host é semelhante a:
xxxxxx.redis.cache.windows.net. - A porta SSL, encontrada em Configurações>Configurações avançadas. O valor padrão é
6380.
- O nome do host, encontrado na seção Essentials da página de visão geral do cache. O formato do nome do host é semelhante a:
Navegue até Configurações>Autenticação e verifique se a Autenticação do Microsoft Entra está habilitada em seu recurso.
Adicionar identidade gerenciada
Na seção Autenticação , na caixa de seleção Habilitar Autenticação do Microsoft Entra , insira o nome da identidade gerenciada que você criou como um pré-requisito.
Verifique se a sua identidade gerenciada foi adicionada como um usuário do Redis com permissões de Política de Acesso de Proprietário de Dados atribuídas.
Habilitar acesso à rede pública
Para esse cenário, o cache do Redis usa o acesso à rede pública. Certifique-se de limpar os recursos depois de concluir este início rápido.
Navegue até Configurações>Ponto de Extremidade Privado.
Selecione Habilitar acesso à rede pública no menu.
Configurar os componentes da Dapr
No arquivo redis.yaml, o componente é configurado para usar a autenticação por ID do Entra com identidade de carga de trabalho habilitada para o cluster do AKS. Nenhuma chave de acesso é necessária.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
No editor de código preferido, navegue até o diretório de implantação no repositório de exemplo e abra redis.yaml.
Para
redisHost, substitua o valor do placeholder<REDIS_HOST>:<REDIS_PORT>pelo hostname do cache Redis e a porta SSL que você salvou anteriormente no portal do Azure.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Aplicar a configuração
Aplique o arquivo redis.yaml usando o kubectl apply comando.
kubectl apply -f ./deploy/redis.yaml
Saída esperada
component.dapr.io/statestore created
Implantar o aplicativo Node.js com o sidecar do Dapr
Configure o aplicativo Node.js
No node.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
deploydiretório e abra node.yaml.Substitua o valor do espaço reservado
<SERVICE_ACCOUNT_NAME>pelo nome da conta de serviço que você criou.- Esse valor deve ser a mesma conta de serviço que você usou para criar a credencial de identidade federada.
Aplicar a configuração
Aplique a implantação do aplicativo Node.js ao seu cluster com o comando
kubectl apply.kubectl apply -f ./deploy/node.yamlAs implantações do Kubernetes são assíncronas, portanto, antes de prosseguir para as próximas etapas, verifique se a implantação foi concluída com o seguinte comando:
kubectl rollout status deploy/nodeappAcesse seu serviço usando o comando
kubectl get svc.kubectl get svc nodeappAnote o
EXTERNAL-IPna saída.
Verificar o serviço de Node.js
Usando
curl, chame o serviço com seuEXTERNAL-IP.curl <EXTERNAL-IP>/portsSaída de exemplo:
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}Envie um pedido através do aplicativo.
curl --request POST --data "@sample.json" --header Content-Type:application/json <EXTERNAL-IP>/neworderConfirme o pedido.
curl <EXTERNAL-IP>/orderSaída esperada
{ "orderId": "42" }
Implantar o aplicativo Python com o sidecar do Dapr
Configurar o aplicativo do Python
No 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
deploydiretório e abra python.yaml.Substitua o valor do espaço reservado
pelo nome da conta de serviço que você criou . - Esse valor deve ser a mesma conta de serviço que você usou para criar a credencial de identidade federada.
Aplicar a configuração
Implemente o aplicativo Python em seu cluster do Kubernetes com o comando
kubectl apply.kubectl apply -f ./deploy/python.yamlAs implantações do Kubernetes são assíncronas, portanto, antes de prosseguir para as próximas etapas, verifique se a implantação foi concluída com o seguinte comando:
kubectl rollout status deploy/pythonapp
Observar mensagens e confirmar a persistência
Agora que os aplicativos Node.js e Python estão implantados, você pode acompanhar a chegada das mensagens.
Obtenha os logs do aplicativo Node.js usando o comando
kubectl logs.kubectl logs --selector=app=node -c node --tail=-1Saída esperada
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 ponto de extremidade de pedidos do aplicativo Node.js para obter o pedido mais recente.curl <EXTERNAL-IP>/orderVocê deverá ver a última saída JSON na resposta.
Limpar os recursos
Se você não planeja mais usar os recursos deste início rápido, poderá remover o grupo de recursos, o cluster, o namespace e todos os recursos relacionados usando o comando az group delete .
az group delete --name <your-resource-group>