Megosztás a következőn keresztül:


Oktatóanyag: Csatlakozás felügyelt Config Server for Springhez az Azure Container Appsben

A Config Server for Spring központosított helyet biztosít a konfigurációs adatok több alkalmazás számára való elérhetővé tétele érdekében. Ebből a cikkből megtudhatja, hogyan csatlakoztathat egy Azure Container Appsben üzemeltetett alkalmazást egy Java Config Server for Spring-példányhoz.

A Config Server for Spring Java összetevő egy GitHub-adattárat használ a konfigurációs beállítások forrásaként. A konfigurációs értékek az összetevő és a tárolóalkalmazás közötti kötésen keresztül érhetők el a tárolóalkalmazás számára. Ahogy az értékek megváltoznak a konfigurációs kiszolgálón, azok automatikusan átfolynak az alkalmazásba anélkül, hogy újrafordítanák vagy újra üzembe helyezik az alkalmazást.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Config Server for Spring Java-összetevő létrehozása
  • A Config Server for Spring kötése a tárolóalkalmazáshoz
  • A konfigurációs értékek megfigyelése a konfigurációs kiszolgáló alkalmazáshoz való csatlakoztatása előtt és után
  • Konfigurációs értékek titkosítása és visszafejtése szimmetrikus kulccsal

Fontos

Ez az oktatóanyag olyan szolgáltatásokat használ, amelyek hatással lehetnek az Azure-számlájára. Ha lépésről lépésre halad, a váratlan számlázás elkerülése érdekében törölje a cikkben szereplő erőforrásokat.

Előfeltételek

A projekt végrehajtásához a következő elemekre van szüksége:

Követelmény Utasítások
Azure-fiók Aktív előfizetésre van szükség. Ha még nem rendelkezik fiókkal, ingyen létrehozhat egyet.
Azure CLI Telepítse az Azure CLI-t.

Megfontolások

Amikor a Config Server for Springben fut az Azure Container Appsben, vegye figyelembe az alábbi részleteket:

Elem Magyarázat
Hatókör A Config Server for Spring ugyanabban a környezetben fut, mint a csatlakoztatott tárolóalkalmazás.
Méretezés Egyetlen igazságforrás fenntartása érdekében a Config Server for Spring nem méretezhető. A skálázási tulajdonságok minReplicas és maxReplicas mindkettő a következőre 1van állítva: .
Erőforrások A Config Server for Spring tárolóerőforrás-lefoglalása rögzített, a processzormagok száma 0,5, a memória mérete pedig 1Gi.
Árképzés A Config Server for Spring számlázása a fogyasztásalapú díjszabás alá tartozik. A felügyelt Java-összetevők által felhasznált erőforrások számlázása az aktív/tétlen díjszabás szerint van kiszámlázva. Törölheti azokat az összetevőket, amelyek már nincsenek használatban a számlázás leállításához.
Kötés A tárolóalkalmazás egy kötésen keresztül csatlakozik egy Config Server for Springhez. A kötés konfigurációkat injektál a tárolóalkalmazás környezeti változóiba. A kötés létrehozása után a tárolóalkalmazás beolvassa a környezeti változók konfigurációs értékeit.

Beállítás

Mielőtt megkezdené a Config Server for Spring használatát, először létre kell hoznia a szükséges erőforrásokat.

Hajtsa végre az alábbi parancsokat az erőforráscsoport és a Container Apps-környezet létrehozásához.

  1. Hozzon létre változókat az alkalmazáskonfiguráció támogatásához. Ezeket az értékeket a lecke céljaira biztosítjuk.

    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"
    
    Változó Leírás
    LOCATION Az Azure-régió helye, ahol a tárolóalkalmazást és a Java-összetevőt hozza létre.
    ENVIRONMENT A bemutató alkalmazás Azure Container Apps-környezetének neve.
    RESOURCE_GROUP A bemutató alkalmazás Azure-erőforráscsoportjának neve.
    JAVA_COMPONENT_NAME A tárolóalkalmazáshoz létrehozott Java-összetevő neve. Ebben az esetben létre kell hoznia egy Config Server for Spring Java-összetevőt.
    IMAGE A tárolóalkalmazásban használt tárolórendszerkép.
    URI Az URI-t lecserélheti a git-adattár URL-címére, ha privát, adja hozzá a kapcsolódó hitelesítési konfigurációkat, például spring.cloud.config.server.git.username és spring.cloud.config.server.git.password.
  2. Jelentkezzen be az Azure-ba az Azure CLI-vel.

    az login
    
  3. Hozzon létre egy erőforráscsoportot.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Hozza létre a tárolóalkalmazás-környezetet.

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

