Sdílet prostřednictvím


Migrace služby Application Configuration Service na konfigurační server pro Spring v Azure Container Apps

Poznámka:

Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Tento článek se vztahuje na: ❎ Basic/Standard ✅ Enterprise

Tento článek popisuje, jak migrovat službu Application Configuration Service (ACS) a konfigurační server na konfigurační server pro Spring v Azure Container Apps. Azure Container Apps spravuje konfigurační server pro Spring, který má podobné funkce jako ACS nebo Spring Cloud Config Server v Azure Spring Apps.

Požadavky

  • Instance plánu Enterprise pro Azure Spring Apps s povolenou službou Application Configuration Service
  • Prostředí Azure Container Apps pro konfigurační server a instanci Azure Container Apps.

Zřízení konfiguračního serveru

Následující kroky ukazují, jak zřídit konfigurační server pro Spring ve službě Azure Container Apps:

  1. Na webu Azure Portal přejděte do prostředí Azure Container Apps.

  2. V nabídce vyberte Služby>.

  3. Otevřete rozevírací seznam Konfigurovat a vyberte komponentu Java.

  4. Na panelu Konfigurovat komponenty Java zadejte následující hodnoty:

    Vlastnost Hodnota
    Typ komponenty Java Vyberte Konfigurační server pro Spring.
    Název komponenty Java Zadejte konfigurační server.
  5. V části Úložiště Git vyberte Přidat a pak migrujte hodnoty ze služby Application Configuration Service, jak je znázorněno v následující tabulce. Jako výchozí úložiště konfiguračního serveru pro Spring zvolte jedno úložiště.

    Vlastnost Hodnota
    Typ Vyberte VÝCHOZÍ.
    Identifikátor URI Zadejte hodnotu identifikátoru URI úložiště.
    Název větve Zadejte hodnotu popisku úložiště.
    Cesty pro hledání Zadejte hodnotu cesty hledání úložiště.
    Authentication Vyberte typ ověřování úložiště a zadejte odpovídající informace.

    Ponechte zbývající pole s výchozími hodnotami a pak vyberte Přidat.

  6. Pokud máte více úložišť, vyberte Přidat a migrujte další úložiště. V části Typ vyberte Jiné a potom migrujte další vlastnosti, jak je znázorněno v předchozím kroku a následující tabulka:

    Vlastnost Hodnota
    Typ Vyberte VÝCHOZÍ.
    Vzor
  7. V části Vazba otevřete rozevírací seznam a vyberte aplikace, které se mají svázat s konfiguračním serverem pro Spring.

  8. Vyberte Další.

  9. Chcete-li nastavit konfigurační server, na kartě Revize vyberte Konfigurovat a poté postupujte podle pokynů v části Konfigurace.

Po úspěšném vytvoření uvidíte, že stav zřizování pro Konfigurační server pro Spring je úspěšný.

Přidělení prostředků

Přidělení prostředků kontejneru pro spravovaný konfigurační server v Azure Container Apps je pevné na následující hodnoty:

  • CPU: 0,5 vCPU
  • Paměť: 1 Gi

Pokud chcete nakonfigurovat počet instancí konfiguračního serveru pro Spring, musíte aktualizovat parametry --min-replicas a --max-replicas stejnou hodnotou. Tato konfigurace zajišťuje, že počet instancí zůstane pevný. V současné době systém nepodporuje konfigurace automatického škálování pro dynamické škálování.

Konfigurace konfiguračního serveru

Vyberte jedno úložiště Git ze služby Application Configuration Service (ACS) jako výchozí úložiště na konfiguračním serveru a další úložiště jako další úložiště.

Následující tabulka obsahuje mapování mezi vlastnostmi ve službě ACS a odpovídajícími konfiguracemi na konfiguračním serveru:

Název vlastnosti v ACS CONFIGURATION_KEY CONFIGURATION_VALUE
name Tuto hodnotu nemusíte mapovat na konfigurační server.
pattern Tuto hodnotu nemusíte mapovat na konfigurační server.
uri spring.cloud.config.server.git.uri
spring.cloud.config.server.git.repos.{repoName}.uri
Identifikátor URI vzdáleného úložiště.
search path spring.cloud.config.server.git.search-paths
spring.cloud.config.server.git.repos.{repoName}.search-paths
Cesty hledání, které se mají použít v místní pracovní kopii. Ve výchozím nastavení prohledá pouze kořen.
label spring.cloud.config.server.git.default-label
spring.cloud.config.server.git.repos.{repoName}.default-label
Štítek použitý pro Git.
username spring.cloud.config.server.git.username
spring.cloud.config.server.git.repos.{repoName}.username
Uživatelské jméno pro ověřování ve vzdáleném úložišti, pokud je typ ověřování HTTP Basic.
password spring.cloud.config.server.git.password
spring.cloud.config.server.git.repos.{repoName}.password
Heslo pro ověřování ve vzdáleném úložišti, je-li typ ověřování HTTP Basic.
private key spring.cloud.config.server.git.private-key
spring.cloud.config.server.git.repos.{repoName}.private-key
Platný privátní klíč SSH, pokud je typ ověřování SSH.
host key spring.cloud.config.server.git.host-key
spring.cloud.config.server.git.repos.{repoName}.host-key
Platný klíč hostitele SSH, pokud je typ ověřování SSH. Musí být nastavena i v případě, že host-key-algorithm je nastavena.
host key algorithm spring.cloud.config.server.git.host-key-algorithm
spring.cloud.config.server.git.repos.{repoName}.host-key-algorithm
Jeden z ssh-dss, ssh-rsa, ssh-ed25519, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 nebo ecdsa-sha2-nistp521, pokud je typ ověřování SSH. Musí být nastavena i v případě, že host-key je nastavena.

