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.
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. Logga in på Azure med Azure CLI.
az login
Skapa en resursgrupp.
az group create --name $RESOURCE_GROUP --location $LOCATION
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.
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
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
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 false
kan 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.
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 iAssignableScopes
värdet med ditt prenumerations-ID.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)
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.
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.
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