Sdílet prostřednictvím


Konfigurace spravovaného serveru Spring Cloud Config v Azure Spring Apps

Poznámka:

Azure Spring Apps je nový název služby Azure Spring Cloud. Přestože má služba nový název, na některých místech uvidíte starý název, protože pracujeme na aktualizaci prostředků, jako jsou snímky obrazovky, videa a diagramy.

Tento článek se vztahuje na: ✔️ Java ✔️ C#

Tento článek se vztahuje na: ✔️ Využití standardu a vyhrazené (Preview) ✔️ Basic/Standard ✔️ Enterprise

V tomto článku se dozvíte, jak nakonfigurovat spravovaný Spring Cloud Config Server v Azure Spring Apps.

Spring Cloud Config Server poskytuje podporu na straně serveru a klienta pro externalizovanou konfiguraci v distribuovaném systému. Instance Spring Cloud Config Serveru poskytuje centrální místo pro správu externích vlastností pro aplikace ve všech prostředích. Další informace najdete v tématu Spring Cloud Config.

Poznámka:

Pokud chcete použít konfigurační server ve standardním a vyhrazeném plánu, musíte ho nejprve povolit. Další informace najdete v tématu Povolení a zakázání Spring Cloud Config Serveru v Azure Spring Apps.

Požadavky

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Povolení spring cloudového konfiguračního serveru

Spring Cloud Config Server můžete povolit při zřizování instance služby plánu Azure Spring Apps Enterprise. Pokud už máte instanci plánu Azure Spring Apps Enterprise, přečtěte si část Správa spring cloudového konfiguračního serveru v existující instanci plánu Enterprise v tomto článku.

Spring Cloud Config Server můžete povolit pomocí webu Azure Portal nebo Azure CLI.

Pomocí následujících kroků povolte Spring Cloud Config Server:

  1. Otevřete Azure Portal.

  2. Na kartě Základy vyberte v části Ceny úroveň Enterprise a zadejte požadované informace. Pak vyberte Další: Spravované komponenty.

  3. Na kartě Spravované komponenty vyberte Povolit Spring Cloud Config Server (Preview).

    Snímek obrazovky webu Azure Portal, který zobrazuje kartu nastavení VMware Tanzu se zvýrazněným zaškrtávacím polem Povolit Spring Cloud Config Server

  4. Zadejte další nastavení a pak vyberte Zkontrolovat a vytvořit.

  5. Na kartě Zkontrolovat vytvoření se ujistěte, že je možnost Povolit Spring Cloud Config Server (Preview) nastavená na Ano. Vyberte Vytvořit a vytvořte instanci plánu Enterprise.

Omezení

Při použití konfiguračního serveru s back-endem Gitu platí určitá omezení. Následující vlastnosti se automaticky vloží do vašeho aplikačního prostředí pro přístup ke konfiguračnímu serveru a zjišťování služeb. Pokud tyto vlastnosti nakonfigurujete také ze souborů konfiguračního serveru, může docházet ke konfliktům a neočekávanému chování.

  • 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

Upozornění

Vyhněte se vkládání těchto vlastností do souborů aplikace konfiguračního serveru.

Vytvoření souborů konfiguračního serveru

Azure Spring Apps podporuje Azure DevOps Server, GitHub, GitLab a Bitbucket pro ukládání souborů konfiguračního serveru. Až bude úložiště připravené, můžete vytvořit konfigurační soubory a uložit je tam.

Některé konfigurovatelné vlastnosti jsou k dispozici pouze pro určité typy. Následující části popisují vlastnosti jednotlivých typů úložiště.

Poznámka:

Pokud ho nezadáte, konfigurační server jako výchozí popisek převezme master (na Gitu). GitHub ale nedávno změnil výchozí větev z master na main. Abyste se vyhnuli selhání konfiguračního serveru Azure Spring Apps, nezapomeňte při nastavování konfiguračního serveru pomocí GitHubu věnovat pozornost výchozímu popisku, zejména u nově vytvořených úložišť.