Ez a környezet a Config Server for Spring Java összetevő és a tárolóalkalmazás üzemeltetésére szolgál.

A Config Server for Spring Java összetevő létrehozása

Most, hogy már rendelkezik Container Apps-környezettel, létrehozhatja a tárolóalkalmazást, és egy Config Server for Spring Java-összetevőhöz kötheti. A tárolóalkalmazás kötésekor a konfigurációs értékek automatikusan szinkronizálódnak a Config Server összetevőből az alkalmazásba.

  1. Hozza létre a Config Server for Spring Java összetevőt.

    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. Frissítse a Config Server for Spring Java összetevőt.

    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
    

    Itt azt mondja meg az összetevőnek, hogy hol keresse meg azt az adattárat, amely a tulajdonságon keresztül tárolja a uri konfigurációs adatokat. A refresh-rate tulajdonság azt jelzi, hogy a Container Apps milyen gyakran ellenőrizze a git-adattár módosításait.

A tárolóalkalmazás kötése a Config Server for Spring Java összetevőhöz

  1. Hozza létre a konfigurációs adatokat használó tárolóalkalmazást.

    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
    

    Ez a parancs a konfigurációs adatokat használó tárolóalkalmazás URL-címét adja vissza. Másolja az URL-címet egy szövegszerkesztőbe, hogy egy következő lépésben használhassa.

    Ha böngészőben látogatja meg az alkalmazást, a connectTimeout visszaadott érték az alapértelmezett érték.0

  2. Kötés a Config Server for Springhez.

    Most, hogy létrejött a tárolóalkalmazás és a Config Server, a parancsot update a tárolóalkalmazáshoz kell kötnie.

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

    A --bind $JAVA_COMPONENT_NAME paraméter létrehozza a kapcsolatot a tárolóalkalmazás és a konfigurációs összetevő között.

Miután a tárolóalkalmazás és a Config Server összetevő össze van kötve, a konfigurációs módosítások automatikusan szinkronizálódnak a tárolóalkalmazással.

Amikor ismét megtekinti az alkalmazás URL-címét, az érték connectTimeout most már 10000az . Ez az érték az eredetileg a $URI konfigurációs összetevő forrásaként beállított változó git-adattárából származik. Ez az érték az connectionTimeout adattár application.yml fájljában található tulajdonságból származik.

A kötési kérelem környezeti változóként injektálja a konfigurációs beállítást az alkalmazásba. Ezek az értékek mostantól elérhetők az alkalmazáskód számára a konfigurációs beállítások konfigurációs kiszolgálóról való lekéréséhez.

Ebben az esetben a következő környezeti változók érhetők el az alkalmazás számára:

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

Ha testre szeretné szabni a sajátját SPRING_CONFIG_IMPORT, hivatkozhat a környezeti változóra SPRING_CLOUD_CONFIG_COMPONENT_URI, például parancssori argumentumokkal felülbírálhatja azokat, például Java -Dspring.config.import=optional:configserver:${SPRING_CLOUD_CONFIG_COMPONENT_URI}?fail-fast=true.

A kötéseket az alkalmazásból is eltávolíthatja.

(Nem kötelező) A tárolóalkalmazás leválasztása a Config Server for Spring Java összetevőről

Ha el szeretne távolítani egy kötést egy tárolóalkalmazásból, használja a --unbind lehetőséget.

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

Amikor ismét felkeresi az alkalmazás URL-címét, a módosítások értéke connectTimeout vissza fog változni 0.

Az erőforrások eltávolítása

Az oktatóanyagban létrehozott erőforrások hatással vannak az Azure-számlára. Ha nem fogja hosszú távon használni ezeket a szolgáltatásokat, futtassa a következő parancsot az oktatóanyagban létrehozott összes eltávolításához.

az group delete \
  --resource-group $RESOURCE_GROUP

Következő lépések