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 1 van á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.
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
ésspring.cloud.config.server.git.password
.Jelentkezzen be az Azure-ba az Azure CLI-vel.
az login
Hozzon létre egy erőforráscsoportot.
az group create --name $RESOURCE_GROUP --location $LOCATION
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.
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
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. Arefresh-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
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
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 10000
az . 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