Kurz: Připojení ke spravovanému Serveru Eureka for Spring v Azure Container Apps

Eureka Server for Spring je registr služeb, který umožňuje, aby se mikroslužby zaregistrovaly a zjistily další služby. K dispozici jako komponenta Azure Container Apps můžete vytvořit vazbu aplikace kontejneru na Server Eureka pro Spring pro automatickou registraci na serveru Eureka.

V tomto kurzu se naučíte:

  • Vytvoření komponenty Eureka Server for Spring Java
  • Vytvoření vazby aplikace kontejneru na komponentu Eureka Server for Spring Java

Důležité

V tomto kurzu se používají služby, které můžou ovlivnit fakturu za Azure. Pokud se rozhodnete postupovat podle podrobných pokynů, nezapomeňte odstranit prostředky doporučené v tomto článku, abyste se vyhnuli neočekávané fakturaci.

Požadavky

K dokončení tohoto projektu potřebujete následující položky:

Požadavek Pokyny
Účet Azure Vyžaduje se aktivní předplatné. Pokud jej nemáte, můžete si jej zdarma vytvořit.
Azure CLI Nainstalujte rozhraní příkazového řádku Azure CLI.

Důležité informace

Při spuštění na Serveru Eureka pro Spring v Azure Container Apps mějte na paměti následující podrobnosti:

Položka Vysvětlení
Scope Komponenta Eureka Server for Spring běží ve stejném prostředí jako připojená aplikace kontejneru.
Škálování Server Eureka for Spring nemůže škálovat. Vlastnosti minReplicas škálování a maxReplicas obě jsou nastaveny na 1. Pokud chcete dosáhnout vysoké dostupnosti, můžete se podívat na vytvoření služby Eureka s vysokou dostupností ve službě Azure Container Apps.
Materiály Opravili jsme přidělení prostředků kontejneru pro Server Eureka pro Spring. Počet jader procesoru je 0,5 a velikost paměti je 1Gi.
Ceny Fakturace Serveru Eureka for Spring spadá do cen založených na spotřebě. Prostředky spotřebované spravovanými komponentami Java se účtují podle sazby aktivní/nečinné. K zastavení fakturace můžete odstranit komponenty, které se už nepoužívají.
Binding Kontejnerové aplikace se připojují k komponentě Eureka Server for Spring prostřednictvím vazby. Vazby vloží konfigurace do proměnných prostředí kontejneru aplikace. Po vytvoření vazby může aplikace kontejneru číst konfigurační hodnoty z proměnných prostředí a připojit se k Serveru Eureka for Spring.

Nastavení

Než začnete pracovat se serverem Eureka for Spring, musíte nejprve vytvořit požadované prostředky.

Spuštěním následujících příkazů vytvořte skupinu prostředků, prostředí kontejnerových aplikací.

  1. Vytvořte proměnné pro podporu konfigurace aplikace. Tyto hodnoty jsou k dispozici pro účely této lekce.

    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"
    
    Proměnná Popis
    LOCATION Umístění oblasti Azure, kam vytvoříte aplikaci kontejneru a komponentu Java.
    ENVIRONMENT Název prostředí Azure Container Apps pro vaši ukázkovou aplikaci.
    RESOURCE_GROUP Název skupiny prostředků Azure pro ukázkovou aplikaci
    EUREKA_COMPONENT_NAME Název komponenty Java vytvořené pro vaši aplikaci kontejneru. V tomto případě vytvoříte komponentu Eureka Server for Spring Java.
    IMAGE Image kontejneru použitá v aplikaci kontejneru.
  2. Přihlaste se k Azure pomocí Azure CLI.

    az login
    
  3. Vytvořte skupinu prostředků.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Vytvořte prostředí kontejnerových aplikací.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION
    

Vytvoření komponenty Eureka Server for Spring Java

Teď, když máte existující prostředí, můžete vytvořit aplikaci kontejneru a svázat ji s instancí komponenty Java Serveru Eureka pro Spring.

  1. Vytvořte komponentu 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. Volitelné: Aktualizujte konfiguraci komponenty Spring Java serveru Eureka.

    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
    