Použití spojovníku (-) k oddělení slov je aktuálně podporovaná jediná konvence pojmenování vlastností. Můžete například použít default-label, ale ne defaultLabel.

Veřejné úložiště

Při použití veřejného úložiště jsou konfigurovatelné vlastnosti omezenější než u privátního úložiště.

Následující tabulka uvádí konfigurovatelné vlastnosti, které můžete použít k nastavení veřejného úložiště Git:

Vlastnost Požaduje se Funkce
uri Ano Identifikátor URI úložiště Git, který se používá jako back-end konfiguračního serveru. Měl by začínat na http://, https://, git@nebo ssh://.
default-label No Výchozí popisek úložiště Git. Měl by to být název větve, název značky nebo ID potvrzení v úložišti.
search-paths No Pole řetězců, které slouží k vyhledávání podadresářů úložiště Git.

Privátní úložiště s ověřováním SSH

Následující tabulka uvádí konfigurovatelné vlastnosti, které můžete použít k nastavení privátního úložiště Git pomocí SSH:

Vlastnost Požaduje se Funkce
uri Ano Identifikátor URI úložiště Git, který se používá jako back-end konfiguračního serveru. Měl by začínat na http://, https://, git@nebo ssh://.
default-label No Výchozí popisek úložiště Git. Mělo by to být název větve, název značky nebo ID potvrzení úložiště.
search-paths No Pole řetězců sloužících k vyhledávání podadresářů úložiště Git.
private-key No Privátní klíč SSH pro přístup k úložišti Git. Vyžaduje se při spuštění git@ identifikátoru URI nebo ssh://.
host-key No Klíč hostitele serveru úložiště Git. Neměla by obsahovat předponu algoritmu, která je pokryta host-key-algorithm.
host-key-algorithm No Algoritmus klíče hostitele. Měla by být ssh-dss, , ssh-rsaecdsa-sha2-nistp256, ecdsa-sha2-nistp384nebo ecdsa-sha2-nistp521. Povinné pouze v případě, že host-key existuje.
strict-host-key-checking No Indikátor konfiguračního serveru, který ukazuje, zda se při použití soukromého host-keyserveru nepodaří spustit . Měla by být true (výchozí hodnota) nebo false.

Privátní úložiště se základním ověřováním

Následující tabulka uvádí konfigurovatelné vlastnosti, které můžete použít k nastavení privátního úložiště Git se základním ověřováním:

Vlastnost Požaduje se Funkce
uri Ano Identifikátor URI úložiště Git, který se používá jako back-end konfiguračního serveru. Měl by začínat na http://, https://, git@nebo ssh://.
default-label No Výchozí popisek úložiště Git. Měl by to být název větve, název značky nebo ID potvrzení v úložišti.
search-paths No Pole řetězců sloužících k vyhledávání podadresářů úložiště Git.
username No Uživatelské jméno použité pro přístup k serveru úložiště Git. Vyžaduje se, když server úložiště Git podporuje základní ověřování HTTP.
password No Heslo nebo osobní přístupový token použitý pro přístup k serveru úložiště Git. Vyžaduje se, když server úložiště Git podporuje základní ověřování HTTP.

Poznámka:

Mnoho serverů úložiště Git podporuje použití tokenů místo hesel pro základní ověřování HTTP. Některá úložiště umožňují trvalé uchovávání tokenů. Některé servery úložiště Git, včetně Azure DevOps Serveru, ale vynutí vypršení platnosti tokenů za několik hodin. Úložiště, která způsobují vypršení platnosti tokenů, by neměla používat ověřování na základě tokenů v Azure Spring Apps. Pokud takový token použijete, nezapomeňte ho před vypršením platnosti aktualizovat.

GitHub odebral podporu ověřování heslem, takže místo ověřování heslem pro GitHub musíte použít osobní přístupový token. Další informace najdete v tématu Požadavky na ověřování tokenů pro operace Gitu.

