Migrera programkonfigurationstjänsten till Config Server for Spring i Azure Container Apps

Kommentar

Planerna Basic, Standardoch Enterprise gick in i en pensionsperiod den 17 mars 2025. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Den här artikeln gäller för: ❎ Basic/Standard ✅ Enterprise

Den här artikeln beskriver hur du migrerar Application Configuration Service (ACS) och Config Server till Config Server for Spring i Azure Container Apps. Azure Container Apps hanterar Config Server for Spring, som har liknande funktioner som ACS eller Spring Cloud Config Server i Azure Spring Apps.

Förutsättningar

  • En Azure Spring Apps Enterprise-planinstans med Application Configuration Service aktiverat.
  • En Azure Container Apps-miljö för Config Server och en Azure Container Apps-instans.

Tilldela konfigurationsserver

Följande steg visar hur du etablerar en konfigurationsserver för Spring i dina Azure Container Apps:

  1. Gå till din Azure Container Apps-miljö i Azure Portal.

  2. I menyn väljer du Tjänster>tjänster.

  3. Öppna listrutan Konfigurera och sedan välj Java-komponent.

  4. I panelen Konfigurera Java-komponent anger du följande värden:

    Egendom Värde
    Java-komponenttyp Välj Konfigurationsserver för Spring.
    Java-komponentnamn Ange configserver.
  5. I avsnittet Git-lagringsplatser väljer du Lägg till och migrerar sedan värdena från Programkonfigurationstjänsten till här, som du ser i följande tabell. Välj en lagringsplats som standardlagringsplats för Config Server for Spring.

    Egendom Värde
    Typ Välj STANDARD.
    URI Ange värdet för URI för lagringsplatsen.
    Namn på gren Ange värdet för lagringsplatsens etikett .
    Sökvägar Ange värdet för sökvägen till lagringsplatsen.
    Autentisering Välj lagringsplatsens autentiseringstyp och ange motsvarande information.

    Lämna resten av fälten med standardvärdena och välj sedan Lägg till.

  6. Om du har flera lagringsplatser väljer du Lägg till för att migrera andra lagringsplatser. För Typ väljer du Övrigt och migrerar sedan andra egenskaper enligt föregående steg och följande tabell:

    Egendom Värde
    Typ Välj STANDARD.
    Mönster Ange mönstervärdet för lagringsplatsen i {application}-formatet eller {application}/{profile}.
  7. I avsnittet Bindning öppnar du listrutan för att välja vilka appar som ska bindas till konfigurationsservern för Spring.

  8. Välj Nästa.

  9. Om du vill konfigurera Config Server går du till fliken Granska , väljer Konfigurera och följer sedan anvisningarna i konfigurationsavsnittet.

När det har skapats kan du se att etableringstillståndet för konfigurationsservern för Spring har slutförts.

Resurstilldelning

Resursallokeringen för containern för den hanterade konfigurationsservern i Azure Container Apps är fast i följande värden:

  • CPU: 0,5 vCPU
  • Minne: 1 gi

För att konfigurera antalet instanser av Config Server för Spring måste du uppdatera parametrarna --min-replicas och --max-replicas med samma värde. Den här konfigurationen säkerställer att instansantalet förblir fast. För närvarande stöder systemet inte konfigurationer för automatisk skalning för dynamisk skalning.

Konfigurera konfigurationsserver

Välj en Git-lagringsplats från Application Configuration Service (ACS) som standardlagringsplats i Config Server och andra lagringsplatser som ytterligare lagringsplatser.

Följande tabell innehåller en mappning mellan egenskaperna i ACS och motsvarande konfigurationer i Config Server:

Egenskapsnamn i ACS CONFIGURATION_KEY CONFIGURATION_VALUE
name Du behöver inte mappa det här värdet till Config Server.
pattern Du behöver inte mappa det här värdet till Config Server.
uri spring.cloud.config.server.git.uri
spring.cloud.config.server.git.repos.{repoName}.uri
URI:n för fjärrlagringsplatsen.
search path spring.cloud.config.server.git.search-paths
spring.cloud.config.server.git.repos.{repoName}.search-paths
Sökvägarna som ska användas i den lokala arbetskopian. Som standard söker endast roten.
label spring.cloud.config.server.git.default-label
spring.cloud.config.server.git.repos.{repoName}.default-label
Etiketten som används för Git.
username spring.cloud.config.server.git.username
spring.cloud.config.server.git.repos.{repoName}.username
Användarnamnet för autentisering med fjärrlagringsplatsen om autentiseringstypen är HTTP Basic.
password spring.cloud.config.server.git.password
spring.cloud.config.server.git.repos.{repoName}.password
Lösenordet för autentisering med fjärrlagringsplatsen om autentiseringstypen är HTTP Basic.
private key spring.cloud.config.server.git.private-key
spring.cloud.config.server.git.repos.{repoName}.private-key
En giltig privat SSH-nyckel om autentiseringstypen är SSH.
host key spring.cloud.config.server.git.host-key
spring.cloud.config.server.git.repos.{repoName}.host-key
En giltig SSH-värdnyckel om autentiseringstypen är SSH. Måste anges om host-key-algorithm det också är inställt.
host key algorithm spring.cloud.config.server.git.host-key-algorithm
spring.cloud.config.server.git.repos.{repoName}.host-key-algorithm
En av ssh-dss, ssh-rsa, ssh-ed25519, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384eller ecdsa-sha2-nistp521 om autentiseringstypen är SSH. Måste anges om host-key det också är inställt.

