Partilhar via


Tutorial: Integrar o Admin for Spring com o Eureka Server for Spring em Aplicativos de Contêiner do Azure

Este tutorial orienta você pelo processo de integração de um administrador gerenciado para o Spring com um servidor Eureka para o Spring nos Aplicativos de Contêiner do Azure.

Este artigo contém algum conteúdo semelhante ao tutorial "Conectar-se a um administrador gerenciado para o Spring no Azure Container Apps", mas com o Eureka Server for Spring, você pode vincular o Admin for Spring ao Eureka Server for Spring, para que ele possa obter informações sobre aplicativos por meio do Eureka, em vez de ter que vincular aplicativos individuais ao Admin for Spring.

Seguindo este guia, você configura um servidor Eureka para descoberta de serviços e, em seguida, cria um administrador para o Spring para gerenciar e monitorar seus aplicativos Spring registrados no servidor Eureka. Esta configuração garante que outras aplicações apenas precisam de se ligar ao Servidor Eureka, simplificando a gestão dos seus microsserviços.

Neste tutorial, irá aprender a:

  1. Crie um servidor Eureka para o Spring.
  2. Crie um administrador para o Spring e vincule-o ao servidor Eureka.
  3. Associe outros aplicativos ao Servidor Eureka para simplificar a descoberta e o gerenciamento de serviços.

Pré-requisitos

Considerações

Ao executar componentes Java gerenciados em Aplicativos de Contêiner do Azure, esteja ciente dos seguintes detalhes:

Item Explicação
Âmbito Os componentes são executados no mesmo ambiente que o aplicativo de contêiner conectado.
Dimensionamento O componente não pode ser dimensionado. As propriedades minReplicas de dimensionamento e maxReplicas estão ambas definidas como 1.
Recursos A alocação de recursos de contêiner para componentes é fixa. O número de núcleos da CPU é 0.5 e o tamanho da memória é 1 Gi.
Preços A faturação dos componentes enquadra-se nos preços baseados no consumo. Os recursos consumidos pelos componentes gerenciados são cobrados pelas taxas ativas/ociosas. Você pode excluir componentes que não estão mais em uso para interromper a cobrança.
Enlace Os aplicativos de contêiner se conectam a um componente por meio de uma ligação. As associações injetam configurações em variáveis de ambiente do aplicativo de contêiner. Depois que uma associação é estabelecida, o aplicativo contêiner pode ler os valores de configuração das variáveis de ambiente e se conectar ao componente.

Configurar

Antes de começar, crie os recursos necessários executando os seguintes comandos.

  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 Description
    LOCATION O local da região do Azure onde você cria seu aplicativo de contêiner e 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 Eureka Server.
    ADMIN_COMPONENT_NAME O nome do componente Admin para Spring Java.
    CLIENT_APP_NAME O nome do aplicativo contêiner que se liga ao servidor Eureka.
    CLIENT_IMAGE A imagem de contêiner usada em seu aplicativo de contêiner Eureka Server.
  2. Faça logon no Azure com a CLI do Azure.

    az login
    
  3. Crie um grupo 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 --query parâmetro filtra a resposta até uma simples mensagem de sucesso ou falha.

Opcional: Criar o servidor Eureka para o Spring

Se você não tiver um Eureka Server for Spring existente, siga o comando abaixo para criar o componente Java do Eureka Server. Para obter mais informações, consulte Criar o servidor Eureka para o Spring.

az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_NAME

Unir os componentes

Crie o componente Admin for Spring Java.

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 descoberta de serviço. E você também pode monitorar e gerenciar esses aplicativos no painel do Admin for Spring. Use as seguintes etapas para criar e vincular um aplicativo de contêiner ao servidor Eureka:

Crie a aplicação de contentor e associe-a ao Servidor Eureka.

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 

Gorjeta

Como as etapas anteriores vinculavam o componente Admin for Spring ao componente Eureka Server for Spring, o componente Admin permite a descoberta de serviços e permite que você o gerencie por meio do painel Admin for Spring ao mesmo tempo.

Ver os painéis

Importante

Para exibir o painel, você precisa ter pelo menos a Microsoft.App/managedEnvironments/write função atribuída à sua conta no recurso de ambiente gerenciado. Você pode atribuir Owner explicitamente ou Contributor desempenhar uma função no recurso ou seguir as etapas para criar uma definição de função personalizada e atribuí-la à sua conta.

  1. Crie 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>"]
    }'
    

    Certifique-se de substituir o AssignableScopes espaço reservado <SUBSCRIPTION_ID> no valor pelo seu ID de 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 pelo ID do <USER_OR_SERVICE_PRINCIPAL_ID> 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 o URL do painel Admin for 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 o URL do painel do Eureka Server for 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
    

    Este comando devolve o URL que pode utilizar para aceder ao painel do Eureka Server for Spring. Através do painel, seu aplicativo de contêiner também está para você, conforme mostrado na captura de tela a seguir.

    Captura de ecrã do painel Admin for Spring.

    Captura de ecrã do painel do Eureka Server for Spring.

Clean up resources (Limpar recursos)

Os recursos criados neste tutorial têm um efeito na sua fatura do Azure. Se você não vai usar esses serviços a longo prazo, execute o seguinte comando para remover tudo o que foi criado neste tutorial.

az group delete --resource-group $RESOURCE_GROUP