Další úložiště Git

Následující tabulka uvádí konfigurovatelné vlastnosti, které můžete použít k nastavení úložišť Git se vzorem:

Vlastnost Požaduje se Funkce
repos No Mapa skládající se z nastavení úložiště Git s daným názvem.
repos."uri" Ano na repos Identifikátor URI úložiště Git, který se používá jako back-end konfiguračního serveru. Měl by začínat na http://, https://, git@nebo ssh://.
repos."name" Ano na repos Název pro identifikaci úložiště; například team-A nebo team-B. Povinné pouze v případě, že repos existuje.
repos."pattern" No Pole řetězců, které se používají ke shodě s názvem aplikace. Pro každý vzor použijte formát {application}/{profile} se zástupnými cardy.
repos."default-label" No Výchozí popisek úložiště Git. Měl by to být název větve, název značky nebo potvrzení IOD úložiště.
repos."search-paths" No Pole řetězců sloužících k vyhledávání podadresářů úložiště Git.
repos."username" No Uživatelské jméno použité pro přístup k serveru úložiště Git. Vyžaduje se, když server úložiště Git podporuje základní ověřování HTTP.
repos."password" No Heslo nebo osobní přístupový token použitý pro přístup k serveru úložiště Git. Vyžaduje se, když server úložiště Git podporuje základní ověřování HTTP.
repos."private-key" No Privátní klíč SSH pro přístup k úložišti Git. Vyžaduje se, když identifikátor URI začíná git@ nebo ssh://.
repos."host-key" No Klíč hostitele serveru úložiště Git. Neměla by obsahovat předponu algoritmu, která je pokryta host-key-algorithm.
repos."host-key-algorithm" No Algoritmus klíče hostitele. Měla by být ssh-dss, , ssh-rsaecdsa-sha2-nistp256, ecdsa-sha2-nistp384nebo ecdsa-sha2-nistp521. Povinné pouze v případě, že host-key existuje.
repos."strict-host-key-checking" No Označuje, zda se instance konfiguračního serveru nespustí při použití privátní host-key. Měla by být true (výchozí hodnota) nebo false.

Následující tabulka uvádí několik příkladů vzorů pro konfiguraci služby s volitelným dalším úložištěm. Další informace najdete v části Extra úložiště v tomto článku a oddíl Porovnávání vzorů a více úložišť spring cloud config.