Vytvoření vazby aplikace kontejneru k komponentě Eureka Server for Spring Java

  1. Vytvořte aplikaci kontejneru a vytvořte vazbu na Server Eureka for 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
    

Zkopírujte adresu URL aplikace do textového editoru, abyste ji mohli použít v nadcházejícím kroku.

Vraťte se do aplikace kontejneru na portálu a zkopírujte adresu URL aplikace do textového editoru, abyste ji mohli použít v nadcházejícím kroku.

Přejděte na trasu /allRegistrationStatus a zobrazte všechny aplikace zaregistrované na serveru Eureka Server for Spring.

Vazba vloží do aplikace několik konfigurací jako proměnné prostředí, především vlastnost eureka.client.service-url.defaultZone . Tato vlastnost označuje interní koncový bod komponenty Java serveru Eureka.

Vazba také vloží následující vlastnosti:

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

Vlastnost je nastavena eureka.client.register-with-eureka na true vynucení registrace u serveru Eureka. Tato registrace přepíše místní nastavení z application.propertieskonfiguračního serveru atd. Pokud ho chcete nastavit na false, můžete ho přepsat nastavením proměnné prostředí v aplikaci kontejneru.

Je eureka.instance.prefer-ip-address nastavená true kvůli konkrétnímu pravidlu překladu DNS v prostředí aplikace kontejneru. Tuto hodnotu neupravujte, abyste vazbu neporušili.

(Volitelné) Zrušení vazby aplikace kontejneru ze komponenty Eureka Server for Spring Java

Pokud chcete odebrat vazbu z aplikace kontejneru, použijte tuto --unbind možnost.

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

Zobrazení aplikace prostřednictvím řídicího panelu

Důležité

Pokud chcete zobrazit řídicí panel, musíte mít přiřazenou alespoň Microsoft.App/managedEnvironments/write roli k vašemu účtu ve spravovaném prostředku prostředí. Můžete buď explicitně přiřadit Owner prostředek, nebo Contributor postupovat podle pokynů k vytvoření vlastní definice role a jeho přiřazení k vašemu účtu.

  1. Vytvořte vlastní definici role.

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

    Nezapomeňte nahradit zástupný symbol mezi <> hranatými závorkami v hodnotě AssignableScopes id vašeho předplatného.

  2. Přiřaďte vlastní roli k účtu u prostředku spravovaného prostředí.

    Získejte ID prostředku spravovaného prostředí:

        export ENVIRONMENT_ID=$(az containerapp env show \
         --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ 
         --query id -o tsv)
    
  3. Přiřaďte roli k účtu.

    Před spuštěním tohoto příkazu nahraďte zástupný symbol mezi <> hranatými závorkami id uživatele nebo instančního objektu.

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

    Poznámka:

    <> USER_OR_SERVICE_PRINCIPAL_ID obvykle by měla být identita, kterou používáte pro přístup k webu Azure Portal. <> ROLE_NAME je název, který jste přiřadili v kroku 1.

  4. Získejte adresu URL řídicího panelu 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
    

    Tento příkaz vrátí adresu URL, kterou můžete použít pro přístup k řídicímu panelu Serveru Eureka for Spring. Prostřednictvím řídicího panelu je vaše aplikace kontejneru také pro vás, jak je znázorněno na následujícím snímku obrazovky.

Snímek obrazovky s řídicím panelem Eureka Server for Spring

Volitelné: Integrace serveru Eureka pro komponenty Spring a Admin for Spring Java

Pokud chcete integrovat server Eureka pro Spring a správce pro komponenty Spring Java, přečtěte si téma Integrace spravovaného správce pro Spring s Eureka Serverem for Spring.

Vyčištění prostředků

Prostředky vytvořené v tomto kurzu mají vliv na fakturu za Azure. Pokud tyto služby nebudete používat dlouhodobě, spuštěním následujícího příkazu odeberte vše vytvořené v tomto kurzu.

az group delete \
  --resource-group $RESOURCE_GROUP

Další kroky