Hizmetiniz için Spring Cloud Config Server örnek ayarlama

Bu makale şu için geçerlidir: ✔️ Java ✔️ C #

Bu makalede, bir Spring Cloud Config Server örneğini Azure Spring Cloud gösterir.

Spring Cloud Config, dağıtılmış bir sistemde harici yapılandırma için sunucu ve istemci tarafı desteği sağlar. Uygulama Config Server, tüm ortamlardaki uygulamaların dış özelliklerini yönetmek için merkezi bir yere sahip olur. Daha fazla bilgi için bkz. Spring Cloud Config Server bakın.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Zaten sağlanan ve çalışan bir Azure Spring Cloud hizmeti. Bir Azure Spring Cloud hizmetini ayarlamak ve başlatmak için bkz. Hızlı Başlangıç: Azure CLI kullanarak Java Spring uygulaması başlatma.

Kısıtlama

Git arka uç ile Config Server bazı kısıtlamalar vardır. Bazı özellikler, uygulama ortamınıza otomatik olarak eklenir ve Config Server Bulma'ya erişilir. Bu özellikleri dosya dosyalarından da yapılandırıyorsanız Config Server ve beklenmeyen davranışla karşılaşabilirsiniz. Özellikler şunlardır:

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

Dikkat

Yukarıdaki özellikleri uygulama dosyalarınıza kesinlikle Config Server öneririz.

Veri Config Server oluşturma

Azure Spring Cloud, Azure DevOps, GitHub, GitLab ve Bitbucket dosyalarını depolamak için Config Server destekler. Depoyu hazır hale geldiğinde, aşağıdaki yönergelerle yapılandırma dosyalarını oluşturun ve orada depolar.

Ayrıca, bazı yapılandırılabilir özellikler yalnızca belirli türler için kullanılabilir. Aşağıdaki alt bölümlerde her depo türü için özellikler listelene bir liste yer almaktadır.

Genel depo

Genel depoyu kullanırken yapılandırılabilir özellikleriniz daha sınırlıdır.

Genel Git deposunu ayarlamak için kullanılan tüm yapılandırılabilir özellikler aşağıdaki tabloda listelenmiştir:

Not

Sözcükleri ayırmak için kısa çizgi (-) kullanmak şu anda desteklenen tek adlandırma kuralıdır. Örneğin, default-label kullanabilirsiniz, ancak defaultLabel'i kullanabilirsiniz.

Özellik Gerekli Özellik
uri Yes Config Server arka uç olarak kullanılan Git deposunun URI'sı http:// , https://, git@ veya ssh://.
default-label No Git deposunun varsayılan etiketi dal adı, etiket adı veya deponun commit-id değeridir.
search-paths No Git deposunun alt dizinlerini aramak için kullanılan dize dizisi.

SSH kimlik doğrulaması ile özel depo

SSH ile özel Git deposu ayarlamak için kullanılan tüm yapılandırılabilir özellikler aşağıdaki tabloda listelenmiştir:

Not

Sözcükleri ayırmak için kısa çizgi (-) kullanmak şu anda desteklenen tek adlandırma kuralıdır. Örneğin, default-label kullanabilirsiniz, ancak defaultLabel'i kullanabilirsiniz.

Özellik Gerekli Özellik
uri Yes Config Server arka uç olarak kullanılan Git deposunun URI'sı, http://, https://, git@ veya ssh://.
default-label No Git deposunun varsayılan etiketi dal adı, etiket adı veya deponun commit-id değeridir.
search-paths No Git deposunun alt dizinlerini aramak için kullanılan dize dizisi.
private-key No Git deposuna erişmek için SSH özel anahtarı, URI ile başladığında veya git@ ssh://.
host-key No Git deposu sunucusunun ana bilgisayar anahtarı, kapsamındaki algoritma ön eklerini host-key-algorithm içermemalıdır.
host-key-algorithm No Konak anahtarı algoritması ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 veya ecdsa-sha2-nistp521 şeklindedir. Yalnızca varsa host-key gereklidir.
strict-host-key-checking No Özel örneğinden Config Server örneğinin başlatılamayıp başlatılamayacaklarını host-key gösterir. true (varsayılan değer) veya false olabilir.

Not

