Een instantie van een Spring Cloud Config Server instellen voor uw service

Dit artikel is van toepassing op: ✔️ Java ✔️ C#

In dit artikel leest u hoe u een instantie van een Spring Cloud Config Server kunt verbinden met uw Azure Spring Cloud-service.

Spring Cloud Config biedt ondersteuning aan server- en clientzijde voor een geëxternaliseerde configuratie in een gedistribueerd systeem. Met de instantie van Config Server heeft u een centrale plek om externe eigenschappen te beheren voor toepassingen in alle omgevingen. Raadpleeg Spring Cloud Config Server-referentie voor meer informatie.

Vereisten

Beperking

Er gelden enkele beperkingen op het gebruik van Config Server met een Git-back-end. Sommige eigenschappen worden automatisch in de omgeving van uw toepassing om toegang te krijgen tot Config Server en Service Discovery. Als u deze eigenschappen ook vanuit uw Config Server-bestanden configureert, kunnen er conflicten en onverwacht gedrag optreden. De eigenschappen zijn:

eureka.client.service-url.defaultZone
eureka.client.tls.keystore
server.port
spring.cloud.config.tls.keystore
spring.application.name
spring.jmx.enabled

Waarschuwing

We raden u ten zeerste aan de bovenstaande eigenschappen niet op te nemen in de toepassingsbestanden van uw Config Server.

Uw Config Server-bestanden maken

Azure Spring Cloud biedt ondersteuning voor Azure DevOps, GitHub, GitLab en Bitbucket om uw Config Server-bestanden op te slaan. Wanneer uw opslagplaats klaar is, maakt u de configuratiebestanden aan met de volgende instructies en slaat u ze daar op.

Daarnaast zijn sommige configureerbare eigenschappen alleen beschikbaar voor bepaalde typen. In de volgende subsecties vindt u de eigenschappen van elk type opslagplaats.

Openbare opslagplaats

Wanneer u een openbare opslagplaats gebruikt, zijn uw configureerbare eigenschappen beperkter.

In de volgende tabel vindt u alle configureerbare eigenschappen die worden gebruikt om de openbare Git-opslagplaats in te stellen:

Notitie

Het gebruik van een afbreekstreepje (-) als scheidingsteken tussen woorden is momenteel de enige ondersteunde naamconventie. U kunt bijvoorbeeld standaard-label gebruiken, maar niet standaardLabel.

Eigenschap Vereist Functie
uri Ja De URI van de Git-opslagplaats die als back-end van de Config Server wordt gebruikt, begint met http:// , https:// , git@ of ssh:// .
default-label Nee Het standaardlabel van de Git-opslagplaats moet de vertakkingsnaam, tagnaam of commit-id van de opslagplaat zijn.
search-paths Nee Een matrix van tekenreeksen die worden gebruikt om te zoeken in submappen van de Git-opslagplaats.

Persoonlijke opslagplaats met SSH-verificatie

In de volgende tabel vindt u alle configureerbare eigenschappen die worden gebruikt om de persoonlijke Git-opslagplaats in te stellen:

Notitie

Het gebruik van een afbreekstreepje (-) als scheidingsteken tussen woorden is momenteel de enige ondersteunde naamconventie. U kunt bijvoorbeeld standaard-label gebruiken, maar niet standaardLabel.

Eigenschap Vereist Functie
uri Ja De URI van de Git-opslagplaats die als back-end van de Config Server wordt gebruikt, moet beginnen met http:// , https:// , git@ of ssh:// .
default-label Nee Het standaardlabel van de Git-opslagplaats moet de vertakkingsnaam, tagnaam of commit-id van de opslagplaat zijn.
search-paths Nee Een matrix van tekenreeksen gebruikt om te zoeken in submappen van de Git-opslagplaats.
private-key Nee De persoonlijke SSH-sleutel om de Git-opslagplaats te openen, vereist wanneer de URI begint met git@ of ssh:// .
host-key Nee De hostsleutel van de server voor de Git-opslagplaats mag het algoritmevoorvoegsel niet bevatten, zoals beschreven in host-key-algorithm.
host-key-algorithm Nee Het algoritme van de hostsleutel moet ssh-dss- zijn, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 of ecdsa-sha2-nistp521 zijn. Enkel vereist als host-key bestaat.
strict-host-key-checking Nee Geeft aan of het opstarten van de instantie van de Config Server zal mislukken wanneer de persoonlijke host-key gebruikt wordt. Moet true (standaardwaarde) of false zijn.

Notitie

Config Server gebruikt master (om Git zelf) als standaardlabel als dit niet is opgegeven. Maar GitHub de standaard-vertakking gewijzigd van master in main onlangs. Als u Azure Spring Cloud Config Server wilt voorkomen, let dan op het standaardlabel bij het instellen van Config Server met GitHub, met name voor nieuwe gemaakte opslagplaatsen.