Vzory Popis
test-config-server-app-0/* Vzor a identifikátor URI úložiště odpovídají aplikaci Spring Boot s názvem test-config-server-app-0 libovolného profilu.
test-config-server-app-1/dev Vzor a identifikátor URI úložiště odpovídají aplikaci Spring Boot s názvem test-config-server-app-1 vývojového profilu.
test-config-server-app-2/prod Vzor a identifikátor URI úložiště odpovídají aplikaci Spring Boot s pojmenovaným test-config-server-app-2 profilem.

Snímek obrazovky webu Azure Portal se stránkou Konfigurační server se zvýrazněným sloupcem Vzory v tabulce Další úložiště

Snímek obrazovky webu Azure Portal se stránkou Konfigurační server se zvýrazněným sloupcem Vzory v tabulce Další úložiště

Konfigurace úložiště Git proti konfiguračnímu serveru

Po uložení konfiguračních souborů v úložišti připojte Azure Spring Apps k úložišti pomocí následujícího postupu:

  1. Přihlaste se k portálu Azure.

  2. Přejděte na stránku Přehled služby Azure Spring Apps.

  3. V navigačním podokně vyberte Spring Cloud Config Server .

  4. V části Výchozí úložiště nastavte identifikátor URI na https://github.com/Azure-Samples/piggymetrics-config.

  5. Vyberte Ověřit.

    Snímek obrazovky webu Azure Portal se stránkou konfiguračního serveru

    Snímek obrazovky webu Azure Portal se stránkou konfiguračního serveru

  6. Po dokončení ověření vyberte Použít a uložte provedené změny.

    Snímek obrazovky webu Azure Portal se stránkou Konfigurační server se zvýrazněným tlačítkem Použít

    Snímek obrazovky webu Azure Portal se stránkou Konfigurační server se zvýrazněným tlačítkem Použít

Aktualizace konfigurace může trvat několik minut. Po dokončení konfigurace byste měli dostat oznámení.

Zadejte informace o úložišti přímo na web Azure Portal.

Můžete zadat informace o úložišti pro výchozí úložiště a volitelně také pro další úložiště.

Výchozí úložiště

V této části se dozvíte, jak zadat informace o úložišti pro veřejné nebo privátní úložiště. Pro privátní úložiště můžete použít základní ověřování nebo SSH.

Pomocí následujícího postupu zadejte informace o úložišti pro veřejné úložiště:

  1. V části Výchozí úložiště vložte do pole Uri identifikátor URI identifikátor URI úložiště.
  2. Jako nastavení Popisek zadejte konfiguraci.
  3. Ujistěte se, že je nastavení Ověřování veřejné.
  4. Vyberte Použít.

Pomocí následujícího postupu zadejte informace o úložišti privátního úložiště pomocí základního ověřování založeného na heslech nebo tokenech:

  1. V části Výchozí úložiště vložte do pole Uri identifikátor URI identifikátor URI úložiště.

  2. V části Ověřování vyberte Upravit ověřování.

  3. V podokně Upravit ověřování vyberte v rozevíracím seznamu Typ ověřování možnost HTTP Basic.

  4. Zadejte uživatelské jméno a heslo/token, abyste udělili přístup k Azure Spring Apps.

  5. Vyberte OK a pak vyberte Použít k dokončení nastavení instance konfiguračního serveru.

    Snímek obrazovky webu Azure Portal znázorňující část Výchozí úložiště nastavení ověřování pro základní ověřování

    Poznámka:

    Mnoho serverů úložiště Git podporuje použití tokenů místo hesel pro základní ověřování HTTP. Některá úložiště umožňují trvalé uchovávání tokenů. Některé servery úložiště Git, včetně Azure DevOps Serveru, ale vynutí vypršení platnosti tokenů za několik hodin. Úložiště, která způsobují vypršení platnosti tokenů, by neměla používat ověřování na základě tokenů v Azure Spring Apps. Pokud takový token použijete, nezapomeňte ho před vypršením platnosti aktualizovat.

    GitHub odebral podporu ověřování heslem, takže místo ověřování heslem pro GitHub musíte použít osobní přístupový token. Další informace najdete v tématu Požadavky na ověřování tokenů pro operace Gitu.

Pomocí následujícího postupu zadejte informace o úložišti privátního úložiště pomocí SSH:

  1. V části Výchozí úložiště vložte do pole Uri identifikátor URI identifikátor URI úložiště.

  2. V části Ověřování vyberte Upravit ověřování.

  3. V podokně Upravit ověřování v rozevíracím seznamu Typ ověřování vyberte SSH.

  4. Zadejte svůj privátní klíč. Volitelně můžete zadat klíč hostitele a algoritmus klíče hostitele.

  5. Zahrňte svůj veřejný klíč do úložiště konfiguračního serveru.

  6. Vyberte OK a pak vyberte Použít k dokončení nastavení instance konfiguračního serveru.

    Snímek obrazovky webu Azure Portal s oddílem Výchozí úložiště nastavení ověřování pro ověřování SSH

Další úložiště

Pokud chcete službu nakonfigurovat s volitelným dalším úložištěm, postupujte následovně:

  1. Zadejte nastavení identifikátoru URI a ověřování , jak jste to udělali pro výchozí úložiště. Nezapomeňte uvést nastavení Název pro váš vzor.
  2. Vyberte Použít pro připojení úložiště k vaší instanci.

Konfigurace úložiště Git importem souboru YAML

Pokud jste napsali soubor YAML s nastavením úložiště, můžete ho importovat přímo z místního počítače do Azure Spring Apps. Následující příklad ukazuje jednoduchý soubor YAML pro privátní úložiště se základním ověřováním:

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/azure-spring-apps-samples-pr/config-server-repository.git
          username: <username>
          password: <password/token>

K importu souboru YAML použijte následující postup:

  1. Vyberte Nastavení importu a pak v adresáři projektu vyberte soubor YAML. Vyberte Importovat.

    Snímek obrazovky webu Azure Portal s podoknem nastavení importu konfiguračního serveru

    Snímek obrazovky webu Azure Portal s podoknem nastavení importu konfiguračního serveru

    V podokně Oznámení se async zobrazí operace. Konfigurační server by měl hlásit úspěch po 1 až 2 minutách. Informace ze souboru YAML se zobrazí na webu Azure Portal.

  2. Import dokončíte výběrem možnosti Použít .

Konfigurace Azure Repos proti konfiguračnímu serveru

Azure Spring Apps má přístup k úložištím Git, která jsou veřejná, zabezpečená protokolem SSH nebo zabezpečená pomocí základního ověřování HTTP. Základní ověřování HTTP je nejjednodušší z možností pro vytváření a správu úložišť pomocí Azure Repos.

Získání adresy URL a přihlašovacích údajů úložiště

Pomocí následujícího postupu získejte adresu URL a přihlašovací údaje úložiště:

  1. Na portálu Azure Repos pro váš projekt vyberte Klonovat.

  2. Zkopírujte adresu URL klonu z textového pole. Tato adresa URL je obvykle v následujícím formátu:

    https://<organization name>@dev.azure.com/<organization name>/<project name>/_git/<repository name>
    

    Odeberte všechno za https:// a před dev.azure.com, včetně symbolu @ . Výsledná adresa URL by měla být v následujícím formátu:

    https://dev.azure.com/<organization name>/<project name>/_git/<repository name>
    

    Uložte tuto adresu URL, abyste ji mohli použít později.

  3. Výběrem možnosti Generovat přihlašovací údaje Gitu zobrazte uživatelské jméno a heslo. Toto uživatelské jméno a heslo uložte, abyste ho mohli použít v následující části.

Konfigurace úložiště Git proti konfiguračnímu serveru

Ke konfiguraci úložiště použijte následující postup:

  1. Přihlaste se k portálu Azure.

  2. Přejděte na stránku Přehled služby Azure Spring Apps.

  3. Vyberte službu, která se má nakonfigurovat.

  4. V levém podokně stránky služby v části Nastavení vyberte kartu Spring Cloud Config Server .

  5. Pomocí následujících kroků nakonfigurujte úložiště, které jste vytvořili:

    • Přidejte identifikátor URI úložiště, který jste si uložili dříve.
    • Výběrem nastavení v části Ověřování otevřete podokno Upravit ověřování .
    • Jako typ ověřování vyberte HTTP Basic.
    • Jako uživatelské jméno zadejte uživatelské jméno, které jste si uložili dříve.
    • Jako heslo zadejte heslo, které jste si uložili dříve.
    • Vyberte OK a počkejte na dokončení operace.

    Snímek obrazovky webu Azure Portal znázorňující výchozí nastavení konfigurace úložiště se zvýrazněným identifikátorem URI a typem ověřování

Vytvoření vazby aplikace na Spring Cloud Config Server

Pomocí následujícího příkazu vytvořte vazbu aplikace na Spring Cloud Config Server a povolte aplikaci načíst konfigurace z konfiguračního serveru.

az spring config-server bind \
    --resource-group <resource-group> \
    --service <service-name> \
    --app <app-name>

Vazbu aplikace můžete nastavit také na webu Azure Portal, jak je znázorněno na následujícím snímku obrazovky:

Snímek obrazovky webu Azure Portal zobrazující stránku Spring Cloud Config Server se zvýrazněným rozevíracím seznamem Vazby aplikací

Poznámka:

Rozšíření těchto změn do všech aplikací trvá několik minut, když se změní stav konfiguračního serveru.

Pokud změníte stav vazby nebo zrušení vazby, musíte aplikaci restartovat nebo znovu nasadit.

Teď se můžete rozhodnout vytvořit vazbu aplikace na Spring Cloud Config Server přímo při vytváření nové aplikace pomocí následujícího příkazu:

az spring app create \ 
    --resource-group <resource-group> \ 
    --service <service-name> \ 
    --name <app-name> \ 
    --bind-config-server

Aplikaci můžete také svázat se serverem Spring Cloud Config Server z webu Azure Portal, jak je znázorněno na následujícím snímku obrazovky:

Snímek obrazovky webu Azure Portal se zvýrazněnou stránkou Vytvořit aplikaci se zvýrazněným rozevíracím seznamem Bind

Odstranění konfigurace

Vyberte Obnovit na kartě Spring Cloud Config Server a vymažte stávající nastavení. Pokud chcete připojit instanci konfiguračního serveru k jinému zdroji, například když přecházíte z GitHubu na Azure DevOps Server, odstraňte nastavení konfiguračního serveru.

Aktualizace konfiguračního serveru

Při změně vlastností musí být služby, které tyto vlastnosti využívají, před provedením změn upozorněny. Výchozím řešením pro Spring Cloud Config Server je ruční aktivace události aktualizace, která nemusí být proveditelná, pokud existuje mnoho instancí aplikace. Další informace naleznete v tématu Centralizovaná konfigurace

Místo toho můžete hodnoty z konfiguračního serveru automaticky aktualizovat tak, že necháte klienta konfigurace dotazovat změny na základě interní aktualizace.

Pomocí následujících kroků můžete automaticky aktualizovat hodnoty z konfiguračního serveru:

  1. Zaregistrujte naplánovanou úlohu pro aktualizaci kontextu v daném intervalu, jak je znázorněno v následujícím příkladu:

    @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. Povolte autorefresh a nastavte odpovídající interval aktualizace v souboru application.yml . V následujícím příkladu se klient dotazuje na změny konfigurace každých 60 sekund, což je minimální hodnota, kterou můžete nastavit pro interval aktualizace.

    Ve výchozím nastavení je autorefresh nastaven false na hodnotu a interval aktualizace je nastaven na 60 secondshodnotu .

    spring:
        cloud:
             config:
              auto-refresh: true
              refresh-interval: 60
    management:
        endpoints:
             web:
              exposure:
                include:
                  - refresh
    
  3. Přidejte @RefreshScope do kódu. V následujícím příkladu se proměnná connectTimeout automaticky aktualizuje každých 60 sekund.

    @RestController
    @RefreshScope
    public class HelloController {
        @Value("${timeout:4000}")
        private String connectTimeout;
    }
    

Další informace najdete v ukázce dotazu config-client-polling .

Správa Spring Cloud Config Serveru v existující instanci plánu Enterprise

Spring Cloud Config Server můžete po vytvoření služby povolit a zakázat pomocí webu Azure Portal nebo Azure CLI. Před zakázáním Spring Cloud Config Serveru musíte zrušit vazbu všech aplikací.

Pomocí následujících kroků povolte nebo zakažte Spring Cloud Config Server:

  1. Přejděte do instance služby a pak vyberte Spring Cloud Config Server.

  2. Vyberte položku Spravovat.

  3. Vyberte nebo zrušte výběr možnosti Povolit Spring Cloud Config Server a pak vyberte Uložit.

    Snímek obrazovky webu Azure Portal znázorňující podokno Správa se zvýrazněnou možností Povolit konfigurační server

  4. Stav Spring Cloud Config Serveru teď můžete zobrazit na stránce Spring Cloud Config Server .

Azure Spring Apps