Další vlastnosti konfiguračního serveru najdete v části Možnosti konfigurace připojení ke spravovanému konfiguračnímu serveru pro Spring v Azure Container Apps.

Předpokládejme například, že máte v ACS následující konfiguraci:

"settings": {
    "gitProperty": {
        "repositories": [
            {
                "name": "r1",
                "patterns": [
                    "application"
                ],
                "label": "master",
                "uri": "https://github.com/Azure-Samples/spring-petclinic-microservices-config"
            },
            {
                "name": "r2",
                "patterns": [
                    "customers-service"
                ],
                "label": "master",
                "uri": "https://github.com/Azure-Samples/spring-petclinic-microservices-config"
            },
            {
                "name": "r3",
                "patterns": [
                    "payment"
                ],
                "label": "main",
                "uri": "https://github.com/Azure-Samples/acme-fitness-store-config"
            }
        ]
    }
}

S touto konfigurací služby ACS můžete migrovat na konfigurační server pro Spring s následujícími konfiguracemi:

spring.cloud.config.server.git.uri=https://github.com/Azure-Samples/spring-petclinic-microservices-config
spring.cloud.config.server.git.default-label=master
spring.cloud.config.server.git.repos.repo1.uri=https://github.com/Azure-Samples/acme-fitness-store-config
spring.cloud.config.server.git.repos.repo1.default-label=main

Změna konfigurace aplikace

Po zřízení a konfiguraci konfiguračního serveru pro Spring upravte konfiguraci aplikace tak, aby ji efektivně používala:

  1. Aktualizace závislostí Spring Boot Do pom.xml pro Maven nebo build.gradle pro Gradle přidejte následující závislosti Spring Cloud Config.

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    
  2. Nakonfigurujte profil. Profil služby ACS se poskytuje jako vzory v nasazení Azure Spring Apps, zatímco na konfiguračním serveru je profil nakonfigurovaný ve zdrojovém kódu aplikace.

    Ujistěte se, že vaše aplikace používá správné profily – devproda tak dále – aby konfigurační server mohl obsluhovat konfigurace specifické pro prostředí.

    Aktualizujte soubor bootstrap.yml nebo application.yml ve vaší aplikaci přidáním správných konfiguračních vlastností tak, aby odkazoval na konfigurační server, jak je znázorněno v následujícím příkladu:

    spring:
      cloud:
        config:
          profile: dev
    
  3. Nakonfigurujte interval aktualizace. Pokud nastavíte interval aktualizace v ACS, můžete také zadat odpovídající hodnotu v spring.cloud.config.server.git.refreshRate konfiguraci konfiguračního serveru pro Spring. Tato hodnota určuje, jak často konfigurační server pro Spring načítá aktualizovaná konfigurační data z back-endu Gitu.

    Pokud chcete načíst změny vlastností v kódu aplikace, postupujte následovně:

    1. Zaregistrujte naplánovanou úlohu pro aktualizaci kontextu v daném intervalu.
    2. Povolte autorefresha nastavte odpovídající interval aktualizace v souboru application.yml .
    3. Přidejte @RefreshScope do kódu.

    Další informace naleznete v tématu Aktualizace konfiguračního serveru.

Nasazení aplikace do Azure Container Apps

Po místním otestování aplikace můžete novou image nasadit do aplikace Azure Container Apps.

K nasazení použijte následující postup:

  1. Na webu Azure Portal přejděte k aplikaci Azure Container Apps.
  2. V nabídce vyberte Aplikace>Kontejnery.
  3. Výběrem možnosti Upravit a nasadit otevřete stránku Vytvořit a nasadit novou revizi .
  4. V části Image kontejneru vyberte image a pak vyberte Upravit.
  5. V části Upravit kontejner vyberte na kartě Vlastnosti novou image aplikace.
  6. Na kartě Proměnné prostředí zadejte do Jménospring.application.name. Potom v části Zdroj zvolte ruční položku a zadejte název konfiguračního souboru, ve kterém aplikace konfiguraci využívá.
  7. Výběrem možnosti Uložit nasadíte novou revizi.

Odstraňování potíží

Protokoly pro spravovaný konfigurační server pro Spring v Azure Container Apps můžete zobrazit pomocí Log Analytics. Použijte následující postup:

  1. Na webu Azure Portal přejděte do prostředí Azure Container Apps.

  2. Vyberte nabídku Monitorování>Protokoly.

  3. Pokud chcete zobrazit protokoly, zadejte dotaz do editoru ContainerAppSystemLogs_CL dotazů pro tabulku, jak je znázorněno v následujícím příkladu:

    ContainerAppSystemLogs_CL
    | where ComponentType_s == "SpringCloudConfig"
    | project Time=TimeGenerated, ComponentName=ComponentName_s, Message=Log_s
    | take 100
    

Další informace o dotazování protokolů najdete v Observability of managed Java components in Azure Container Apps.

Známé omezení

Migrace služby ACS na konfigurační server pro Spring platí jenom pro aplikace v Javě. Vzhledem k tomu, že služba ACS spravuje konfiguraci pomocí nativního ConfigMapKubernetes . Tato metoda umožňuje dynamické aktualizace konfigurace v prostředích Kubernetes, takže je všestranná pro různé aplikace s více programovacími jazyky. Spring Cloud Config Server je sice primárně určený pro aplikace v Javě, ale používá funkce Spring Frameworku, a proto podporuje pouze správu konfigurace pro Javu.