Persoonlijke opslagplaats met basisverificatie

Hieronder vindt u alle configureerbare eigenschappen die worden gebruikt om de persoonlijke Git-opslagplaats met basisverificatie in te stellen.

Notitie

Het gebruik van een afbreekstreepje (-) als scheidingsteken tussen woorden is momenteel de enige ondersteunde naamconventie. Gebruik bijvoorbeeld standaard-label, niet standaardLabel.

Eigenschap Vereist Functie
uri Ja De URI van de Git-opslagplaats die als back-end van de Config Server wordt gebruikt, moet beginnen met http:// , https:// , git@ of ssh:// .
default-label Nee Het standaardlabel van de Git-opslagplaats moet de vertakkingsnaam, tagnaam of commit-id van de opslagplaat zijn.
search-paths Nee Een matrix van tekenreeksen gebruikt om te zoeken in submappen van de Git-opslagplaats.
username Nee De gebruikersnaam die wordt gebruikt om toegang te krijgen tot de server van de Git-opslagplaats, vereist wanneer de server van de Git-opslagplaats Http Basic Authenticationondersteunt.
password Nee Het wachtwoord of het persoonlijke toegangs token dat wordt gebruikt voor toegang tot de server van de Git-opslagplaats, vereist wanneer de server van de Git-opslagplaats ondersteuning biedt Http Basic Authentication voor .

Notitie

Veel servers voor Git-opslagplaatsen bieden ondersteuning voor het gebruik van tokens in plaats van wachtwoorden voor HTTP-basisverificatie. Met sommige opslagplaatsen kunnen tokens voor onbepaalde tijd worden opgeslagen. Sommige servers voor Git-opslagplaatsen, Azure DevOps Server, dwingen tokens echter binnen een paar uur te verlopen. Opslagplaatsen die ervoor zorgen dat tokens verlopen, mogen geen verificatie op basis van tokens gebruiken met Azure Spring Cloud. GitHub heeft de ondersteuning voor wachtwoordverificatie verwijderd, dus u moet een persoonlijk toegang token gebruiken in plaats van wachtwoordverificatie voor Github. Zie Tokenverificatie voor meer informatie.

Aanvullende Git-opslagplaatsen

Hieronder vindt u alle configureerbare eigenschappen die worden gebruikt om Git-opslagplaatsen in te stellen met een patroon.

Notitie

Het gebruik van een afbreekstreepje (-) als scheidingsteken tussen woorden is momenteel de enige ondersteunde naamconventie. Gebruik bijvoorbeeld standaard-label, niet standaardLabel.

Eigenschap Vereist Functie
repos Nee Een toewijzing bestaande uit de instellingen voor een Git-opslagplaats met een bepaalde naam.
repos."uri" Ja voor repos De URI van de Git-opslagplaats die als back-end van de Config Server wordt gebruikt, moet beginnen met http:// , https:// , git@ of ssh:// .
repos."name" Ja voor repos Een naam om te identificeren in de Git-opslagplaats, alleen vereist als repos bestaat. Bijvoorbeeld team-A, team-B.
repos."pattern" Nee Een matrix van tekenreeksen gebruikt om een toepassingsnaam te vinden. Gebruik het {application}/{profile}-formaat met jokertekens voor elk patroon.
repos."default-label" Nee Het standaardlabel van de Git-opslagplaats moet de vertakkingsnaam, tagnaam of commit-id van de opslagplaat zijn.
repos."search-paths" Nee Een matrix van tekenreeksen gebruikt om te zoeken in submappen van de Git-opslagplaats.
repos."username" Nee De gebruikersnaam die wordt gebruikt om toegang te krijgen tot de server van de Git-opslagplaats, vereist wanneer de server van de Git-opslagplaats Http Basic Authenticationondersteunt.
repos."password" Nee Het wachtwoord of het persoonlijke toegangs token dat wordt gebruikt voor toegang tot de server van de Git-opslagplaats, vereist wanneer de server van de Git-opslagplaats ondersteuning biedt Http Basic Authentication voor .
repos."private-key" Nee De persoonlijke SSH-sleutel om de Git-opslagplaats te openen, vereist wanneer de URI begint met git@ of ssh:// .
repos."host-key" Nee De hostsleutel van de server voor de Git-opslagplaats mag het algoritmevoorvoegsel niet bevatten, zoals beschreven in host-key-algorithm.
repos."host-key-algorithm" Nee Het algoritme van de hostsleutel moet ssh-dss- zijn, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 of ecdsa-sha2-nistp521 zijn. Enkel vereist als host-key bestaat.
repos."strict-host-key-checking" Nee Geeft aan of het opstarten van de instantie van de Config Server zal mislukken wanneer de persoonlijke host-key gebruikt wordt. Moet true (standaardwaarde) of false zijn.