Config Server , master belirtilmezse varsayılan etiket olarak (om Git'in kendisi) alır. Ancak GitHub dal olan varsayılan dalı yakın zamanda master olarak main değiştirdik. Bu Azure Spring Cloud Config Server önlemek için, özellikle de yeni oluşturulan depolar için Config Server ayarları GitHub varsayılan etikete dikkat edin.


Temel kimlik doğrulaması ile özel depo

Temel kimlik doğrulaması ile özel Git deposu ayarlamak için kullanılan tüm yapılandırılabilir özellikler aşağıda listelenmiştir.

Not

Sözcükleri ayırmak için kısa çizgi (-) kullanmak şu anda desteklenen tek adlandırma kuralıdır. Örneğin, defaultLabel değil default-label kullanın.

Özellik Gerekli Özellik
uri Yes Config Server arka uç olarak kullanılan Git deposunun URI'si http:// , https://, git@ veya ssh://.
default-label No Git deposunun varsayılan etiketi dal adı, etiket adı veya deponun commit-id değeridir.
search-paths No Git deposunun alt dizinlerini aramak için kullanılan dize dizisi.
username No Git deposu sunucusu tarafından desteklen olduğunda gereken Git deposu sunucusuna erişmek için kullanılan kullanıcı Http Basic Authentication adı.
password No Git deposu sunucusu desteğine sahip olduğunda gereken, Git deposu sunucusuna erişmek için kullanılan parola veya kişisel erişim belirteci. Http Basic Authentication

Not

Birçok Git depo sunucusu HTTP Temel Kimlik Doğrulaması için parolalar yerine belirteçlerin kullanımını destekler. Bazı depolar belirteçlerin süresiz olarak kalıcı olmasına olanak sağlar. Ancak, Azure DevOps Server dahil olmak üzere bazı Git deposu sunucuları, belirteçlerin süresinin birkaç saat içinde dolması için zorlar. Belirteçlerin süresinin dolmasını neden olan depolar, belirteç tabanlı kimlik doğrulamasını Azure Spring Cloud. Github, parola kimlik doğrulaması desteğini kaldırdı, bu nedenle Github için parola kimlik doğrulaması yerine kişisel erişim belirteci kullansanız iyi olur. Daha fazla bilgi için bkz. Belirteç kimlik doğrulaması.

Git ek depoları

Git depolarını düzen ile ayarlamak için kullanılan tüm yapılandırılabilir özellikler aşağıda listelenmiştir.

Not

Sözcükleri ayırmak için kısa çizgi (-) kullanmak şu anda desteklenen tek adlandırma kuralıdır. Örneğin, defaultLabel değil default-label kullanın.

Özellik Gerekli Özellik
repos No Git deposunun ayarlarından ve verilen bir adla oluşan bir harita.
repos."uri" Evet, repos Config Server arka uç olarak kullanılan Git deposunun URI'si http:// , https://, git@ veya ssh://.
repos."name" Evet, repos Yalnızca varsa, Git deposunda tanım için bir repos ad gerekir. Örneğin, Ekip-A, Takım-B.
repos."pattern" No Bir uygulama adıyla eşleşen dizeler dizisi. Her bir model için, {application}/{profile} joker karakterleri ile biçimini kullanın.
repos."default-label" No Git deposunun varsayılan etiketi, deponun şube adı, etiket adı veya kayıt kimliği olmalıdır.
repos."search-paths" No Git deposunun alt dizinlerinde arama yapmak için kullanılan bir dize dizisi.
repos."username" No Git deposu sunucusu ' nu desteklediğinde gereken , git deposu sunucusuna erişmek için kullanılan Kullanıcı adı Http Basic Authentication .
repos."password" No Git deposu sunucusunun desteklediği durumlarda gerekli olan git deposu sunucusuna erişmek için kullanılan parola veya kişisel erişim belirteci Http Basic Authentication .
repos."private-key" No Git deposuna erişmek için SSH özel anahtarı, URI Git@ veya SSH:// ile başladığı zaman gereklidir .
repos."host-key" No Git deposu sunucusunun ana bilgisayar anahtarı, kapsamında olduğu gibi algoritma önekini içermemelidir host-key-algorithm .
repos."host-key-algorithm" No Konak anahtar algoritması, SSH-DSS, ssh-rsa, ECDSA-SHA2-nistp256, ECDSA-SHA2-nistp384 veya ECDSA-SHA2-nistp521 olmalıdır. Yalnızca varsa gereklidir host-key .
repos."strict-host-key-checking" No Yapılandırma sunucusu örneğinin özel kullanılırken başlayamayacağını gösterir host-key . True (varsayılan değer) veya false olmalıdır.

Aşağıdaki tabloda ek depolar bölümü için bazı örnekler gösterilmektedir. Daha fazla bilgi için Spring belgelerindeki model eşleştirme ve birden çok depo bölümüne bakın.

Desenler Description
test-config-Server-App-0/* Model ve depo URI 'SI, herhangi bir profille adlı bir Spring Boot uygulamasıyla eşleşir test-config-server-app-0 .
test-config-Server-App-1/dev Model ve depo URI 'SI, dev profile adlı bir Spring Boot uygulamasıyla eşleşir test-config-server-app-1 .
test-config-Server-App-2/prod Model ve depo URI 'SI, üretim profiliyle adlı bir Spring Boot uygulamasıyla eşleşir test-config-server-app-2 .

' Ek depolar ' tablosunun desenler sütunuyla yapılandırma sunucusu sayfasını gösteren ekran görüntüsü Azure portal

Yapılandırma sunucusu deponuzu Azure Spring Cloud 'a ekleyin

Yapılandırma dosyalarınız bir depoya kaydedildiğinden artık Azure Spring Cloud 'ı buna bağlamanız gerekir.

  1. Azure Portal’ında oturum açın.

  2. Azure yay bulutuna genel bakış sayfasına gidin.

  3. Sol gezinti bölmesindeki yapılandırma sunucusu ' nu seçin.

  4. Varsayılan depo bölümünde, URI 'yi "" olarak ayarlayın https://github.com/Azure-Samples/piggymetrics-config .

  5. Doğrula'yı seçin.

    Yapılandırma sunucusuna git

  6. Doğrulama tamamlandığında, değişikliklerinizi kaydetmek için Uygula ' yı seçin.

    Yapılandırma sunucusu doğrulanıyor

  7. Yapılandırmanın güncelleştirilmesi birkaç dakika sürebilir.

    Yapılandırma sunucusu güncelleştiriliyor

  8. Yapılandırma tamamlandığında bir bildirim almanız gerekir.

Depo bilgilerini doğrudan Azure portal girin

Varsayılan depo

  • Ortak depo: varsayılan depo bölümünde, URI kutusunda, depo URI 'sini yapıştırın. Etiketi config olarak ayarlayın. Kimlik doğrulama ayarının genel olduğundan emin olun ve ardından son ' u seçin.

  • Özel depo: Azure yay bulutu, temel parola/belirteç tabanlı kimlik doğrulama ve SSH 'yi destekler.

    • Temel kimlik doğrulaması: varsayılan depo bölümünde, URI kutusunda, depo URI 'sini yapıştırın ve ardından kimlik doğrulaması ("kurşun kalem" simgesi) düğmesini seçin. Kimlik doğrulamasını Düzenle bölmesinde, kimlik doğrulama türü aşağı açılan listesinde, http Basic' i seçin ve ardından Kullanıcı adınızı ve parolanızı/belirtecinizi girerek Azure yay bulutuna erişim izni verin. Tamam' ı seçin ve ardından Uygula ' yı seçerek yapılandırma sunucusu örneğinizi ayarlamayı tamamlayın.

    Kimlik doğrulama bölmesini Düzenle temel kimlik doğrulaması

    Dikkat

    Bazı git deposu sunucuları, temel kimlik doğrulaması için bir Kişisel belirteç veya parola gibi bir erişim belirteci kullanır. Bu tür bir belirteci, hiçbir zaman dolmayacağı için Azure Spring Cloud 'da parola olarak kullanabilirsiniz. ancak bitbucket ve Azure DevOps Server gibi diğer Git deposu sunucularında, erişim belirtecinin süresi bir veya iki saat içinde dolar. Bu, Azure Spring Cloud ile bu depo sunucularını kullandığınızda seçeneğinin önemli olmadığı anlamına gelir. GitHub, parola kimlik doğrulaması desteğini kaldırdı, bu nedenle GitHub için parola kimlik doğrulaması yerine bir kişisel erişim belirteci kullanmanız gerekir. Daha fazla bilgi için bkz. belirteç kimlik doğrulaması.

    • SSH: varsayılan depo bölümünde, URI kutusunda, depo URI 'sini yapıştırın ve ardından kimlik doğrulaması ("kurşun kalem" simgesi) düğmesini seçin. Kimlik doğrulamasını Düzenle bölmesinde, kimlik doğrulama türü aşağı açılan listesinde SSH' ı seçin ve ardından özel anahtarınızı girin. İsteğe bağlı olarak, ana bilgisayar anahtarınızı ve ana bilgisayar anahtarı algoritmanızı belirtin. Yapılandırma sunucusu deponuza ortak anahtarınızı eklediğinizden emin olun. Tamam' ı seçin ve ardından Uygula ' yı seçerek yapılandırma sunucusu örneğinizi ayarlamayı tamamlayın.

    Kimlik doğrulama bölmesini Düzenle SSH kimlik doğrulaması

Ek depolar

Hizmetinizi yapılandırmak için isteğe bağlı ek depolar kullanmak Istiyorsanız, URI 'Yi ve kimlik doğrulamasını varsayılan depoyla aynı şekilde belirtin. Hiyerarşiniz için bir ad eklediğinizden emin olun ve ardından örneğine eklemek için Uygula ' yı seçin.

Bir YAML dosyasına depo bilgilerini girin

Depo ayarlarınızla bir YAML dosyası yazdıysanız, dosyayı doğrudan yerel makinenizden Azure Spring Cloud 'a aktarabilirsiniz. Temel kimlik doğrulaması ile özel bir depo için basit bir YAML dosyası şuna benzer:

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

Içeri aktarma ayarları düğmesini seçin ve ardından Proje DIZININIZDEN YAML dosyasını seçin. Içeri aktar' ı seçin ve ardından async bildirimlerinizin bir işlemi açılır. 1-2 dakika sonra, başarıyı bildirmeli.

Yapılandırma sunucusu bildirimleri bölmesi

YAML dosyanızdaki bilgiler Azure portal görüntülenmelidir. Son 'a Uygula ' yı seçin.

Azure yay bulut yapılandırması için Azure Repos kullanma

Azure Spring Cloud genel olan, SSH ile güvenliği sağlanan veya HTTP temel kimlik doğrulaması kullanılarak güvenliği sağlanan Git depolarına erişebilir. Azure Repos ile kolayca oluşturulması ve yönetilmesi daha kolay olduğundan, bu son seçeneği kullanacağız.

Depo URL 'sini ve kimlik bilgilerini al

  1. projeniz için Azure Repos portalında, kopyala düğmesini seçin:

    Kopyala düğmesi

  2. Metin kutusundan kopya URL 'sini kopyalayın. Bu URL genellikle şu biçimde olacaktır:

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

    https://Dahil olmak üzere ve öncesinde her şeyi kaldırın dev.azure.com @ . Elde edilen URL şu biçimde olmalıdır:

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

    Bu URL 'YI sonraki bölümde kullanmak üzere kaydedin.

  3. Git kimlik bilgileri oluştur' u seçin. Bir Kullanıcı adı ve parola görüntülenir. Bunları sonraki bölümde kullanmak üzere kaydedin.

Git deposuna erişmek için Azure Spring Cloud’u yapılandırma

  1. Azure Portal’ında oturum açın.

  2. Azure yay bulutuna genel bakış sayfasına gidin.

  3. Yapılandırılacak hizmeti seçin.

  4. hizmet sayfasının sol bölmesinde, Ayarlar altında, yapılandırma sunucusu sekmesini seçin. Daha önce oluşturduğumuz depoyu yapılandırın:

    • Önceki bölümden kaydettiğiniz depo URL 'sini ekleyin.
    • Kimlik doğrulaması ' nı seçin ve ardından http temel öğesini seçin.
    • Kullanıcı adı, önceki bölümde kaydedilen kullanıcı adıdır.
    • Parola, önceki bölümde kaydedilen paroladır.
    • Uygula'yi seçin ve ardından işlemi başarılı bir şekilde bekleyin.

    Spring Cloud config server

Yapılandırmanızı silme

Mevcut ayarlarınızı tamamen silmek için Config Server sekmesinde görünen Sıfırla düğmesini seçebilirsiniz. Config Server örneğinizi başka bir kaynakla bağlamak (örneğin, GitHub'den sunucuya Azure DevOps.

Config Server Yenileme

Özellikler değiştirilecekse, değişikliklerin öncesinde bu özellikleri tüketen hizmetlere bildirilecek. Spring Cloud Config için varsayılan çözüm yenileme olayı el ile tetiklemektir. Bu, çok sayıda uygulama örneği olması durumunda uygun olmayacaktır. Alternatif olarak, Azure Spring Cloud iç yenilemeye göre yapılandırma istemcisinin değişiklikleri yoklamasına izin vererek yapılandırma sunucusundan değerleri otomatik olarak yenilersiniz.

  • İlk olarak spring-cloud-starter-azure-spring-cloud-client'ın bağımlılık bölümünü pom.xml.

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId>
        <version>2.4.0</version>
    </dependency>
    
  • İkinci olarak otomatik yenilemeyi etkinleştirin ve application.yml dosyanıza uygun yenileme aralığını ayarlayın. Bu örnekte istemci, yapılandırma değişikliklerini her 5 saniyede bir yoklar ve bu da yenileme aralığı için ayarlan minimum değerdir. Varsayılan olarak otomatik yenileme false, yenileme aralığı ise 60 saniye olarak ayarlanır.

    spring:
      cloud:
        config:
          auto-refresh: true
          refresh-interval: 5
    
  • Son olarak @refreshScope kodunuza ekleyin. Bu örnekte connectTimeout değişkeni 5 saniyede bir otomatik olarak yenilenir.

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

Sonraki adımlar

Bu makalede, örnek örneğinizi etkinleştirmeyi ve yapılandırmayı Spring Cloud Config Server öğrendinsiniz. Uygulamalarınızı yönetme hakkında daha fazla bilgi edinmek için bkz. Bir uygulamayı Azure Spring Cloud.