Konfigurera en Spring Cloud Config Server instans för din tjänst
Den här artikeln gäller för: ✔️ Java ✔️ C #
Den här artikeln visar hur du ansluter en Spring Cloud Config Server-instans till din Azure Spring Cloud tjänst.
Spring Cloud Config ger stöd på server- och klientsidan för en externaliserad konfiguration i ett distribuerat system. Med Config Server instansen har du en central plats där du kan hantera externa egenskaper för program i alla miljöer. Mer information finns i Spring Cloud Config Server referens.
Förutsättningar
- En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
- En redan etablerad och Azure Spring Cloud tjänst. Om du vill konfigurera och starta en Azure Spring Cloud-tjänst kan du gå till Snabbstart: Starta ett Java Spring-program med hjälp av Azure CLI.
Begränsning
Det finns vissa begränsningar när du använder Config Server med en Git-backend. Vissa egenskaper matas automatiskt in i programmiljön för att få åtkomst Config Server och Tjänstidentifiering. Om du även konfigurerar dessa egenskaper Config Server filer kan det uppstå konflikter och oväntat beteende. Egenskaperna är:
eureka.client.service-url.defaultZone
eureka.client.tls.keystore
server.port
spring.cloud.config.tls.keystore
spring.application.name
spring.jmx.enabled
Varning
Vi rekommenderar starkt att du inte lägger ovanstående egenskaper i Config Server programfiler.
Skapa dina Config Server filer
Azure Spring Cloud har stöd för Azure DevOps, GitHub, GitLab och Bitbucket för att lagra Config Server filer. När du har din lagringsplats klar skapar du konfigurationsfilerna med följande instruktioner och lagrar dem där.
Dessutom är vissa konfigurerbara egenskaper endast tillgängliga för vissa typer. I följande underavsnitt visas egenskaperna för varje typ av lagringsplats.
Offentlig lagringsplats
När du använder en offentlig lagringsplats är de konfigurerbara egenskaperna mer begränsade.
Alla konfigurerbara egenskaper som används för att konfigurera den offentliga Git-lagringsplatsen visas i följande tabell:
Anteckning
Att använda ett bindestreck (-) för att avgränsa ord är den enda namngivningskonvention som stöds för närvarande. Du kan till exempel använda standardetiketten, men inte defaultLabel.
| Egenskap | Krävs | Funktion |
|---|---|---|
uri |
Yes | URI:en för Git-lagringsplatsen som används som Config Server-backend börjar med http://, https://, git@ eller ssh://. |
default-label |
No | Standardetiketten för Git-lagringsplatsen ska vara grennamnet, taggnamnet eller commit-id för lagringsplatsen. |
search-paths |
No | En matris med strängar som används för att söka efter underkataloger i Git-lagringsplatsen. |
Privat lagringsplats med SSH-autentisering
Alla konfigurerbara egenskaper som används för att konfigurera en privat Git-lagringsplats med SSH visas i följande tabell:
Anteckning
Att använda ett bindestreck (-) för att avgränsa ord är den enda namngivningskonvention som stöds för närvarande. Du kan till exempel använda standardetiketten, men inte defaultLabel.
| Egenskap | Krävs | Funktion |
|---|---|---|
uri |
Yes | URI:en för Git-lagringsplatsen som används som Config Server backend bör startas med http://, https://, git@ eller ssh://. |
default-label |
No | Standardetiketten för Git-lagringsplatsen ska vara grennamnet, taggnamnet eller commit-id för lagringsplatsen. |
search-paths |
No | En matris med strängar som används för att söka efter underkataloger i Git-lagringsplatsen. |
private-key |
No | Den privata SSH-nyckeln för åtkomst till Git-lagringsplatsen, krävs när URI:en börjar med git@ eller ssh://. |
host-key |
No | Värdnyckeln för Git-lagringsplatsens server bör inte innehålla algoritmprefixet som omfattas av host-key-algorithm . |
host-key-algorithm |
No | Värdnyckelns algoritm ska vara ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 eller ecdsa-sha2-nistp521. Krävs endast om host-key det finns. |
strict-host-key-checking |
No | Anger om Config Server-instansen inte startar när den privata host-key . Ska vara sant (standardvärde) eller falskt. |
Anteckning
Config Server master (om Git) som standardetikett om inget annat anges. Men GitHub har ändrat standardgrenen från master till main nyligen. För att Azure Spring Cloud Config Server fel bör du vara uppmärksam på standardetiketten när du Config Server med GitHub, särskilt för nya skapade lagringsplatsen.
Privat lagringsplats med grundläggande autentisering
Alla konfigurerbara egenskaper som används för att konfigurera en privat Git-lagringsplats med grundläggande autentisering visas nedan.
Anteckning
Att använda ett bindestreck (-) för att avgränsa ord är den enda namngivningskonvention som stöds för närvarande. Använd till exempel standardetiketten, inte defaultLabel.
| Egenskap | Krävs | Funktion |
|---|---|---|
uri |
Yes | URI:en för Git-lagringsplatsen som används som Config Server-backend ska startas med http://, https://, git@ eller ssh://. |
default-label |
No | Standardetiketten för Git-lagringsplatsen ska vara grennamnet, taggnamnet eller commit-id för lagringsplatsen. |
search-paths |
No | En matris med strängar som används för att söka efter underkataloger i Git-lagringsplatsen. |
username |
No | Användarnamnet som används för åtkomst till Git-lagringsplatsens server, krävs när Git-lagringsplatsens server stöder Http Basic Authentication . |
password |
No | Lösenordet eller den personliga åtkomsttoken som används för åtkomst till Git-lagringsplatsens server, krävs när Git-lagringsplatsens server stöder Http Basic Authentication . |
Anteckning
Många Git lagringsplatsservrar stöder användning av token i stället för lösenord för GRUNDLÄGGANDE HTTP-autentisering. Vissa lagringsplatsen tillåter att token bevaras på obestämd tid. Vissa Git-lagringsplatsservrar, inklusive Azure DevOps Server, tvingar dock token att upphöra att gälla inom några timmar. Lagringsplatsen som gör att token upphör att gälla bör inte använda tokenbaserad autentisering med Azure Spring Cloud.
Github har tagit bort stödet för lösenordsautentisering, så du måste använda en personlig åtkomsttoken i stället för lösenordsautentisering för Github. Mer information finns i Tokenautentisering.
Ytterligare Git-lagringsplatsen
Alla konfigurerbara egenskaper som används för att konfigurera Git-lagringsplatsen med mönster visas nedan.
Anteckning
Att använda ett bindestreck (-) för att avgränsa ord är den enda namngivningskonvention som stöds för närvarande. Använd till exempel standardetiketten, inte defaultLabel.
| Egenskap | Krävs | Funktion |
|---|---|---|
repos |
No | En karta som består av inställningarna för en Git-lagringsplats med ett visst namn. |
repos."uri" |
Ja den repos |
URI:en för Git-lagringsplatsen som används som Config Server-backend ska startas med http://, https://, git@ eller ssh://. |
repos."name" |
Ja den repos |
Ett namn som ska identifieras på Git-lagringsplatsen, krävs endast om repos det finns. Till exempel team-A, team-B. |
repos."pattern" |
No | En matris med strängar som används för att matcha ett programnamn. För varje mönster använder du {application}/{profile} formatet med jokertecken. |
repos."default-label" |
No | Standardetiketten för Git-lagringsplatsen ska vara grennamnet, taggnamnet eller commit-id för lagringsplatsen. |
repos."search-paths" |
No | En matris med strängar som används för att söka efter underkataloger i Git-lagringsplatsen. |
repos."username" |
No | Användarnamnet som används för åtkomst till Git-lagringsplatsens server, krävs när Git-lagringsplatsens server stöder Http Basic Authentication . |
repos."password" |
No | Lösenordet eller den personliga åtkomsttoken som används för åtkomst till Git-lagringsplatsens server, krävs när Git-lagringsplatsens server stöder Http Basic Authentication . |
repos."private-key" |
No | Den privata SSH-nyckeln för åtkomst till Git-lagringsplatsen, krävs när URI:en börjar med git@ eller ssh://. |
repos."host-key" |
No | Värdnyckeln för Git-lagringsplatsens server bör inte innehålla algoritmprefixet som omfattas av host-key-algorithm . |
repos."host-key-algorithm" |
No | Värdnyckelns algoritm ska vara ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 eller ecdsa-sha2-nistp521. Krävs endast om host-key det finns. |
repos."strict-host-key-checking" |
No | Anger om Config Server-instansen inte startar när den privata host-key . Ska vara sant (standardvärde) eller falskt. |
I följande tabell visas några exempel för avsnittet Ytterligare lagringsplatsen. Mer information finns i Mönstermatchning och Flera lagringsplatsen i Spring-dokumentationen.
| Mönster | Description |
|---|---|
| test-config-server-app-0/* | Mönstret och lagringsplatsens URI matchar ett Spring Boot-program med test-config-server-app-0 namnet med valfri profil. |
| test-config-server-app-1/dev | Mönstret och lagringsplatsens URI matchar ett Spring Boot-program med namnet test-config-server-app-1 med utvecklingsprofilen. |
| test-config-server-app-2/prod | Mönstret och lagringsplatsens URI matchar ett Spring Boot-program med test-config-server-app-2 namnet med prod-profilen. |
Bifoga din Config Server till Azure Spring Cloud
Nu när konfigurationsfilerna har sparats i en lagringsplats måste du ansluta Azure Spring Cloud till den.
Logga in på Azure-portalen.
Gå till sidan Azure Spring Cloud översikt.
Välj Config Server i det vänstra navigeringsfönstret.
I avsnittet Standarddatabas anger du URI till " https://github.com/Azure-Samples/piggymetrics-config ".
Välj Verifiera.

När verifieringen är klar väljer du Använd för att spara ändringarna.

Det kan ta några minuter att uppdatera konfigurationen.

Du bör få ett meddelande när konfigurationen är klar.
Ange lagringsplatsinformation direkt till Azure Portal
Standarddatabas
Offentlig lagringsplats: I avsnittet Standarddatabas i rutan URI klistrar du in lagringsplatsens URI. Ange etikett för att konfigurera. Kontrollera att autentiseringsinställningen är Offentlig och välj sedan Använd för att slutföra.
Privat lagringsplats: Azure Spring Cloud stöder grundläggande lösenords-/tokenbaserad autentisering och SSH.
- Grundläggande autentisering: I avsnittet Standarddatabas i rutan URI klistrar du in lagringsplatsens URI och väljer sedan knappen Autentisering ("pennikonen"). I fönstret Redigera autentisering i listrutan Autentiseringstyp väljer du HTTP Basic och anger sedan ditt användarnamn och lösenord/token för att bevilja åtkomst till Azure Spring Cloud. Välj OK och välj sedan Tillämpa för att slutföra Config Server instansen.

Varning
Vissa Git-lagringsplatsservrar använder en personlig token eller en åtkomsttoken, till exempel ett lösenord, för grundläggande autentisering. Du kan använda den typen av token som ett lösenord i Azure Spring Cloud, eftersom den aldrig upphör att gälla. Men för andra Git-lagringsservrar, till exempel Bitbucket och Azure DevOps Server, upphör åtkomsttoken att gälla om en eller två timmar. Det innebär att alternativet inte är praktiskt när du använder dessa lagringsplatsservrar med Azure Spring Cloud. Github har tagit bort stödet för lösenordsautentisering, så du måste använda en personlig åtkomsttoken i stället för lösenordsautentisering för Github. Mer information finns i Tokenautentisering.
- SSH: I avsnittet Standarddatabas i rutan URI klistrar du in lagringsplatsens URI och väljer sedan knappen Autentisering ("pennikonen"). I fönstret Redigera autentisering i listrutan Autentiseringstyp väljer du SSH och anger sedan din privata nyckel. Du kan också ange din värdnyckel och värdnyckelalgoritmen. Se till att inkludera din offentliga nyckel i din Config Server lagringsplats. Välj OK och välj sedan Tillämpa för att slutföra Config Server instansen.

Ytterligare lagringsplatsen
Om du vill använda en valfri ytterligare lagringsplats för att konfigurera din tjänst anger du URI och autentisering på samma sätt som standarddatabasen. Se till att inkludera ett Namn för mönstret och välj sedan Tillämpa för att koppla det till din instans.
Ange lagringsplatsinformation i en YAML-fil
Om du har skrivit en YAML-fil med dina lagringsplatsinställningar kan du importera filen direkt från den lokala datorn till Azure Spring Cloud. En enkel YAML-fil för en privat lagringsplats med grundläggande autentisering skulle se ut så här:
spring:
cloud:
config:
server:
git:
uri: https://github.com/azure-spring-cloud-samples/config-server-repository.git
username: <username>
password: <password/token>
Välj knappen Importera inställningar och välj sedan YAML-filen från projektkatalogen. Välj Importera så visas async en åtgärd från meddelandena. Efter 1–2 minuter bör det rapportera att det lyckades.

Informationen från YAML-filen ska visas i Azure Portal. Välj Tillämpa för att slutföra.
Använda Azure-lagringsplatsen Azure Spring Cloud konfiguration
Azure Spring Cloud kan komma åt Git-lagringsplatser som är offentliga, som skyddas av SSH eller som skyddas med hjälp av grundläggande HTTP-autentisering. Vi använder det sista alternativet eftersom det är enklare att skapa och hantera med Azure Repos.
Hämta lagringsplatsens URL och autentiseringsuppgifter
I Azure Repos-portalen för projektet väljer du knappen Klona:

Kopiera klon-URL:en från textrutan. Den här URL:en visas vanligtvis i följande format:
https://<organization name>@dev.azure.com/<organization name>/<project name>/_git/<repository name>Ta bort allt
https://efter och före , inklusivedev.azure.com@. Den resulterande URL:en ska ha följande format:https://dev.azure.com/<organization name>/<project name>/_git/<repository name>Spara den här URL:en för användning i nästa avsnitt.
Välj Generera Git-autentiseringsuppgifter. Ett användarnamn och lösenord visas. Spara dessa för användning i nästa avsnitt.
Konfigurera Azure Spring Cloud för åtkomst till Git-lagringsplatsen
Logga in på Azure-portalen.
Gå till sidan Azure Spring Cloud översikt.
Välj den tjänst som ska konfigureras.
I den vänstra rutan på tjänstsidan, under Inställningar, väljer du Config Server fliken. Konfigurera den lagringsplats som vi skapade tidigare:
- Lägg till lagringsplatsens URL som du har sparat från föregående avsnitt.
- Välj Autentisering och sedan HTTP Basic.
- Användarnamnet är det användarnamn som sparades från föregående avsnitt.
- Lösenordet är det lösenord som sparades från föregående avsnitt.
- Välj Tillämpa och vänta sedan tills åtgärden har lyckats.

Ta bort konfigurationen
Du kan välja knappen Återställ som visas på fliken Config Server för att radera dina befintliga inställningar helt. Ta bort konfigurationsserverinställningarna om du vill ansluta din Config Server till en annan källa, till exempel flytta från GitHub till Azure DevOps.
Config Server Uppdatera
När egenskaper ändras måste tjänster som förbrukar dessa egenskaper meddelas innan ändringar kan göras. Standardlösningen för Spring Cloud Config är att utlösa uppdateringshändelsen manuellt,vilket kanske inte är möjligt om det finns många appinstanser. Alternativt kan du Azure Spring Cloud uppdatera värden automatiskt från konfigurationsservern genom att låta konfigurationsklienten avse ändringar baserat på en intern uppdatering.
Ta först med spring-cloud-starter-azure-spring-cloud-client i beroendeavsnittet i pom.xml.
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId> <version>2.4.0</version> </dependency>För det andra aktiverar du automatisk uppdatering och anger lämpligt uppdateringsintervall i application.yml. I det här exemplet avsöker klienten konfigurationsändringar var femte sekund, vilket är det minsta värde som du kan ange för uppdateringsintervall. Som standard är automatisk uppdatering inställt på falskt och uppdateringsintervallet är inställt på 60 sekunder.
spring: cloud: config: auto-refresh: true refresh-interval: 5Lägg slutligen @refreshScope till i koden. I det här exemplet uppdateras variabeln connectTimeout automatiskt var femte sekund.
@RestController @RefreshScope public class HelloController { @Value("${timeout:4000}") private String connectTimeout; }
Nästa steg
I den här artikeln har du lärt dig hur du aktiverar och konfigurerar Spring Cloud Config Server instans. Mer information om hur du hanterar ditt program finns i Skala ett program i Azure Spring Cloud.