Sdílet prostřednictvím


Kurz: Připojení ke spravovanému konfiguračnímu serveru pro Spring v Azure Container Apps

Konfigurační server for Spring poskytuje centralizované umístění pro zpřístupnění konfiguračních dat více aplikacím. V tomto článku se dozvíte, jak připojit aplikaci hostované v Azure Container Apps k instanci Java Config Serveru pro Spring.

Komponenta Konfigurační server pro Spring Java používá úložiště GitHub jako zdroj pro nastavení konfigurace. Hodnoty konfigurace jsou pro vaši aplikaci kontejneru zpřístupněny prostřednictvím vazby mezi komponentou a vaší aplikací kontejneru. Když se hodnoty změní na konfiguračním serveru, automaticky přetékají do vaší aplikace, a to vše bez nutnosti opětovného kompilace nebo opětovného nasazení aplikace.

V tomto kurzu se naučíte:

  • Vytvoření komponenty Config Server for Spring Java
  • Vytvoření vazby konfiguračního serveru pro Spring k aplikaci kontejneru
  • Sledujte hodnoty konfigurace před a po připojení konfiguračního serveru k aplikaci.
  • Šifrování a dešifrování hodnot konfigurace pomocí symetrického klíče

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 konfiguračním serveru pro Spring v Azure Container Apps mějte na paměti následující podrobnosti:

Položka Vysvětlení
Scope Konfigurační server pro Spring běží ve stejném prostředí jako připojená aplikace kontejneru.
Škálování Aby se zachoval jediný zdroj pravdy, konfigurační server pro Spring se škáluje. Vlastnosti minReplicas škálování a maxReplicas obě jsou nastaveny na 1.
Materiály Přidělení prostředků kontejneru pro konfigurační server pro Spring je pevné, počet jader procesoru je 0,5 a velikost paměti je 1Gi.
Ceny Konfigurační server pro fakturaci 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 Aplikace kontejneru se připojí ke konfiguračnímu serveru pro Spring prostřednictvím vazby. Vazba 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í.

Nastavení

Než začnete pracovat s konfiguračním serverem 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ů a prostředí Container Apps.

  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 JAVA_COMPONENT_NAME=configserver
    export APP_NAME=my-config-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-config-client:latest"
    export URI="https://github.com/Azure-Samples/azure-spring-cloud-config-java-aca.git"
    
    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
    JAVA_COMPONENT_NAME Název komponenty Java vytvořené pro vaši aplikaci kontejneru. V tomto případě vytvoříte komponentu Config Server for Spring Java.
    IMAGE Image kontejneru použitá v aplikaci kontejneru.
    URI Identifikátor URI můžete nahradit adresou URL úložiště Git, pokud je privátní, přidejte související konfigurace ověřování, jako spring.cloud.config.server.git.username spring.cloud.config.server.git.passwordje a .
  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
    

Toto prostředí slouží k hostování komponenty Config Server for Spring Java i aplikace kontejneru.

Vytvoření komponenty Config Server for Spring Java

Teď, když máte prostředí Container Apps, můžete vytvořit aplikaci kontejneru a svázat ji s komponentou Config Server for Spring Java. Když vytvoříte vazbu aplikace kontejneru, hodnoty konfigurace se automaticky synchronizují z komponenty konfiguračního serveru do vaší aplikace.

  1. Vytvořte komponentu Config Server for Spring Java.

    az containerapp env java-component config-server-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --min-replicas 1 \
      --max-replicas 1 \
      --configuration spring.cloud.config.server.git.uri=$URI
    
  2. Aktualizujte komponentu Konfigurační server pro Spring Java.

    az containerapp env java-component config-server-for-spring update \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --min-replicas 2 \
      --max-replicas 2 \
      --configuration spring.cloud.config.server.git.uri=$URI spring.cloud.config.server.git.refresh-rate=60
    

    Tady říkáte komponentě, kde najít úložiště, které obsahuje informace o konfiguraci prostřednictvím uri vlastnosti. Tato refresh-rate vlastnost říká Container Apps, jak často se mají v úložišti Git kontrolovat změny.

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

  1. Vytvořte aplikaci kontejneru, která využívá konfigurační data.

    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 \
      --query properties.configuration.ingress.fqdn
    

    Tento příkaz vrátí adresu URL vaší aplikace kontejneru, která využívá konfigurační data. Zkopírujte adresu URL do textového editoru, abyste ji mohli použít v nadcházejícím kroku.

    Pokud aplikaci navštívíte v prohlížeči, je vrácená connectTimeout hodnota výchozí hodnotou 0.

  2. Vytvořte vazbu na konfigurační server pro Spring.

    Teď, když se vytvoří aplikace kontejneru a konfigurační server, svážete je společně s příkazem update k vaší aplikaci kontejneru.

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

    Parametr --bind $JAVA_COMPONENT_NAME vytvoří propojení mezi vaší aplikací kontejneru a komponentou konfigurace.

Jakmile jsou aplikace kontejneru a komponenta konfiguračního serveru svázané dohromady, změny konfigurace se automaticky synchronizují s aplikací kontejneru.

Když znovu navštívíte adresu URL aplikace, hodnota connectTimeout je nyní 10000. Tato hodnota pochází z úložiště Git nastaveného v $URI proměnné původně nastavené jako zdroj konfigurační komponenty. Konkrétně se tato hodnota načítá z connectionTimeout vlastnosti v application.yml souboru úložiště.

Požadavek vazby vloží nastavení konfigurace do aplikace jako proměnné prostředí. Tyto hodnoty jsou nyní k dispozici pro kód aplikace, který se má použít při načítání nastavení konfigurace z konfiguračního serveru.

V tomto případě jsou pro aplikaci k dispozici následující proměnné prostředí:

SPRING_CLOUD_CONFIG_URI=http://[JAVA_COMPONENT_INTERNAL_FQDN]:80
SPRING_CLOUD_CONFIG_COMPONENT_URI=http://[JAVA_COMPONENT_INTERNAL_FQDN]:80
SPRING_CONFIG_IMPORT=optional:configserver:$SPRING_CLOUD_CONFIG_URI

Pokud chcete přizpůsobit vlastní SPRING_CONFIG_IMPORT, můžete odkazovat na proměnnou SPRING_CLOUD_CONFIG_COMPONENT_URIprostředí , například můžete přepsat argumenty příkazového řádku, například Java -Dspring.config.import=optional:configserver:${SPRING_CLOUD_CONFIG_COMPONENT_URI}?fail-fast=true.

Můžete také odebrat vazbu z aplikace.

(Volitelné) Zrušení vazby aplikace kontejneru z komponenty Config 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

Když znovu navštívíte adresu URL aplikace, hodnota connectTimeout se změní zpět na 0adresu URL aplikace.

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