Felügyelt Spring Cloud Config-kiszolgáló konfigurálása az Azure Spring Appsben
Feljegyzés
Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.
Ez a cikk a következőre vonatkozik: ✔️ Java ✔️ C#
Ez a cikk a következőre vonatkozik: ✔️ Standard felhasználás és dedikált (előzetes verzió) ✔️ Basic/Standard ❌ Enterprise
Ez a cikk bemutatja, hogyan konfigurálhat felügyelt Spring Cloud Config-kiszolgálót az Azure Spring Apps szolgáltatásban.
A Spring Cloud Config Server kiszolgáló- és ügyféloldali támogatást biztosít egy elosztott rendszerben lévő külső konfigurációhoz. A Config Server-példány központi helyet biztosít az alkalmazások külső tulajdonságainak kezeléséhez minden környezetben. További információkért tekintse meg a Spring Cloud Config dokumentációját.
Feljegyzés
A konfigurációs kiszolgáló standard használatban és dedikált csomagban való használatához először engedélyeznie kell azt. További információ: Spring Cloud Config Server engedélyezése és letiltása az Azure Spring Appsben.
Előfeltételek
- Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
- Egy már kiépített és futó Azure Spring Apps-szolgáltatáspéldány az Alapszintű vagy a Standard csomag használatával. Az Azure Spring Apps szolgáltatás beállításához és elindításához tekintse meg a rövid útmutatót: Az első alkalmazás üzembe helyezése az Azure Spring Appsben. A Spring Cloud Config Server nem alkalmazható a nagyvállalati csomagra.
- Git.
Korlátozás
Bizonyos korlátozások vonatkoznak a Git háttérrendszerrel rendelkező Config Server használatára. A rendszer automatikusan injektálja a következő tulajdonságokat az alkalmazáskörnyezetbe a Config Server és a Service Discovery eléréséhez. Ha ezeket a tulajdonságokat a konfigurációs kiszolgáló fájljaiból is konfigurálja, ütközések és váratlan viselkedés léphet fel.
eureka.client.service-url.defaultZone
eureka.client.tls.keystore
eureka.instance.preferIpAddress
eureka.instance.instance-id
server.port
spring.cloud.config.tls.keystore
spring.config.import
spring.application.name
spring.jmx.enabled
management.endpoints.jmx.exposure.include
Figyelem
Ezeket a tulajdonságokat ne helyezze a konfigurációs kiszolgáló alkalmazásfájljaiba.
A konfigurációs kiszolgáló fájljainak létrehozása
Az Azure Spring Apps támogatja az Azure DevOps Servert, a GitHubot, a GitLabet és a Bitbucketet a Config Server-fájlok tárolásához. Ha az adattár készen áll, létrehozhatja a konfigurációs fájlokat, és ott tárolhatja őket.
Egyes konfigurálható tulajdonságok csak bizonyos típusok esetén érhetők el. A következő szakaszok az egyes adattártípusok tulajdonságait ismertetik.
Feljegyzés
Ha nem ad meg egyet, a konfigurációs kiszolgáló az alapértelmezett címkét veszi master
fel (a Giten). A GitHub azonban nemrég módosította az alapértelmezett ágat a következőre master
main
. Az Azure Spring Apps Config Server meghibásodásának elkerülése érdekében ügyeljen arra, hogy az alapértelmezett címkére figyeljen a Config Server GitHubbal való beállításakor, különösen az újonnan létrehozott adattárak esetében.
Nyilvános adattár
Nyilvános adattár használata esetén a konfigurálható tulajdonságok korlátozottabbak, mint a privát adattárak.
Az alábbi táblázat a nyilvános Git-adattár beállításához használható konfigurálható tulajdonságokat sorolja fel.
Feljegyzés
A szavak elválasztására használt kötőjel (-) az egyetlen elnevezési konvenció, amely jelenleg támogatott. Használhatja például az alapértelmezett címkét, de az alapértelmezettCímkét nem.
Tulajdonság | Szükséges | Funkció |
---|---|---|
uri |
Igen | A Config Server háttérrendszereként használt Git-adattár URI-ja. Kezdődjön a http:// , https:// , git@ vagy ssh:// . |
default-label |
Nem | A Git-adattár alapértelmezett címkéje. Az adattár ágának, címkéjének vagy véglegesítési azonosítójának kell lennie. |
search-paths |
Nem | Sztringek tömbje, amelyek a Git-adattár alkönyvtárainak keresésére szolgálnak. |
Privát adattár SSH-hitelesítéssel
Az alábbi táblázat felsorolja azokat a konfigurálható tulajdonságokat, amelyekkel privát Git-adattárat állíthat be az SSH-val.
Feljegyzés
A szavak elválasztására használt kötőjel (-) az egyetlen elnevezési konvenció, amely jelenleg támogatott. Használhatja például az alapértelmezett címkét, de az alapértelmezettCímkét nem.
Tulajdonság | Szükséges | Funkció |
---|---|---|
uri |
Igen | A Config Server háttérrendszereként használt Git-adattár URI-ja. Kezdődjön a http:// , https:// , git@ vagy ssh:// . |
default-label |
Nem | A Git-adattár alapértelmezett címkéje. Az adattár ágának, címkéjének vagy véglegesítési azonosítójának kell lennie. |
search-paths |
Nem | A Git-adattár alkönyvtárainak keresésére használt sztringek tömbje. |
private-key |
Nem | Az SSH titkos kulcsa a Git-adattár eléréséhez. Akkor szükséges, ha az URI a következővel git@ kezdődik: vagy ssh:// . |
host-key |
Nem | A Git-adattárkiszolgáló gazdakulcsa. Az algoritmus előtagjának nem szabad szerepelnie a következőben leírtak szerint host-key-algorithm : . |
host-key-algorithm |
Nem | A gazdagépkulcs-algoritmus. Ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 vagy ecdsa-sha2-nistp521 kell lennie. Csak akkor szükséges, ha host-key létezik. |
strict-host-key-checking |
Nem | Azt jelzi, hogy a konfigurációs kiszolgáló példánya nem indul-e el a privát host-key rendszer használatakor. Igaznak (alapértelmezett értéknek) vagy hamisnak kell lennie. |
Privát adattár alapszintű hitelesítéssel
Az alábbi táblázat felsorolja azokat a konfigurálható tulajdonságokat, amelyekkel beállíthat egy privát Git-adattárat alapszintű hitelesítéssel.
Feljegyzés
A szavak elválasztására használt kötőjel (-) az egyetlen elnevezési konvenció, amely jelenleg támogatott. Használja például az alapértelmezett címkét, nem az alapértelmezettCímkét.
Tulajdonság | Szükséges | Funkció |
---|---|---|
uri |
Igen | A Config Server háttérrendszereként használt Git-adattár URI-ja. Kezdődjön a http:// , https:// , git@ vagy ssh:// . |
default-label |
Nem | A Git-adattár alapértelmezett címkéje. Az adattár ágának, címkéjének vagy véglegesítési azonosítójának kell lennie. |
search-paths |
Nem | A Git-adattár alkönyvtárainak keresésére használt sztringek tömbje. |
username |
Nem | A Git-adattárkiszolgáló eléréséhez használt felhasználónév. Akkor szükséges, ha a Git-adattárkiszolgáló támogatja a HTTP alapszintű hitelesítést. |
password |
Nem | A Git-adattárkiszolgáló eléréséhez használt jelszó vagy személyes hozzáférési jogkivonat. Akkor szükséges, ha a Git-adattárkiszolgáló támogatja a HTTP alapszintű hitelesítést. |
Feljegyzés
Számos Git-adattárkiszolgáló támogatja a jogkivonatok használatát, és nem jelszavakat a HTTP alapszintű hitelesítéshez. Egyes adattárak lehetővé teszik a jogkivonatok határozatlan ideig történő megőrzését. Egyes Git-adattárkiszolgálók, köztük az Azure DevOps Server azonban néhány órán belül lejárnak. A jogkivonatok lejáratát okozó adattárak nem használhatnak jogkivonatalapú hitelesítést az Azure Spring Apps használatával. Ha ilyen jogkivonatot használ, ne felejtse el frissíteni, mielőtt lejár.
A GitHub eltávolította a jelszóhitelesítés támogatását, ezért a GitHubhoz jelszóhitelesítés helyett személyes hozzáférési jogkivonatot kell használnia. További információ: A Git-műveletek jogkivonat-hitelesítési követelményei.
Egyéb Git-adattárak
Az alábbi táblázat felsorolja a Git-adattárak mintával való beállításához használható konfigurálható tulajdonságokat.
Feljegyzés
A szavak elválasztására használt kötőjel (-) az egyetlen elnevezési konvenció, amely jelenleg támogatott. Használja például az alapértelmezett címkét, nem az alapértelmezettCímkét.
Tulajdonság | Szükséges | Funkció |
---|---|---|
repos |
Nem | Egy adott névvel rendelkező Git-adattár beállításaiból álló térkép. |
repos."uri" |
Igen bekapcsolva repos |
A Config Server háttérrendszereként használt Git-adattár URI-ja. Kezdődjön a http:// , https:// , git@ vagy ssh:// . |
repos."name" |
Igen bekapcsolva repos |
Az adattár azonosítására szolgáló név; például az A vagy a B csapat. Csak akkor szükséges, ha repos létezik. |
repos."pattern" |
Nem | Egy alkalmazásnévnek megfelelő sztringek tömbje. Minden mintához használja az {application}/{profile} formátumot helyettesítő karakterekkel. |
repos."default-label" |
Nem | A Git-adattár alapértelmezett címkéje. Az adattár ágnevének, címkéjének vagy véglegesítési IOD-jének kell lennie. |
repos."search-paths " |
Nem | A Git-adattár alkönyvtárainak keresésére használt sztringek tömbje. |
repos."username" |
Nem | A Git-adattárkiszolgáló eléréséhez használt felhasználónév. Akkor szükséges, ha a Git-adattárkiszolgáló támogatja a HTTP alapszintű hitelesítést. |
repos."password" |
Nem | A Git-adattárkiszolgáló eléréséhez használt jelszó vagy személyes hozzáférési jogkivonat. Akkor szükséges, ha a Git-adattárkiszolgáló támogatja a HTTP alapszintű hitelesítést. |
repos."private-key" |
Nem | Az SSH titkos kulcsa a Git-adattár eléréséhez. Akkor szükséges, ha az URI a következővel git@ kezdődik: vagy ssh:// . |
repos."host-key" |
Nem | A Git-adattárkiszolgáló gazdakulcsa. Az algoritmus előtagjának nem szabad szerepelnie a következőben leírtak szerint host-key-algorithm : . |
repos."host-key-algorithm" |
Nem | A gazdagépkulcs-algoritmus. Ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 vagy ecdsa-sha2-nistp521 kell lennie. Csak akkor szükséges, ha host-key létezik. |
repos."strict-host-key-checking" |
Nem | Azt jelzi, hogy a konfigurációs kiszolgáló példánya nem indul-e el a privát host-key rendszer használatakor. Igaznak (alapértelmezett értéknek) vagy hamisnak kell lennie. |
Az alábbi táblázat példákat mutat be a szolgáltatás opcionális extra adattárral való konfigurálásához. További információkért tekintse meg az Extra adattárak szakaszt, valamint a Spring-dokumentáció Mintaegyeztetés és Több adattár című szakaszát .
Minták | Leírás |
---|---|
test-config-server-app-0/* | A minta és az adattár URI-ja megegyezik a bármely profillal elnevezett test-config-server-app-0 Spring boot-alkalmazással. |
test-config-server-app-1/dev | A minta és az adattár URI-ja megegyezik egy fejlesztői profillal elnevezett test-config-server-app-1 Spring boot-alkalmazással. |
test-config-server-app-2/prod | A minta és az adattár URI-ja megegyezik egy prod profillal elnevezett test-config-server-app-2 Spring boot-alkalmazással. |
A Config Server-adattár csatolása az Azure Spring Appshez
Most, hogy a konfigurációs fájlokat egy adattárba mentette, az alábbi lépésekkel csatlakoztassa az Azure Spring Appst az adattárhoz.
Jelentkezzen be az Azure Portalra.
Nyissa meg az Azure Spring Apps áttekintési oldalát.
Válassza a Konfigurációs kiszolgáló lehetőséget a bal oldali navigációs panelen.
Az Alapértelmezett adattár szakaszban állítsa az URI értékét a következőre
https://github.com/Azure-Samples/piggymetrics-config
: .Válassza az Ellenőrzés lehetőséget.
Ha az ellenőrzés befejeződött, a módosítások mentéséhez válassza az Alkalmaz elemet.
A konfiguráció frissítése eltarthat néhány percig. A konfiguráció befejezésekor értesítést kell kapnia.
Adja meg az adattár adatait közvetlenül az Azure Portalon
Megadhat adattáradatokat az alapértelmezett adattárhoz és opcionálisan a további adattárakhoz is.
Alapértelmezett adattár
Az ebben a szakaszban ismertetett lépésekkel megadhatja egy nyilvános vagy privát adattár adattáradatait.
Nyilvános adattár: Az Alapértelmezett adattár szakaszban, az Uri mezőben illessze be az adattár URI-ját. Adja meg a Címke beállítás konfigurálását. Győződjön meg arról, hogy a hitelesítési beállítás nyilvános, majd válassza az Alkalmaz lehetőséget.
Privát adattár: Az Azure Spring Apps támogatja az alapszintű jelszó-/jogkivonat-alapú hitelesítést és az SSH-t.
- Alapszintű hitelesítés: Az Alapértelmezett adattár szakaszban, az Uri mezőben illessze be az adattár URI-ját, majd a Hitelesítés szerkesztése panel megnyitásához válassza a Hitelesítés csoportban található beállítást. A Hitelesítés típusa legördülő listában válassza a HTTP Basic lehetőséget, majd adja meg a felhasználónevet és a jelszót/jogkivonatot az Azure Spring Appshez való hozzáférés biztosításához. Kattintson az OK gombra, majd az Alkalmaz gombra a Config Server-példány beállításának befejezéséhez.
Feljegyzés
Számos Git-adattárkiszolgáló támogatja a jogkivonatok használatát, és nem jelszavakat a HTTP alapszintű hitelesítéshez. Egyes adattárak lehetővé teszik a jogkivonatok határozatlan ideig történő megőrzését. Egyes Git-adattárkiszolgálók, köztük az Azure DevOps Server azonban néhány órán belül lejárnak. A jogkivonatok lejáratát okozó adattárak nem használhatnak jogkivonatalapú hitelesítést az Azure Spring Apps használatával. Ha ilyen jogkivonatot használ, ne felejtse el frissíteni, mielőtt lejár.
A GitHub eltávolította a jelszóhitelesítés támogatását, ezért a GitHubhoz jelszóhitelesítés helyett személyes hozzáférési jogkivonatot kell használnia. További információ: A Git-műveletek jogkivonat-hitelesítési követelményei.
- SSH: Az Alapértelmezett adattár szakaszban, az Uri mezőben illessze be az adattár URI-ját, majd a Hitelesítés csoportban válassza ki a beállítást a Hitelesítés szerkesztése panel megnyitásához. A Hitelesítés szerkesztése panel Hitelesítési típus legördülő listájában válassza az SSH-t, majd adja meg a titkos kulcsot. Igény szerint adja meg a gazdagépkulcsot és a gazdagépkulcs-algoritmust. Vegye fel a nyilvános kulcsot a Config Server-adattárba. Kattintson az OK gombra, majd az Alkalmaz gombra a Config Server-példány beállításának befejezéséhez.
Extra adattárak
Ha egy opcionális extra adattárral szeretné konfigurálni a szolgáltatást, adja meg az Uri és a Hitelesítési beállításokat az alapértelmezett adattárhoz hasonlóan. Ügyeljen arra, hogy adjon meg egy névbeállítást a mintához, majd válassza az Alkalmaz lehetőséget a példányhoz való csatoláshoz.
Tárházadatok megadása YAML-fájlba
Ha yaML-fájlt írt az adattár beállításaival, importálhatja a fájlt közvetlenül a helyi gépről az Azure Spring Appsbe. Az alábbi példa egy egyszerű YAML-fájlt mutat be egy egyszerű hitelesítéssel rendelkező privát adattárhoz.
spring:
cloud:
config:
server:
git:
uri: https://github.com/azure-spring-apps-samples-pr/config-server-repository.git
username: <username>
password: <password/token>
Válassza az Importálás beállításai gombot, majd válassza ki a YAML-fájlt a projektkönyvtárból. Válassza az Importálás lehetőséget.
Az Értesítések egy async
műveletet jelenít meg. A konfigurációs kiszolgálónak 1–2 perc után kell jelentenie a sikerességet. A YAML-fájlból származó információk megjelennek az Azure Portalon. Kattintson az Alkalmaz gombra az importálás befejezéséhez.
Azure-adattárak használata az Azure Spring Apps konfigurációhoz
Az Azure Spring Apps hozzáférhet a nyilvános, SSH által védett vagy ALAPSZINTŰ HTTP-hitelesítéssel védett Git-adattárakhoz. A HTTP alapszintű hitelesítés az adattárak Azure-adattárakkal való létrehozásának és kezelésének legegyszerűbb módja.
Adattár URL-címének és hitelesítő adatainak lekérése
Az adattár URL-címének és hitelesítő adatainak lekéréséhez kövesse az alábbi lépéseket.
A projekt Azure Repos portálján válassza a Klónozás gombot:
Másolja ki a klónozott URL-címet a szövegmezőből. Ez az URL-cím általában a következő formában jelenik meg:
https://<organization name>@dev.azure.com/<organization name>/<project name>/_git/<repository name>
Távolítsa el az előtte és
dev.azure.com
utánahttps://
lévő összes elemet, beleértve a szimbólumot@
is. Az eredményként kapott URL-címnek a következő formában kell lennie:https://dev.azure.com/<organization name>/<project name>/_git/<repository name>
Mentse ezt az URL-címet a következő szakaszban való használatra.
A Git-hitelesítő adatok létrehozása lehetőséget választva megjelenítheti a felhasználónevet és a jelszót, amelyet a következő szakaszban való használatra kell menteni.
Az Azure Spring Apps konfigurálása a Git-adattár eléréséhez
Jelentkezzen be az Azure Portalra.
Nyissa meg az Azure Spring Apps áttekintési oldalát.
Válassza ki a konfigurálni kívánt szolgáltatást.
A szolgáltatáslap bal oldali ablaktábláján válassza a Gépház alatt található Konfigurációkiszolgáló lapot. Konfigurálja a létrehozott adattárat az alábbiak szerint:
- Adja hozzá az előző szakaszban mentett adattár URI-ját.
- A Hitelesítés szerkesztése panel megnyitásához válassza a Hitelesítés csoportban található beállítást.
- A hitelesítés típusához válassza a HTTP Basic lehetőséget.
- Felhasználónévként adja meg az előző szakaszban mentett felhasználónevet.
- A Jelszó mezőben adja meg az előző szakaszban mentett jelszót.
- Válassza az OK gombot, majd várja meg, amíg a művelet befejeződik.
A konfiguráció törlése
A meglévő beállítások törléséhez válassza a Konfigurációkiszolgáló lapon az Alaphelyzetbe állítás lehetőséget. Törölje a konfigurációs kiszolgáló beállításait, ha a Config Server-példányt egy másik forráshoz szeretné csatlakoztatni, például amikor a GitHubról az Azure DevOps Serverre költözik.
Konfigurációs kiszolgáló frissítése
A tulajdonságok módosításakor a tulajdonságokat használó szolgáltatásokat értesíteni kell a módosítások végrehajtása előtt. A Spring Cloud Config Server alapértelmezett megoldása a frissítési esemény manuális aktiválása, ami sok alkalmazáspéldány esetén nem lehetséges. További információ: Központosított konfiguráció
Ehelyett automatikusan frissítheti a konfigurációs kiszolgáló értékeit úgy, hogy a konfigurációs ügyfél belső frissítés alapján lekérdezi a módosításokat. Az alábbi lépésekkel automatikusan frissíthet értékeket a Config Serverről.
Ütemezett feladat regisztrálása a környezet adott időközönkénti frissítéséhez, ahogyan az az alábbi példában is látható.
@ConditionalOnBean({RefreshEndpoint.class}) @Configuration @AutoConfigureAfter({RefreshAutoConfiguration.class, RefreshEndpointAutoConfiguration.class}) @EnableScheduling public class ConfigClientAutoRefreshConfiguration implements SchedulingConfigurer { @Value("${spring.cloud.config.refresh-interval:60}") private long refreshInterval; @Value("${spring.cloud.config.auto-refresh:false}") private boolean autoRefresh; private RefreshEndpoint refreshEndpoint; public ConfigClientAutoRefreshConfiguration(RefreshEndpoint refreshEndpoint) { this.refreshEndpoint = refreshEndpoint; } @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { if (autoRefresh) { // set minimal refresh interval to 5 seconds refreshInterval = Math.max(refreshInterval, 5); scheduledTaskRegistrar.addFixedRateTask(() -> refreshEndpoint.refresh(), refreshInterval * 1000); } } }
Engedélyezze az automatikus visszavételt, és állítsa be a megfelelő frissítési időközt a application.yml fájlban. Az alábbi példában az ügyfél 60 másodpercenként kérdezi le a konfiguráció változásait, ami a frissítési időközhöz megadható minimális érték.
Alapértelmezés szerint az automatikus visszavétel értéke hamis, a frissítési időköz pedig 60 másodperc.
spring: cloud: config: auto-refresh: true refresh-interval: 60 management: endpoints: web: exposure: include: - refresh
Adja hozzá @RefreshScope a kódot. Az alábbi példában a változó
connectTimeout
60 másodpercenként automatikusan frissül.@RestController @RefreshScope public class HelloController { @Value("${timeout:4000}") private String connectTimeout; }
További információ: config-client-polling minta.
Következő lépések
Ebben a cikkben megtanulta, hogyan engedélyezheti és konfigurálhatja a Spring Cloud Config Server-példányt. Az alkalmazás kezelésével kapcsolatos további információkért lásd : Alkalmazás méretezése az Azure Spring Appsben.