Dela via


Självstudie: Ansluta till en hanterad Eureka Server for Spring i Azure Container Apps

Eureka Server for Spring är ett tjänstregister som gör att mikrotjänster kan registrera sig själva och identifiera andra tjänster. Du är tillgänglig som en Azure Container Apps-komponent och kan binda din containerapp till en Eureka Server for Spring för automatisk registrering med Eureka-servern.

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

  • Skapa en Eureka Server för Spring Java-komponent
  • Binda containerappen till Komponenten Eureka Server for Spring Java

Viktigt!

I den här självstudien används tjänster som kan påverka din Azure-faktura. Om du bestämmer dig för att följa med steg för steg ska du ta bort resurserna i den här artikeln för att undvika oväntad fakturering.

Förutsättningar

För att slutföra det här projektet behöver du följande:

Krav Instruktioner
Azure-konto En aktiv prenumeration krävs. Om du inte har någon sådan nu kan du skapa en kostnadsfritt.
Azure CLI Installera Azure CLI.

Att tänka på

När du kör i Eureka Server for Spring i Azure Container Apps bör du vara medveten om följande information:

Artikel Förklaring
Definitionsområde Komponenten Eureka Server for Spring körs i samma miljö som den anslutna containerappen.
Skalning Eureka-servern för Spring kan inte skalas. Skalningsegenskaperna minReplicas och maxReplicas är båda inställda på 1. För att uppnå hög tillgänglighet kan du läsa Skapa en Eureka-tjänst med hög tillgänglighet i Azure Container Apps.
Resurser Tilldelningen av containerresurser för Eureka Server for Spring är fast. Antalet processorkärnor är 0,5 och minnesstorleken är 1Gi.
Prissättning Eureka Server for Spring-faktureringen faller under förbrukningsbaserad prissättning. Resurser som används av hanterade Java-komponenter debiteras enligt aktiva/inaktiva priser. Du kan ta bort komponenter som inte längre används för att stoppa faktureringen.
Bindande Containerappar ansluter till en Eureka Server for Spring-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 Eureka Server for Spring.

Ställ in

Innan du börjar arbeta med Eureka Server for Spring måste du först skapa nödvändiga resurser.

Kör följande kommandon för att skapa din resursgrupp, containerappsmiljön.

  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 APP_NAME=my-eureka-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"
    
    Olika beskrivning
    LOCATION Den Plats i Azure-regionen där du skapar din containerapp och Java-komponent.
    ENVIRONMENT Miljönamnet för Azure Container Apps för ditt demoprogram.
    RESOURCE_GROUP Namnet på Azure-resursgruppen för demoprogrammet.
    EUREKA_COMPONENT_NAME Namnet på Java-komponenten som skapats för containerappen. I det här fallet skapar du en Eureka Server för Spring Java-komponent.
    IMAGE Containeravbildningen som används i containerappen.
  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
    

Skapa Komponenten Eureka Server for Spring Java

Nu när du har en befintlig miljö kan du skapa din containerapp och binda den till en Java-komponentinstans av Eureka Server for Spring.

  1. Skapa Komponenten Eureka Server for Spring Java.

    az containerapp env java-component eureka-server-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $EUREKA_COMPONENT_NAME
    
  2. Valfritt: Uppdatera komponentkonfigurationen för Eureka Server för Spring Java.

    az containerapp env java-component eureka-server-for-spring update \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $EUREKA_COMPONENT_NAME 
      --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
    

Binda din containerapp till Komponenten Eureka Server for Spring Java

  1. Skapa containerappen och binda till Eureka-servern för Spring.

    az containerapp create \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT \
      --image $IMAGE \
      --min-replicas 1 \
      --max-replicas 1 \
      --ingress external \
      --target-port 8080 \
      --bind $EUREKA_COMPONENT_NAME \
      --query properties.configuration.ingress.fqdn
    

Kopiera url:en för din app till en textredigerare så att du kan använda den i ett kommande steg.

Gå tillbaka till containerappen i portalen och kopiera appens URL till en textredigerare så att du kan använda den i ett kommande steg.

Gå till vägen /allRegistrationStatus för att visa alla program som registrerats med Eureka Server for Spring.

Bindningen matar in flera konfigurationer i programmet som miljövariabler, främst egenskapen eureka.client.service-url.defaultZone . Den här egenskapen anger den interna slutpunkten för Komponenten Eureka Server Java.

Bindningen matar också in följande egenskaper:

"eureka.client.register-with-eureka":    "true"
"eureka.client.fetch-registry":          "true"
"eureka.instance.prefer-ip-address":     "true"

Egenskapen eureka.client.register-with-eureka är inställd på att true framtvinga registrering med Eureka-servern. Den här registreringen skriver över den lokala inställningen i application.properties, från konfigurationsservern och så vidare. Om du vill ange den till falsekan du skriva över den genom att ange en miljövariabel i containerappen.

eureka.instance.prefer-ip-address Är inställt true på på grund av den specifika DNS-matchningsregeln i containerappmiljön. Ändra inte det här värdet så att du inte bryter bindningen.

(Valfritt) Avbind din containerapp från Komponenten Eureka Server for Spring Java

Om du vill ta bort en bindning från en containerapp använder du alternativet --unbind .

  az containerapp update \
    --name $APP_NAME \
    --unbind $JAVA_COMPONENT_NAME \
    --resource-group $RESOURCE_GROUP

Visa programmet via en instrumentpanel

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": "<YOUR_ROLE_NAME>",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Ersätt platshållaren mellan <> hakparenteserna 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 -o tsv)
    
  3. Tilldela rollen till ditt konto.

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

    az role assignment create \
      --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
      --role "<ROLE_NAME>" \
      --scope $ENVIRONMENT_ID
    

    Kommentar

    <> USER_OR_SERVICE_PRINCIPAL_ID bör vanligtvis vara den identitet som du använder för att få åtkomst till Azure Portal. <> ROLE_NAME är namnet du tilldelade i steg 1.

  4. 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 -o 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 Eureka Server for Spring.

Valfritt: Integrera Komponenterna Eureka Server for Spring och Admin för Spring Java

Om du vill integrera Komponenterna Eureka Server for Spring och Admin for Spring Java kan du läsa Integrera den hanterade administratören för Spring med 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

Nästa steg