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 de cluster do Dapr em um cluster do Kubernetes habilitado para o 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. Caso não tenha uma assinatura do Azure, é possível criar uma conta gratuita.
- CLI do Azure ou Azure PowerShell instalados.
- 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 de cluster Dapr instalada no cluster do AKS
- kubectl instalado localmente.
Clonar o repositório
Clone o repositório Inícios rápidos do Dapr usando o comando
git clone.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitAltere para o diretório
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 as instruções de início rápido "Criar um cache Redis de código-fonte aberto".
- 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.
- Anote:
- 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 na folha Configurações Avançadas do cache. 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é a folha Autenticação e verifique se a Autenticação do Microsoft Entra está habilitada em seu recurso.
Adicionar identidade gerenciada
Na folha Autenticação, digite o nome da Identidade Gerenciada que você criou como um pré-requisito no campo na caixa de seleção Habilitar Autenticação do Microsoft Entra.
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 quando terminar este início rápido.
- Navegue até a folha Ponto de Extremidade Privado.
- Clique em Habilitar o acesso à rede pública no menu superior.
Configurar os componentes da Dapr
Em redis.yaml, o componente é configurado para usar a Autenticação do Entra ID usando a 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
deploydiretório no exemplo e abraredis.yaml.Para
redisHost, substitua o valor do espaço reservado<REDIS_HOST>:<REDIS_PORT>pelo nome do host do cache do Redis e pela 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.yamlusando o comandokubectl apply.kubectl apply -f ./deploy/redis.yamlVerifique se o armazenamento do estado foi configurado com êxito usando o comando
kubectl get components.redis.kubectl get components.redis -o yamlSaí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 de carga de trabalho:
labels:
app: node
azure.workload.identity/use: "true"
Navegue até o diretório
deploye abranode.yaml.Substitua o valor do espaço reservado
<SERVICE_ACCOUNT_NAME>peloserviceAccountNamecom o 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 de carga de trabalho:
labels:
app: node
azure.workload.identity/use: "true"
Navegue até o diretório
deploye abrapython.yaml.Substitua o valor do espaço reservado
<SERVICE_ACCOUNT_NAME>peloserviceAccountNamecom o 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 pretende mais usar os recursos deste guia de início rápido, pode excluir todos os recursos associados removendo o grupo de recursos.
Remova o grupo de recursos, o cluster, o namespace e todos os recursos relacionados usando o comando az group delete.
az group delete --name MyResourceGroup