Konfigurace spravovaného serveru Spring Cloud Config v Azure Spring Apps
Poznámka:
Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.
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.
- Již zřízená a spuštěná instance služby Azure Spring Apps pomocí plánu Basic nebo Standard. Informace o nastavení a spuštění služby Azure Spring Apps najdete v rychlém startu: Nasazení první aplikace do Azure Spring Apps.
- Už zřízená a spuštěná instance služby Azure Spring Apps Informace o nastavení a spuštění služby Azure Spring Apps najdete v tématu Rychlý start: Sestavování a nasazování aplikací do Azure Spring Apps pomocí plánu Enterprise.
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:
Otevřete Azure Portal.
Na kartě Základy vyberte v části Ceny úroveň Enterprise a zadejte požadované informace. Pak vyberte Další: Spravované komponenty.
Na kartě Spravované komponenty vyberte Povolit Spring Cloud Config Server.
Zadejte další nastavení a pak vyberte Zkontrolovat a vytvořit.
Na kartě Zkontrolovat vytvoření se ujistěte, že je možnost Povolit Spring Cloud Config Server 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-rsa ecdsa-sha2-nistp256 , ecdsa-sha2-nistp384 nebo 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-key serveru 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-rsa ecdsa-sha2-nistp256 , ecdsa-sha2-nistp384 nebo 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. |
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:
Přihlaste se k portálu Azure.
Přejděte na stránku Přehled služby Azure Spring Apps.
V navigačním podokně vyberte Spring Cloud Config Server .
V části Výchozí úložiště nastavte identifikátor URI na
https://github.com/Azure-Samples/piggymetrics-config
.Vyberte Ověřit.
Po dokončení ověření vyberte Použít a uložte provedené změny.
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ě:
- V části Výchozí úložiště vložte do pole Uri identifikátor URI identifikátor URI úložiště.
- Jako nastavení Popisek zadejte konfiguraci.
- Ujistěte se, že je nastavení Ověřování veřejné.
- 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:
V části Výchozí úložiště vložte do pole Uri identifikátor URI identifikátor URI úložiště.
V části Ověřování vyberte Upravit ověřování.
V podokně Upravit ověřování vyberte v rozevíracím seznamu Typ ověřování možnost HTTP Basic.
Zadejte uživatelské jméno a heslo/token, abyste udělili přístup k Azure Spring Apps.
Vyberte OK a pak vyberte Použít k dokončení nastavení instance konfiguračního serveru.
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:
V části Výchozí úložiště vložte do pole Uri identifikátor URI identifikátor URI úložiště.
V části Ověřování vyberte Upravit ověřování.
V podokně Upravit ověřování v rozevíracím seznamu Typ ověřování vyberte SSH.
Zadejte svůj privátní klíč. Volitelně můžete zadat klíč hostitele a algoritmus klíče hostitele.
Zahrňte svůj veřejný klíč do úložiště konfiguračního serveru.
Vyberte OK a pak vyberte Použít k dokončení nastavení instance konfiguračního serveru.
Další úložiště
Pokud chcete službu nakonfigurovat s volitelným dalším úložištěm, postupujte následovně:
- 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.
- 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:
Vyberte Nastavení importu a pak v adresáři projektu vyberte soubor YAML. Vyberte Importovat.
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.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ě:
Na portálu Azure Repos pro váš projekt vyberte Klonovat.
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ředdev.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.
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:
Přihlaste se k portálu Azure.
Přejděte na stránku Přehled služby Azure Spring Apps.
Vyberte službu, která se má nakonfigurovat.
V levém podokně stránky služby v části Nastavení vyberte kartu Spring Cloud Config Server .
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.
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:
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:
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:
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); } } }
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 na60 seconds
hodnotu .spring: cloud: config: auto-refresh: true refresh-interval: 60 management: endpoints: web: exposure: include: - refresh
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: