Freigeben über


Migrieren des Anwendungskonfigurationsdiensts zu Config Server for Spring in Azure Container Apps

Hinweis

Die Pläne "Basic", "Standard" und "Enterprise" sind am 17. März 2025 in einen Ruhestandszeitraum eingetreten. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.

Dieser Artikel gilt für: ❎ Basic/Standard ✅ Enterprise

In diesem Artikel wird beschrieben, wie Sie Application Configuration Service (ACS) und Config Server zu Config Server for Spring in Azure Container Apps migrieren. Azure Container Apps verwaltet Config Server for Spring, der ähnliche Funktionen wie ACS oder Spring Cloud Config Server in Azure Spring Apps hat.

Voraussetzungen

  • Eine Azure Spring Apps Enterprise-Instanz des Plans mit aktiviertem Anwendungskonfigurationsdienst.
  • Eine Azure Container Apps-Umgebung für Config Server und eine Azure Container Apps-Instanz.

Bereitstellungskonfigurationsserver

Die folgenden Schritte zeigen, wie Sie einen Config Server for Spring in Ihren Azure Container Apps bereitstellen:

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Container Apps-Umgebung.

  2. Wählen Sie im Menü Services>Services aus.

  3. Öffnen Sie die Dropdownliste Konfigurieren und wählen Sie dann Java-Komponente aus.

  4. Geben Sie im Bereich Java-Komponente konfigurieren die folgenden Werte ein:

    Eigenschaft Wert
    Java-Komponententyp Wählen Sie Config Server für Spring aus.
    Java-Komponentenname Geben Sie configserver ein.
  5. Wählen Sie im Abschnitt Git-RepositorysHinzufügen aus und migrieren Sie dann die Werte aus dem Anwendungskonfigurationsdienst zu dieser Stelle, wie in der folgenden Tabelle dargestellt. Wählen Sie ein Repository als Standard-Repository von Config Server for Spring aus.

    Eigenschaft Wert
    Typ Wählen Sie STANDARD aus.
    URI Geben Sie den Wert des URI des Repositorys ein.
    Branchname Geben Sie den Wert der Bezeichnung des Repositorys ein.
    Suchpfade Geben Sie den Wert des Suchpfads des Repositorys ein.
    Authentifizierung Wählen Sie den Authentifizierungstyp des Repositorys aus und geben Sie die entsprechenden Informationen ein.

    Übernehmen Sie bei den restlichen Feldern die Standardwerte, und wählen Sie Hinzufügen aus.

  6. Wenn Sie über mehrere Repositorys verfügen, wählen Sie Hinzufügen aus, um andere Repositorys zu migrieren. Wählen Sie für TypAndere aus, und migrieren Sie dann andere Eigenschaften wie im vorherigen Schritt und in der folgenden Tabelle gezeigt:

    Eigenschaft Wert
    Typ Wählen Sie STANDARD aus.
    Muster Geben Sie den Wert für Muster für das Repository im Format {application} oder {application}/{profile} ein.
  7. Öffnen Sie im Abschnitt Bindung das Dropdownmenü, um die Apps auszuwählen, die an den Konfigurationsserver für Spring gebunden werden sollen.

  8. Wählen Sie Weiter aus.

  9. Wählen Sie zum Einrichten des Konfigurationsservers auf der Registerkarte ÜberprüfenKonfigurieren von aus, und folgen Sie dann den Anweisungen im Konfigurationsabschnitt.

Nach erfolgreicher Erstellung können Sie sehen, dass der Bereitstellungsstatus von Config Server for Spring erfolgreich ist.

Ressourcenzuteilung

Die Containerressourcenzuordnung für den verwalteten Config Server in Azure Container Apps ist auf die folgenden Werte festgelegt:

  • CPU: 0,5 vCPU
  • Speicher: 1 Gi

Um die Instanzenanzahl von Config Server for Spring zu konfigurieren, müssen Sie die Parameter --min-replicas und --max-replicas mit demselben Wert aktualisieren. Diese Konfiguration stellt sicher, dass die Anzahl der Instanzen fest bleibt. Derzeit unterstützt das System keine automatischen Skalierungskonfigurationen für die dynamische Skalierung.

Konfigurieren des Konfigurationsservers

Wählen Sie ein Git-Repository aus dem Application Configuration Service (ACS) als Standardrepository in Config Server und andere Repositorys als zusätzliche Repositorys aus.

Die folgende Tabelle enthält eine Zuordnung zwischen den Eigenschaften in ACS und den entsprechenden Konfigurationen in Config Server:

Eigenschaftenname in ACS CONFIGURATION_KEY CONFIGURATION_VALUE
name Sie müssen diesen Wert nicht dem Config Server zuordnen.
pattern Sie müssen diesen Wert nicht dem Config Server zuordnen.
uri spring.cloud.config.server.git.uri
spring.cloud.config.server.git.repos.{repoName}.uri
Der URI des Remote-Repositorys.
search path spring.cloud.config.server.git.search-paths
spring.cloud.config.server.git.repos.{repoName}.search-paths
Die Suchpfade, die in lokalen Arbeitskopien verwendet werden sollen. Standardmäßig wird nur der Stamm durchsucht.
label spring.cloud.config.server.git.default-label
spring.cloud.config.server.git.repos.{repoName}.default-label
Die Bezeichnung, die für Git verwendet wird.
username spring.cloud.config.server.git.username
spring.cloud.config.server.git.repos.{repoName}.username
Der Benutzername für die Authentifizierung mit dem Remote-Repository, wenn der Authentifizierungstyp HTTP Basic lautet.
password spring.cloud.config.server.git.password
spring.cloud.config.server.git.repos.{repoName}.password
Das Kennwort für die Authentifizierung mit dem Remote-Repository, wenn der Authentifizierungstyp HTTP Basic lautet.
private key spring.cloud.config.server.git.private-key
spring.cloud.config.server.git.repos.{repoName}.private-key
Ein gültiger privater SSH-Schlüssel, wenn der Authentifizierungstyp SSH lautet.
host key spring.cloud.config.server.git.host-key
spring.cloud.config.server.git.repos.{repoName}.host-key
Ein gültiger SSH-Hostschlüssel, wenn der Authentifizierungstyp SSH lautet. Muss festgelegt werden, wenn host-key-algorithm auch festgelegt ist.
host key algorithm spring.cloud.config.server.git.host-key-algorithm
spring.cloud.config.server.git.repos.{repoName}.host-key-algorithm
Einer von ssh-dss, ssh-rsa, ssh-ed25519, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 oder ecdsa-sha2-nistp521, wenn der Authentifizierungstyp SSH ist. Muss festgelegt werden, wenn host-key auch festgelegt ist.

Weitere Config Server-Eigenschaften finden Sie im Abschnitt Konfigurationsoptionen in Herstellen einer Verbindung mit einem verwalteten Config Server for Spring in Azure Container Apps.

Angenommen, Sie haben die folgende Konfiguration in 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"
            }
        ]
    }
}

Mit dieser ACS-Konfiguration können Sie mit den folgenden Konfigurationen zu Config Server for Spring migrieren:

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

Ändern der Anwendungskonfiguration

Nachdem Sie den Config Server for Spring bereitgestellt und konfiguriert haben, führen Sie die folgenden Schritte aus, um die Anwendungskonfiguration so anzupassen, dass sie effektiv verwendet wird:

  1. Aktualisieren von Spring Boot-Abhängigkeiten. Fügen Sie die folgenden Spring Cloud Config-Abhängigkeiten zu Ihrem pom.xml für Maven oder build.gradle für Gradle hinzu.

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    
  2. Konfigurieren Sie ein Profil. Das Profil für ACS wird als Muster in einer Azure Spring Apps-Bereitstellung bereitgestellt, während in Config Server das Profil im Quellcode der Anwendung konfiguriert ist.

    Stellen Sie sicher, dass Ihre Anwendung die richtigen Profile verwendet – dev, prod usw., damit der Config Server umgebungsspezifische Konfigurationen bereitstellen kann.

    Aktualisieren Sie die bootstrap.yml- oder application.yml-Datei in Ihrer Anwendung mit den richtigen Konfigurationseigenschaften, um auf den Config Server zu verweisen, wie im folgenden Beispiel gezeigt:

    spring:
      cloud:
        config:
          profile: dev
    
  3. Konfigurieren Sie ein Aktualisierungsintervall. Wenn Sie ein Aktualisierungsintervall in ACS festlegen, können Sie auch den entsprechenden Wert in der spring.cloud.config.server.git.refreshRate-Konfiguration von Config Server for Spring angeben. Dieser Wert bestimmt, wie häufig Config Server for Spring aktualisierte Konfigurationsdaten aus dem Git-Back-End abruft.

    Gehen Sie wie folgt vor, um Eigenschaftsänderungen im Code Ihrer Anwendung zu laden:

    1. Registrieren Sie eine geplante Aufgabe, um den Kontext in einem bestimmten Intervall zu aktualisieren.
    2. Aktivieren Sie autorefresh und legen Sie das entsprechende Aktualisierungsintervall in Ihrer application.yml-Datei fest.
    3. Fügen Sie Ihrem Code @RefreshScope hinzu.

    Weitere Informationen finden Sie unter Config Server aktualisieren.

Bereitstellen der Anwendung in Azure Container Apps

Nach dem lokalen Testen der Anwendung können Sie das neue Image in der Azure Container Apps-Anwendung bereitstellen.

Führen Sie die folgenden Schritte zum Bereitstellen aus:

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Container Apps-Anwendung.
  2. Wählen Sie im Menü Anwendungscontainer>Container aus.
  3. Wählen Sie Bearbeiten und Bereitstellen aus, um die Seite Neue Überarbeitung erstellen und bereitstellen zu öffnen.
  4. Wählen Sie im Abschnitt Containerimage das Bild aus und wählen Sie dann Bearbeiten aus.
  5. Wählen Sie im Abschnitt Container bearbeiten auf der Registerkarte Eigenschaften das neue Bild der Anwendung aus.
  6. Geben Sie auf der Registerkarte Umgebungsvariablen als Namespring.application.name ein. Wählen Sie dann als QuelleManueller Eintrag aus und geben Sie den Konfigurationsdateinamen an, unter dem die Anwendung die Konfiguration verwendet.
  7. Wählen Sie Speichern aus, um die neue Revision bereitzustellen.

Problembehandlung

Sie können Protokolle für den verwalteten Konfigurationsserver für Spring in Azure Container Apps mithilfe von Log Analytics anzeigen. Führen Sie die folgenden Schritte durch:

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Container Apps-Umgebung.

  2. Wählen Sie das Menü Überwachung>Protokolle aus.

  3. Um Protokolle anzuzeigen, geben Sie eine Abfrage in den Abfrage-Editor für die ContainerAppSystemLogs_CL-Tabelle ein, wie im folgenden Beispiel gezeigt:

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

Weitere Informationen zum Abfragen von Protokollen finden Sie unter Einblick von verwalteten Java-Komponenten in Azure Container Apps.

Bekannte Einschränkung

Die Migration von ACS zu Config Server for Spring gilt nur für Java-Anwendungen. Da ACS die Konfiguration mithilfe der Kubernetes-nativen ConfigMap verwaltet. Diese Methode ermöglicht dynamische Konfigurationsupdates in Kubernetes-Umgebungen, was sie für verschiedene Anwendungen mit mehreren Programmiersprachen vielseitig macht. Während Spring Cloud Config Server in erster Linie für Java-Anwendungen konzipiert ist, werden Spring Framework-Features verwendet und somit nur die Konfigurationsverwaltung für Java unterstützt.