In de volgende tabel ziet u enkele voorbeelden voor de sectie Aanvullende opslagplaatsen. Zie Patroonmatching en meerdere opslagplaatsen in de Spring-documentatie voor meer informatie.

Patronen Description
test-config-server-app-0/* Het patroon en de opslagplaats-URI komen overeen met een Spring Boot-toepassing met de naam test-config-server-app-0 en elk profiel.
test-config-server-app-1/dev Het patroon en de opslagplaats-URI komen overeen met een Spring Boot-toepassing met de naam test-config-server-app-1 en het dev-profiel.
test-config-server-app-2/prod Het patroon en de opslagplaats-URI komen overeen met een Spring Boot-toepassing met de naam test-config-server-app-2 prod-profiel.

Azure Portal schermopname met de Config Server pagina met de kolom Patterns van de tabel 'Aanvullende opslagplaatsen' gemarkeerd

Uw Config Server-opslagplaats toevoegen aan Azure Spring Cloud

Nu dat uw configuratiebestanden zijn opgeslagen in een opslagplaats, moet u Azure Spring Cloud ermee verbinden.

  1. Meld u aan bij de Azure-portal.

  2. Ga naar de Overzichtspagina van Azure Spring Cloud.

  3. Selecteer Config Server in het linkernavigatievenster.

  4. Stel in de sectie Standaardopslagplaats URI in op https://github.com/Azure-Samples/piggymetrics-config.

  5. Selecteer Valideren.

    Ga naar de configuratieserver

  6. Wanneer de validatie is voltooid, selecteert u Toepassen om uw wijzigingen op te slaan.

    Configuratieserver valideren

  7. Het bijwerken van de configuratie kan enkele minuten duren.

    Configuratieserver bijwerken

  8. U ontvangt een melding wanneer de configuratie is voltooid.

De gegevens van de opslagplaats rechtstreeks invoeren bij de Azure-portal

Standaardopslagplaats

  • Openbare opslagplaats: Plak de URI van de opslagplaats in het vak URI in de sectie Standaardopslagplaats. Stel het Label in op config. Zorg ervoor dat de instelling Verificatie op Openbaar staat en selecteer vervolgen Toepassen om te voltooien.

  • Persoonlijke opslagplaats: Azure Spring Cloud biedt ondersteuning voor basisverificatie op basis van wachtwoorden/tokens en SSH.

    • Basisverificatie: Plak de URI van de opslagplaats in de sectie Standaardopslagplaats in het vak URI en selecteer vervolgens de knop Verificatie (pictogram van potlood). Selecteer HTTP-basis in het venster Verificatie bewerken in de vervolgkeuzelijst Verificatietype en voer vervolgens uw gebruikersnaam en wachtwoord/token in om toegang te verlenen tot Azure Spring Cloud. Selecteer OK en vervolgens Toepassen om de instelling van uw instantie van een Config Server te voltooien.

    Basisverificatie in het deelvenster Verificatie bewerken

    Waarschuwing

    Sommige Servers voor Git-opslagplaatsen gebruiken een persoonlijk token of een toegangs-token, zoals een wachtwoord, voor basisverificatie. U kunt dit soort token gebruiken als wachtwoord in Azure Spring Cloud aangezien het nooit verloopt. Maar voor andere servers voor Git-opslagplaatsen, zoals Bitbucket en Azure DevOps Server, verloopt het toegangs token binnen één of twee uur. Dit betekent dat de optie niet werkbaar is wanneer u die servers voor opslagplaatsen gebruikt met Azure Spring Cloud. GitHub heeft de ondersteuning voor wachtwoordverificatie verwijderd, dus u moet een persoonlijk toegang token gebruiken in plaats van wachtwoordverificatie voor Github. Zie Tokenverificatie voor meer informatie.

    • SSH: Plak de URI van de opslagplaats in het vak URI in de sectie Standaardopslagplaats en selecteer vervolgens de knop Verificatie (pictogram van potlood). Selecteer SSH in de vervolgkeuzelijst Verificatietype in het deelvenster Verificatie bewerken en voer vervolgens uw Persoonlijke sleutel in. U kunt eventueel uw Hostsleutel en Algoritme van de hostsleutel opgeven. Zorg ervoor dat u uw openbare sleutel in uw opslagplaats voor de Config Server opneemt. Selecteer OK en vervolgens Toepassen om de instelling van uw instantie van een Config Server te voltooien.

    SSH-verificatie in het deelvenster Verificatie bewerken

Aanvullende opslagplaatsen

Als u een optionele Aanvullende opslagplaatsen wilt gebruiken om uw service te configureren, geeft u de URI en verificatie op dezelfde manier op als de Standaardopslagplaats. Vergeet geen Naam op te geven voor uw patroon en selecteer vervolgens Toepassen om deze aan uw instantie toe te voegen.

Informatie over en opslagplaats invoeren in een YAML-bestand

Als u een YAML-bestand heeft geschreven met instellingen voor uw opslagplaats, dan kunt u het bestand rechtstreeks importeren vanaf uw lokale machine naar Azure Spring Cloud. Een eenvoudig YAML-bestand voor een persoonlijke opslagplaats met basisverificatie ziet er als volgt uit:

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

Klik op de knop Instellingen importeren en selecteer vervolgens het YAML-bestand in uw projectmap. Selecteer Importeren, vervolgens verschijnt er een async-bewerking van uw Meldingen. Na 1-2 minuten zou de bewerking voltooid moeten zijn.

Het deelvenster Meldingen van de Config Server

De informatie uit uw YAML-bestand zou moeten worden weergegeven in het Azure-portal. Selecteer Toepassen om te voltooien.

Azure-Azure Spring Cloud gebruiken

Azure Spring Cloud heeft toegang tot Git-opslagplaatsen die openbaar zijn, worden beveiligd door SSH of worden beveiligd met behulp van HTTP-basisverificatie. We gebruiken die laatste optie, omdat het eenvoudiger is om met Azure-repos te maken en te beheren.

Url en referenties van de repo op halen

  1. Selecteer in de Azure Repos-portal voor uw project de knop Klonen:

    Knop Klonen

  2. Kopieer de kloon-URL uit het tekstvak. Deze URL heeft doorgaans de volgende vorm:

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

    Verwijder alles na https:// en vóór dev.azure.com , met inbegrip van de @ . De resulterende URL moet de volgende vorm hebben:

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

    Sla deze URL op voor gebruik in de volgende sectie.

  3. Selecteer Git-referenties genereren. Er worden een gebruikersnaam en wachtwoord weergegeven. Sla deze op voor gebruik in de volgende sectie.

Azure Spring Cloud configureren voor toegang tot de Git-opslagplaats

  1. Meld u aan bij de Azure-portal.

  2. Ga naar de pagina Overzicht van Azure Spring Cloud.

  3. Selecteer de service die u wilt configureren.

  4. Selecteer in het linkerdeelvenster van de servicepagina onder Instellingen het tabblad Config Server service. Configureer de opslagplaats die we eerder hebben gemaakt:

    • Voeg de URL van de opslagplaats toe die u in de vorige sectie hebt opgeslagen.
    • Selecteer Verificatie en selecteer vervolgens HTTP Basic.
    • De gebruikersnaam is de gebruikersnaam die is opgeslagen in de vorige sectie.
    • Het wachtwoord is het wachtwoord dat in de vorige sectie is opgeslagen.
    • Selecteer Toepassen en wacht tot de bewerking is geslaagd.

    Spring Cloud-configuratieserver

Uw configuratie verwijderen

U kunt de knop Opnieuw instellen selecteren die wordt weergegeven op Config Server tabblad om uw bestaande instellingen volledig te wissen. Verwijder de configuratieserverinstellingen als u uw Config Server-exemplaar wilt verbinden met een andere bron, zoals het verplaatsen van GitHub naar Azure DevOps.

Config Server vernieuwen

Wanneer eigenschappen worden gewijzigd, moeten services die deze eigenschappen gebruiken een melding ontvangen voordat wijzigingen kunnen worden aangebracht. De standaardoplossing voor Spring Cloud-configuratie is het handmatig activeren van de vernieuwingsgebeurtenis, wat mogelijk niet haalbaar is als er veel app-exemplaren zijn. U kunt in Azure Spring Cloud waarden van de configuratieserver ook automatisch vernieuwen door de configuratieclient te laten zoeken naar wijzigingen op basis van een interne vernieuwing.

  • Neem eerst spring-cloud-starter-azure-spring-cloud-client op in de afhankelijkheidssectie van uw pom.xml.

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId>
        <version>2.4.0</version>
    </dependency>
    
  • Schakel ten tweede automatisch vernieuwen in en stel het juiste vernieuwingsinterval in uw application.yml in. In dit voorbeeld pollt de client elke vijf seconden naar configuratiewijzigingen. Dit is de minimale waarde die u voor het vernieuwingsinterval kunt instellen. Automatisch vernieuwen is standaard ingesteld op false en refresh-interval is ingesteld op 60 seconden.

    spring:
      cloud:
        config:
          auto-refresh: true
          refresh-interval: 5
    
  • Voeg ten @refreshScope slotte uw code toe. In dit voorbeeld wordt de variabele connectTimeout automatisch elke vijf seconden vernieuwd.

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

Volgende stappen

In dit artikel hebt u geleerd hoe u uw exemplaar van een Spring Cloud-configuratieserver kunt inschakelen en configureren. Zie Een toepassing schalen in Azure Spring Cloud voor meer informatie over het beheren van uw toepassing.