Condividi tramite


Esercitazione: Integrare il componente Amministrazione per Spring con Eureka Server per Spring in App contenitore di Azure

Questa esercitazione illustra il processo di integrazione di un componente Amministrazione gestita per Spring con un Eureka Server per Spring all'interno di App contenitore di Azure.

Questo articolo offre contenuto simile all'esercitazione "Connettersi a un componente Amministrazione gestita per Spring in App contenitore di Azure", ma con Eureka Server per Spring è possibile associare il componente Amministrazione per Spring a Eureka Server per Spring, in modo che possa ottenere informazioni sull'applicazione tramite Eureka, invece di dover associare singole applicazioni al componente Amministrazione per Spring.

Seguendo questa guida si configurerà un server Eureka Server per l'individuazione dei servizi e quindi si creerà un componente Amministrazione per Spring per gestire e monitorare le applicazioni Spring registrate con Eureka Server. Questa configurazione garantisce che le altre applicazioni debbano essere associate solo a Eureka Server, semplificando la gestione dei microservizi.

In questa esercitazione si apprenderà come:

  1. Creare un'istanza di Eureka Server per Spring.
  2. Creare un componente Amministrazione per Spring e collegarlo a Eureka Server.
  3. Associare altre applicazioni a Eureka Server per facilitare l'individuazione e la gestione dei servizi.

Prerequisiti

Per completare l'esercitazione, sono necessari gli elementi seguenti:

Requisito Istruzioni
Account di Azure È necessaria una sottoscrizione attiva. Se non hai un account, puoi crearlo gratuitamente.
Interfaccia della riga di comando di Azure Installare l'interfaccia della riga di comando di Azure.
Un componente Eureka Server per Spring Java esistente Se non è disponibile, seguire la sezione Creare Eureka Server per Spring per crearne uno.

Considerazioni

Quando si eseguono componenti Java gestiti in App contenitore di Azure, tenere presenti i dettagli seguenti:

Articolo Spiegazione
Scope I componenti vengono eseguiti nello stesso ambiente dell'app contenitore connessa.
Ridimensionamento Il componente non può essere ridimensionato. Le proprietà di ridimensionamento minReplicas e maxReplicas sono entrambe impostate su 1.
Risorse L'allocazione delle risorse del contenitore per i componenti è fissa. Il numero di core CPU è 0,5 e la dimensione della memoria è 1 Gi.
Prezzi La fatturazione dei componenti rientra nei prezzi basati sul consumo. Le risorse utilizzate dai componenti gestiti vengono fatturate in base alle tariffe attive/inattive. È possibile eliminare i componenti che non sono più in uso per interrompere la fatturazione.
Binding Le app contenitore si connettono a un componente tramite un'associazione. Le associazioni inseriscsono le configurazioni nelle variabili di ambiente dell'app contenitore. Dopo aver stabilito un'associazione, l'app contenitore può leggere i valori di configurazione dalle variabili di ambiente e connettersi al componente.

Attrezzaggio

Prima di iniziare, creare le risorse necessarie eseguendo i comandi seguenti.

  1. Creare le variabili per supportare la configurazione dell'applicazione. Questi valori vengono forniti ai fini di questa lezione.

    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"
    
    Variabile Descrizione
    LOCATION Area di Azure in cui si creano l'app contenitore e il componente Java.
    RESOURCE_GROUP Nome del gruppo di risorse di Azure per l'applicazione demo.
    ENVIRONMENT Nome dell'ambiente App contenitore di Azure per l'applicazione demo.
    EUREKA_COMPONENT_NAME Nome del componente Java Eureka Server.
    ADMIN_COMPONENT_NAME Nome del componente Java Amministrazione per Spring.
    CLIENT_APP_NAME Nome dell'app contenitore che verrà associata a Eureka Server.
    CLIENT_IMAGE Immagine del contenitore usata nell'app contenitore Eureka Server.
  2. Accedere ad Azure con l'interfaccia della riga di comando di Azure.

    az login
    
  3. Creare un gruppo di risorse.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Creare l'ambiente app contenitore.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --query "properties.provisioningState"
    

    L'uso del parametro --query filtra la risposta fino a un semplice messaggio di esito positivo o negativo.

Facoltativo: creare Eureka Server per Spring

Se non si dispone di un server Eureka Server esistente per Spring, seguire il comando seguente per creare il componente Java Eureka Server. Per altre informazioni, vedere [Creare Eureka Server per Spring](java-eureka-server.md#create-the-eureka server-for-spring-java-component).

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

Associare i componenti

Creare il componente Java Amministrazione per 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

Associare altre app a Eureka Server

Dopo aver configurato Eureka Server, è ora possibile associarvi altre applicazioni per l'individuazione dei servizi. È anche possibile monitorare e gestire queste applicazioni nel dashboard di Amministrazione per Spring. Seguire questa procedura per creare e associare un'app contenitore a Eureka Server:

Creare l'app contenitore e associarla a Eureka Server.

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 

Suggerimento

Poiché nei passaggi precedenti è stato associato il componente Amministrazione per Spring al componente Eureka Server per Spring, il componente Amministrazione abilita l'individuazione del servizio e consente di gestirlo contemporaneamente tramite il dashboard di Amministrazione per Spring.

Visualizzare i dashboard

Importante

Per visualizzare il dashboard, è necessario che all'account sia assegnato almeno il ruolo Microsoft.App/managedEnvironments/write nella risorsa ambiente gestito. È possibile assegnare in modo esplicito il ruolo Owner o Contributor nella risorsa oppure seguire la procedura per creare una definizione del ruolo personalizzata e assegnarla all'account.

  1. Creare la definizione del ruolo personalizzata.

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

    Assicurarsi di sostituire il segnaposto tra le parentesi <> nel valore AssignableScopes con l'ID sottoscrizione in uso.

  2. Assegnare il ruolo personalizzato all'account nella risorsa ambiente gestito.

    Ottenere l'ID risorsa dell'ambiente gestito.

    export ENVIRONMENT_ID=$(az containerapp env show \
      --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
      --query id -o tsv)
    
  3. Assegnare il ruolo all'account.

    Prima di eseguire questo comando, sostituire il segnaposto tra parentesi <> con l'ID utente o l'entità servizio.

    az role assignment create \
      --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
      --role "Java Component Dashboard Access" \
      --scope $ENVIRONMENT_ID
    
  4. Ottenere l'URL del dashboard di Amministrazione per Spring.

    az containerapp env java-component admin-for-spring show \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $ADMIN_COMPONENT_NAME \
      --query properties.ingress.fqdn -o tsv
    
  5. Ottenere l'URL del dashboard di Eureka Server per 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 -o tsv
    

    Questo comando restituisce l'URL che è possibile usare per accedere al dashboard di Eureka Server per Spring. Tramite il dashboard, l'app contenitore è disponibile anche come illustrato nello screenshot seguente.

    Screenshot del dashboard di Amministrazione per Spring.

    Screenshot del dashboard di Eureka Server per Spring.

Pulire le risorse

Le risorse create in questa esercitazione hanno effetto sulla fattura di Azure. Se non si intende usare questi servizi a lungo termine, eseguire il comando seguente per rimuovere tutti gli elementi creati in questa esercitazione.

az group delete \
    --resource-group $RESOURCE_GROUP

Passaggi successivi