Fler egenskaper för konfigurationsserver finns i avsnittet Konfigurationsalternativ i Ansluta till en hanterad konfigurationsserver för Spring i Azure Container Apps.

Anta till exempel att du har följande konfiguration i ACS:

"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"
            }
        ]
    }
}

Med den här ACS-konfigurationen kan du migrera till Config Server for Spring med följande konfigurationer:

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

Ändra programkonfigurationen

När du har etablerat och konfigurerat konfigurationsservern för Spring använder du följande steg för att justera programkonfigurationen så att den används effektivt:

  1. Uppdatera Spring Boot-beroenden. Lägg till följande Spring Cloud-konfigurationsberoenden i din pom.xml för Maven eller build.gradle för Gradle.

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    
  2. Konfigurera en profil. Profilen för ACS tillhandahålls som mönster i en Azure Spring Apps-distribution, medan profilen i Config Server konfigureras i programmets källkod.

    Se till att programmet använder rätt profiler – dev, prodoch så vidare – så att konfigurationsservern kan hantera miljöspecifika konfigurationer.

    Uppdatera filen bootstrap.yml eller application.yml i ditt program med rätt konfigurationsegenskaper så att den pekar på konfigurationsservern, som du ser i följande exempel:

    spring:
      cloud:
        config:
          profile: dev
    
  3. Konfigurera ett uppdateringsintervall. Om du anger ett uppdateringsintervall i ACS kan du också ange motsvarande värde i konfigurationen spring.cloud.config.server.git.refreshRate av Config Server for Spring. Det här värdet avgör hur ofta Config Server for Spring hämtar uppdaterade konfigurationsdata från Git-serverdelen.

    Läs in egenskapsändringar i programmets kod med hjälp av följande steg:

    1. Registrera en schemalagd aktivitet för att uppdatera kontexten i ett visst intervall.
    2. Aktivera autorefresh och ange lämpligt uppdateringsintervall i filen application.yml .
    3. Lägg till @RefreshScope i koden.

    Mer information finns i Uppdatera konfigurationsserver.

Distribuera programmet till Azure Container Apps

När du har testat programmet lokalt kan du distribuera den nya avbildningen till Azure Container Apps-programmet.

Använd följande steg för att distribuera:

  1. Gå till ditt Azure Container Apps-program i Azure Portal.
  2. I menyn väljer du Program>containrar.
  3. Välj Redigera och distribuera för att öppna sidan Skapa och distribuera ny revision .
  4. I avsnittet Containeravbildning väljer du avbildningen och väljer sedan Redigera.
  5. I avsnittet Redigera en container går du till fliken Egenskaper och väljer den nya avbildningen av programmet.
  6. På fliken Miljövariabler för Namn anger du spring.application.name. För Källa väljer du Manuell inmatning och anger namnet på konfigurationsfilen där programmet hämtar konfigurationen.
  7. Välj Spara för att distribuera den nya revisionen.

Felsöka

Du kan visa loggar för den hanterade konfigurationsservern för Spring i Azure Container Apps med hjälp av Log Analytics. Gör så här:

  1. Gå till din Azure Container Apps-miljö i Azure Portal.

  2. Välj menyn Övervakningsloggar>.

  3. Om du vill visa loggar anger du en fråga i frågeredigeraren för ContainerAppSystemLogs_CL tabellen enligt följande exempel:

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

Mer information om att skapa frågor mot loggar finns i "Observability of managed Java components in Azure Container Apps" (Observerbarhet för hanterade Java-komponenter i Azure Container Apps).

Kända begränsningar

Migrering av ACS till Config Server for Spring gäller endast för Java-program. Eftersom ACS hanterar konfigurationen med hjälp av Kubernetes-native ConfigMap. Den här metoden möjliggör dynamiska konfigurationsuppdateringar i Kubernetes-miljöer, vilket gör den mångsidig för olika program med flera programmeringsspråk. Spring Cloud Config Server är främst utformat för Java-program, men använder Spring Framework-funktioner och stöder därför endast konfigurationshantering för Java.