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

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 mastermain. 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-keyrendszer 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-keyrendszer 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.

Screenshot of Azure portal showing the Config Server page with the Patterns column of the Additional repositories table highlighted.

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.

  1. Jelentkezzen be az Azure Portalra.

  2. Nyissa meg az Azure Spring Apps áttekintési oldalát.

  3. Válassza a Konfigurációs kiszolgáló lehetőséget a bal oldali navigációs panelen.

  4. Az Alapértelmezett adattár szakaszban állítsa az URI értékét a következőrehttps://github.com/Azure-Samples/piggymetrics-config: .

  5. Válassza az Ellenőrzés lehetőséget.

    Screenshot of Azure portal showing the Config Server page.

  6. Ha az ellenőrzés befejeződött, a módosítások mentéséhez válassza az Alkalmaz elemet.

    Screenshot of Azure portal showing Config Server page with Apply button highlighted.

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.

    Screenshot of the Default repository section showing authentication settings for Basic authentication.

    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.

    Screenshot of the Default repository section showing authentication settings for SSH authentication.

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.

Screenshot of the Config Server Import settings pane.

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.

  1. A projekt Azure Repos portálján válassza a Klónozás gombot:

  2. 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.comutána https:// 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.

  3. 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

  1. Jelentkezzen be az Azure Portalra.

  2. Nyissa meg az Azure Spring Apps áttekintési oldalát.

  3. Válassza ki a konfigurálni kívánt szolgáltatást.

  4. 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.

    Screenshot of repository configuration settings.

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.

  1. Ü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);
            }
        }
    }
    
  2. 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
    
  3. 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.