Tutorial: Integrar o Administrador do Spring ao Servidor Eureka para Spring nos Aplicativos de Contêiner do Azure
Este tutorial orientará você no processo de integração de um Administrador Gerenciado para Spring com um Servidor Eureka para Spring nos Aplicativos de Contêiner do Azure.
Este artigo contém um conteúdo semelhante ao tutorial "Conectar a um Administrador do Spring gerenciado nos Aplicativos de Contêiner do Azure", mas com o Servidor Eureka para Spring, você pode associar o Administrador do Spring ao Servidor Eureka para Spring para que ele possa obter informações do aplicativo por meio do Eureka, em vez de precisar vincular aplicativos individuais ao Administrador do Spring.
Ao seguir este guia, você configurará um Servidor Eureka para descoberta de serviços e, em seguida, criará um Administrador para Spring para gerenciar e monitorar seus aplicativos Spring registrados no Servidor Eureka. Essa configuração garante que outros aplicativos só precisem ser vinculados ao Servidor Eureka, simplificando o gerenciamento de seus microsserviços.
Neste tutorial, você aprenderá a:
- Crie um Servidor Eureka para Spring.
- Crie um Administrador do Spring e o vincule ao Servidor Eureka.
- Vincule outros aplicativos ao Servidor Eureka para uma descoberta e gerenciamento de serviço simplificados.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Caso ainda não tenha uma, você pode criar uma gratuitamente.
- CLI do Azure.
- Um componente Java do Servidor Eureka para Spring existente. Se você não tiver um, confira Criar o Servidor Eureka para Spring.
Considerações
Ao executar componentes Java gerenciados nos Aplicativos de Contêiner do Azure, esteja ciente dos seguintes detalhes:
Item | Explicação |
---|---|
Escopo | Os componentes são executados no mesmo ambiente que o aplicativo de contêiner conectado. |
Dimensionamento | O componente não pode ser escalado. As propriedades de dimensionamento minReplicas e maxReplicas estão definidas como 1 . |
Recursos | A alocação de recursos do contêiner para componentes é fixa. O número de núcleos de CPU é de 0,5 e o tamanho da memória é 1 Gi. |
Preços | A cobrança do complemento é incluída na categoria de preços baseados em consumo. Os recursos consumidos por componentes gerenciados são cobrados de acordo com as tarifas de uso ativo/ocioso. Você pode excluir componentes que não estão mais em uso para interromper a cobrança. |
Associação | Os aplicativos de contêiner se conectam a um componente por meio de uma vinculação. As associações injetam as configurações nas variáveis de ambiente do aplicativo de contêiner. Depois que uma associação for estabelecida, o aplicativo de contêiner poderá ler os valores de configuração das variáveis de ambiente e se conectar ao componente. |
Instalação
Antes de começar, crie os recursos necessários executando os comandos a seguir.
Crie variáveis para dar suporte à configuração do aplicativo. Esses valores são fornecidos para você para os fins desta lição.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_NAME=eureka export ADMIN_COMPONENT_NAME=admin export CLIENT_APP_NAME=sample-service-eureka-client export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
Variável Descrição LOCATION
O local da região do Azure na qual você cria seu aplicativo de contêiner e os componentes Java. RESOURCE_GROUP
O nome do grupo de recursos do Azure para seu aplicativo de demonstração. ENVIRONMENT
O nome do ambiente dos Aplicativos de Contêiner do Azure para seu aplicativo de demonstração. EUREKA_COMPONENT_NAME
O nome do componente Java do Servidor Eureka. ADMIN_COMPONENT_NAME
O nome do componente Java do Administrador do Spring. CLIENT_APP_NAME
O nome do aplicativo de contêiner que será associado ao Servidor Eureka. CLIENT_IMAGE
A imagem de contêiner usada no seu aplicativo de contêiner do Servidor Eureka. Faça logon no Azure com a CLI do Azure.
az login
Crie um grupos de recursos.
az group create --name $RESOURCE_GROUP --location $LOCATION
Crie seu ambiente de aplicativos de contêiner.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"
O uso do parâmetro
--query
filtra a resposta para mostrar uma mensagem simples de sucesso ou falha.
Opcional: Criar o Servidor Eureka para Spring
Se você não tiver um Servidor Eureka para Spring existente, siga o comando abaixo para criar o componente Java do Servidor Eureka. Para obter mais informações, confira Criar o Servidor Eureka para Spring.
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_NAME
Vincular os componentes entre si
Crie o componente Java do Administrador do Spring.
az containerapp env java-component admin-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $ADMIN_COMPONENT_NAME \
--min-replicas 1 \
--max-replicas 1 \
--bind $EUREKA_COMPONENT_NAME
Vincular outros aplicativos ao Servidor Eureka
Com o Servidor Eureka configurado, agora você pode vincular outros aplicativos a ele para a descoberta de serviço. Além disso, você também pode monitorar e gerenciar esses aplicativos no painel de controle do Administrador do Spring. Use as seguintes etapas para criar e associar um aplicativo de contêiner ao Servidor Eureka:
Crie o aplicativo de contêiner e o vincule ao Servidor Eureka para Spring.
az containerapp create \
--name $CLIENT_APP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $CLIENT_IMAGE \
--min-replicas 1 \
--max-replicas 1 \
--ingress external \
--target-port 8080 \
--bind $EUREKA_COMPONENT_NAME
Dica
Como as etapas anteriores vinculam o componente do Administrador do Spring ao componente do Servidor Eureka para Spring, o componente do Administrador habilita a descoberta do serviço e permite que você o gerencie por meio do painel de controle do Administrador do Spring ao mesmo tempo.
Ver os painéis de controle
Importante
Para exibir o painel, você precisa ter pelo menos a função Microsoft.App/managedEnvironments/write
atribuída à sua conta no recurso de ambiente gerenciado. Você pode atribuir explicitamente a função Owner
ou Contributor
no recurso ou seguir as etapas para criar uma definição de função personalizada e atribuí-la à sua conta.
Criar a definição de função personalizada.
az role definition create --role-definition '{ "Name": "Java Component Dashboard Access", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'
Substitua o espaço reservado
<SUBSCRIPTION_ID>
no valorAssignableScopes
pela ID da assinatura.Atribua a função personalizada à sua conta no recurso de ambiente gerenciado.
Obtenha a ID do recurso do ambiente gerenciado.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Atribua a função à sua conta.
Antes de executar esse comando, substitua o espaço reservado
<USER_OR_SERVICE_PRINCIPAL_ID>
pela sua ID do usuário ou da entidade de serviço.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Obtenha a URL do painel de controle do Administrador do Spring.
az containerapp env java-component admin-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsv
Obtenha a URL do painel de controle do Servidor Eureka para Spring.
az containerapp env java-component eureka-server-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsv
Esse comando retorna a URL que você pode usar para acessar o painel de controle do Servidor Eureka para Spring. Por meio do painel de controle, seu aplicativo de contêiner também aparece para você conforme mostrado na captura de tela a seguir.
Limpar os recursos
Os recursos criados neste tutorial têm um efeito na sua fatura do Azure. Se você não usar esses serviços a longo prazo, execute o comando a seguir para remover tudo o que foi criado neste tutorial.
az group delete --resource-group $RESOURCE_GROUP