Compartilhar via


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:

  1. Crie um Servidor Eureka para Spring.
  2. Crie um Administrador do Spring e o vincule ao Servidor Eureka.
  3. Vincule outros aplicativos ao Servidor Eureka para uma descoberta e gerenciamento de serviço simplificados.

Pré-requisitos

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.

  1. 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.
  2. Faça logon no Azure com a CLI do Azure.

    az login
    
  3. Crie um grupos de recursos.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. 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.

  1. 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 valor AssignableScopes pela ID da assinatura.

  2. 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)
    
  3. 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
    
  4. 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
    
  5. 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.

    Captura de tela do painel de controle do Administrador do Spring.

    Captura de tela do painel de controle do Servidor Eureka para Spring.

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