Dela via


Självstudie: Integrera administratör för Spring med Eureka Server for Spring i Azure Container Apps

Den här självstudien vägleder dig genom processen att integrera en hanterad administratör för Spring med en Eureka Server for Spring i Azure Container Apps.

Den här artikeln innehåller innehåll som liknar självstudiekursen "Anslut till en hanterad administratör för Spring i Azure Container Apps", men med Eureka Server for Spring kan du binda Administratör för Spring till Eureka Server för Spring, så att den kan hämta programinformation via Eureka, i stället för att behöva binda enskilda program till Admin för Spring.

Genom att följa den här guiden konfigurerar du en Eureka-server för tjänstidentifiering och skapar sedan en administratör för Spring för att hantera och övervaka dina Spring-program som registrerats med Eureka-servern. Den här konfigurationen säkerställer att andra program bara behöver binda till Eureka-servern, vilket förenklar hanteringen av dina mikrotjänster.

I den här självstudien får du lära dig att:

  1. Skapa en Eureka-server för Spring.
  2. Skapa en administratör för Spring och länka den till Eureka-servern.
  3. Binda andra program till Eureka-servern för effektiv identifiering och hantering av tjänster.

Förutsättningar

Att tänka på

När du kör hanterade Java-komponenter i Azure Container Apps bör du vara medveten om följande information:

Artikel Förklaring
Omfattning Komponenter körs i samma miljö som den anslutna containerappen.
Skalning Komponenten kan inte skalas. Skalningsegenskaperna minReplicas och maxReplicas är båda inställda på 1.
Resurser Resursallokeringen av containrar för komponenter är fast. Antalet CPU-kärnor är 0,5 och minnesstorleken är 1 Gi.
Prissättning Komponentfakturering faller under förbrukningsbaserad prissättning. Resurser som förbrukas av hanterade komponenter debiteras enligt aktiva/inaktiva priser. Du kan ta bort komponenter som inte längre används för att stoppa faktureringen.
Bindning Containerappar ansluter till en komponent via en bindning. Bindningarna matar in konfigurationer i miljövariabler för containerappar. När en bindning har upprättats kan containerappen läsa konfigurationsvärdena från miljövariabler och ansluta till komponenten.

Ställ in

Innan du börjar skapar du nödvändiga resurser genom att köra följande kommandon.

  1. Skapa variabler som stöd för programkonfigurationen. Dessa värden tillhandahålls för dig i den här lektionen.

    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"
    
    Olika beskrivning
    LOCATION Den Plats i Azure-regionen där du skapar din containerapp och Java-komponenter.
    RESOURCE_GROUP Namnet på Azure-resursgruppen för demoprogrammet.
    ENVIRONMENT Miljönamnet för Azure Container Apps för ditt demoprogram.
    EUREKA_COMPONENT_NAME Namnet på Komponenten Eureka Server Java.
    ADMIN_COMPONENT_NAME Namnet på komponenten Admin för Spring Java.
    CLIENT_APP_NAME Namnet på containerappen som binder till Eureka-servern.
    CLIENT_IMAGE Containeravbildningen som används i din Eureka Server-containerapp.
  2. Logga in på Azure med Azure CLI.

    az login
    
  3. Skapa en resursgrupp.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Skapa din containerappmiljö.

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

    Med hjälp av parametern --query filtreras svaret ned till ett enkelt meddelande om lyckad eller misslyckad åtgärd.

Valfritt: Skapa Eureka-servern för Spring

Om du inte har någon befintlig Eureka-server för Spring följer du kommandot nedan för att skapa Java-komponenten Eureka Server. Mer information finns i Skapa Eureka-servern för Spring.

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

Binda ihop komponenterna

Skapa komponenten Admin för 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

Binda andra appar till Eureka-servern

Med eureka-servern konfigurerad kan du nu binda andra program till den för tjänstidentifiering. Och du kan också övervaka och hantera dessa program på instrumentpanelen för Admin för Spring. Använd följande steg för att skapa och binda en containerapp till Eureka-servern:

Skapa containerappen och binda den till Eureka-servern.

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 

Dricks

Eftersom de föregående stegen band komponenten Admin för Spring till Komponenten Eureka Server for Spring aktiverar administratörskomponenten tjänstidentifiering och gör att du kan hantera den via instrumentpanelen Admin för Spring samtidigt.

Visa instrumentpanelerna

Viktigt!

Om du vill visa instrumentpanelen måste du ha minst rollen Microsoft.App/managedEnvironments/write tilldelad till ditt konto på resursen för den hanterade miljön. Du kan antingen uttryckligen tilldela Owner eller Contributor roll för resursen eller följa stegen för att skapa en anpassad rolldefinition och tilldela den till ditt konto.

  1. Skapa den anpassade rolldefinitionen.

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

    Ersätt <SUBSCRIPTION_ID> platshållaren i AssignableScopes värdet med ditt prenumerations-ID.

  2. Tilldela den anpassade rollen till ditt konto på resursen för hanterad miljö.

    Hämta resurs-ID för den hanterade miljön.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. Tilldela rollen till ditt konto.

    Innan du kör det här kommandot ersätter du <USER_OR_SERVICE_PRINCIPAL_ID> platshållaren med ditt användar- eller tjänsthuvudnamns-ID.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  4. Hämta URL:en för instrumentpanelen Admin för 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. Hämta URL:en för Instrumentpanelen för 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
    

    Det här kommandot returnerar den URL som du kan använda för att komma åt instrumentpanelen Eureka Server for Spring. Via instrumentpanelen är din containerapp också till dig som du ser i följande skärmbild.

    Skärmbild av instrumentpanelen Admin för Spring.

    Skärmbild av instrumentpanelen Eureka Server for Spring.

Rensa resurser

De resurser som skapas i den här självstudien påverkar din Azure-faktura. Om du inte ska använda dessa tjänster på lång sikt kör du följande kommando för att ta bort allt som skapats i den här självstudien.

az group delete --resource-group $RESOURCE_GROUP