Nastavení instance jarního cloudového konfiguračního serveru pro vaši službu

Tento článek se týká: ✔️ Java ✔️ C #

V tomto článku se dozvíte, jak připojit instanci jarního cloudového konfiguračního serveru k vaší jarní cloudové službě Azure.

Jarní cloudová konfigurace poskytuje podporu na straně serveru a klienta pro externou konfiguraci v distribuovaném systému. V případě instance konfiguračního serveru máte centrální místo pro správu externích vlastností pro aplikace ve všech prostředích. Další informace najdete v tématu Reference k serveru pro konfiguraci jarního cloudu.

Požadavky

Omezení

K dispozici jsou určitá omezení, pokud používáte konfigurační server s back-end Git. Některé vlastnosti jsou automaticky vloženy do prostředí aplikace pro přístup ke konfiguračnímu serveru a zjišťování služby. Pokud tyto vlastnosti nakonfigurujete i ze souborů konfiguračního serveru, může docházet ke konfliktům a neočekávanému chování. Mezi vlastnosti patří:

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

Upozornění

Důrazně doporučujeme, abyste výše uvedené vlastnosti neumístili do souborů aplikace konfiguračního serveru.

Vytvoření souborů konfiguračního serveru

Azure jaře Cloud podporuje Azure DevOps, GitHub, GitLab a Bitbucket pro ukládání souborů konfiguračního serveru. Po přípravě úložiště vytvořte konfigurační soubory podle následujících pokynů a uložte je tam.

Kromě toho jsou některé konfigurovatelné vlastnosti k dispozici pouze pro určité typy. Následující pododdíly uvádějí vlastnosti pro každý typ úložiště.

Veřejné úložiště

Když použijete veřejné úložiště, vaše konfigurovatelné vlastnosti jsou omezené.

Všechny konfigurovatelné vlastnosti, které se používají k nastavení veřejného úložiště Git, jsou uvedené v následující tabulce:

Poznámka

Použití spojovníku (-) k oddělení slov je jediná konvence pojmenování, která je aktuálně podporována. Můžete například použít Default-Label, ale ne defaultLabel.

Vlastnost Požaduje se Funkce
uri Yes Identifikátor URI úložiště Git, který se používá jako back-end konfiguračního serveru, začíná na http://, https://, Git@ nebo SSH://.
default-label No Výchozí popisek úložiště Git by měl být název větve, název značky nebo potvrzení-ID úložiště.
search-paths No Pole řetězců, které se používá k prohledání podadresářů úložiště Git.

Soukromé úložiště s ověřováním SSH

Všechny konfigurovatelné vlastnosti používané k nastavení privátního úložiště Git pomocí SSH jsou uvedené v následující tabulce:

Poznámka

Použití spojovníku (-) k oddělení slov je jediná konvence pojmenování, která je aktuálně podporována. Můžete například použít Default-Label, ale ne defaultLabel.

Vlastnost Požaduje se Funkce
uri Yes Identifikátor URI úložiště Git použitého jako back-end konfiguračního serveru by měl být spuštěný s http://, https://, Git@ nebo SSH://.
default-label No Výchozí popisek úložiště Git by měl být název větve, název značky nebo potvrzení-ID úložiště.
search-paths No Pole řetězců, které slouží k prohledání podadresářů úložiště Git.
private-key No Privátní klíč SSH pro přístup k úložišti Git, který je vyžadován v případě, že identifikátor URI začíná na Git@ nebo SSH://.
host-key No Klíč hostitele serveru úložiště Git by neměl obsahovat předponu algoritmu, která je pokrytá host-key-algorithm .
host-key-algorithm No Algoritmus klíče hostitele by měl být SSH-DSS, SSH-RSA, ECDSA-SHA2-nistp256, ECDSA-SHA2-nistp384 nebo ECDSA-SHA2-nistp521. Požadováno pouze v případě host-key , že existuje.
strict-host-key-checking No Označuje, zda se instance konfiguračního serveru při využití privátního nespustí host-key . Hodnota by měla být true (výchozí hodnota) nebo false.

Poznámka

masterPokud není zadaný, provede konfigurační server (Git Git sám) jako výchozí popisek. ale GitHub změnila výchozí větev z master na main naposledy. aby nedošlo k selhání konfiguračního serveru cloudu v Azure, věnujte pozornost výchozímu popisku při nastavování konfiguračního serveru pomocí GitHub, zejména pro nově vytvořená úložiště.


Privátní úložiště s základním ověřováním

Všechny konfigurovatelné vlastnosti používané k nastavení privátního úložiště Git se základním ověřováním jsou uvedené níže.

Poznámka

Použití spojovníku (-) k oddělení slov je jediná konvence pojmenování, která je aktuálně podporována. Například použijte výchozí-Label, nikoli defaultLabel.

Vlastnost Požaduje se Funkce
uri Yes Identifikátor URI úložiště Git, který se používá jako back-end konfiguračního serveru, by měl být spuštěný pomocí http://, https://, Git@ nebo SSH://.
default-label No Výchozí popisek úložiště Git by měl být název větve, název značky nebo potvrzení-ID úložiště.
search-paths No Pole řetězců, které slouží k prohledání podadresářů úložiště Git.
username No Uživatelské jméno, které se používá pro přístup k serveru úložiště Git, se vyžaduje v případě, že server úložiště Git podporuje Http Basic Authentication .
password No Heslo nebo osobní přístupový token, který se používá pro přístup k serveru úložiště Git, se vyžaduje v případě, že server úložiště Git podporuje Http Basic Authentication .

Poznámka

Mnoho Git serverů úložiště podporuje použití tokenů místo hesel pro základní ověřování HTTP. Některá úložiště umožňují, aby se tokeny zachovaly po neomezenou dobu. nicméně některé servery úložiště Git, včetně Azure DevOps Server, vynutí vypršení platnosti tokenů za několik hodin. Úložiště, která způsobila vypršení platnosti tokenů, by neměla používat ověřování na základě tokenu u jarního cloudu Azure. GitHub odebral podporu pro ověřování hesla, takže budete muset místo ověřování hesla pro GitHub použít osobní přístupový token. Další informace najdete v tématu ověření tokenu.

Další úložiště Git

Všechny konfigurovatelné vlastnosti používané k nastavení úložišť Git se vzorem jsou uvedené níže.

Poznámka

Použití spojovníku (-) k oddělení slov je jediná konvence pojmenování, která je aktuálně podporována. Například použijte výchozí-Label, nikoli defaultLabel.

Vlastnost Požaduje se Funkce
repos No Mapa skládající se z nastavení úložiště Git se zadaným názvem.
repos."uri" Ano v repos Identifikátor URI úložiště Git, který se používá jako back-end konfiguračního serveru, by měl být spuštěný pomocí http://, https://, Git@ nebo SSH://.
repos."name" Ano v repos Název, který se má identifikovat v úložišti Git, se vyžaduje jenom v případě, že repos existuje. Například tým-a, tým-B.
repos."pattern" No Pole řetězců používané pro shodu názvu aplikace. Pro každý vzor použijte {application}/{profile} formát se zástupnými znaky.
repos."default-label" No Výchozí popisek úložiště Git by měl být název větve, název značky nebo potvrzení-ID úložiště.
repos."search-paths" No Pole řetězců, které slouží k prohledání podadresářů úložiště Git.
repos."username" No Uživatelské jméno, které se používá pro přístup k serveru úložiště Git, se vyžaduje v případě, že server úložiště Git podporuje Http Basic Authentication .
repos."password" No Heslo nebo osobní přístupový token, který se používá pro přístup k serveru úložiště Git, se vyžaduje v případě, že server úložiště Git podporuje Http Basic Authentication .
repos."private-key" No Privátní klíč SSH pro přístup k úložišti Git, který je vyžadován v případě, že identifikátor URI začíná na Git@ nebo SSH://.
repos."host-key" No Klíč hostitele serveru úložiště Git by neměl obsahovat předponu algoritmu, která je pokrytá host-key-algorithm .
repos."host-key-algorithm" No Algoritmus klíče hostitele by měl být SSH-DSS, SSH-RSA, ECDSA-SHA2-nistp256, ECDSA-SHA2-nistp384 nebo ECDSA-SHA2-nistp521. Požadováno pouze v případě host-key , že existuje.
repos."strict-host-key-checking" No Označuje, zda se instance konfiguračního serveru při využití privátního nespustí host-key . Hodnota by měla být true (výchozí hodnota) nebo false.

V následující tabulce jsou uvedeny některé příklady pro Další části úložišť . Další informace najdete v tématu porovnávání vzorů a více úložišť v dokumentaci k pružině.

Vzory Description
test-config-server-App-0/* Identifikátor URI vzoru a úložiště se bude shodovat s jakýmkoli profilem aplikace pro spouštění pružiny s test-config-server-app-0 libovolným profilem.
test-config-server-App-1/dev Identifikátor URI vzoru a úložiště se bude shodovat s aplikací pro spouštění pružiny s názvem a test-config-server-app-1 vývojovým profilem.
test-config-server-App-2/prod Identifikátor URI vzoru a úložiště se bude shodovat s aplikací pro spouštění pružiny s názvem test-config-server-app-2 s profilem výroby.

Azure Portal snímek obrazovky se stránkou konfigurační server se sloupcem vzory v tabulce další úložiště se zvýrazní.

Připojení úložiště konfiguračního serveru k Azure jaře cloudu

Teď, když jsou konfigurační soubory uložené v úložišti, musíte k ní připojit jarní cloud Azure.

  1. Přihlaste se k webu Azure Portal.

  2. Přejít na stránku s přehledem jarního cloudu Azure.

  3. V levém navigačním podokně vyberte konfigurační server .

  4. V části výchozí úložiště nastavte možnost URI na " https://github.com/Azure-Samples/piggymetrics-config ".

  5. Vyberte Ověřit.

    Přejít na konfigurační server

  6. Po dokončení ověřování klikněte na použít , aby se změny uložily.

    Ověřování konfiguračního serveru

  7. Aktualizace konfigurace může trvat několik minut.

    Aktualizace konfiguračního serveru

  8. Po dokončení konfigurace byste měli obdržet oznámení.

Zadejte informace o úložišti přímo do Azure Portal

Výchozí úložiště

  • Veřejné úložiště: v části výchozí úložiště v poli URI vložte identifikátor URI úložiště. Nastavte popisek na config. Zajistěte, aby bylo nastavení ověřování veřejné, a pak vyberte použít k dokončení.

  • Soukromé úložiště: Azure jaře Cloud podporuje základní ověřování pomocí hesla nebo tokenu a SSH.

    • Základní ověřování: v části výchozí úložiště v poli URI vložte identifikátor URI úložiště a pak klikněte na tlačítko ověřování (ikona tužky). V podokně Upravit ověřování vyberte v rozevíracím seznamu typ ověřování možnost http Basic a potom zadejte své uživatelské jméno a heslo nebo token pro udělení přístupu k jarnímu cloudu Azure. Vyberte OK a pak vyberte použít k dokončení nastavování instance konfiguračního serveru.

    Základní ověřování podokna úprav ověřování

    Upozornění

    Některé servery úložiště Git pro základní ověřování používají osobní tokeny nebo přístupový token, jako je třeba heslo. Tento typ tokenu můžete použít jako heslo v Azure jaře cloudu, protože nikdy nevyprší platnost. u jiných serverů úložiště Git, jako je Bitbucket a Azure DevOps Server, platnost přístupového tokenu vyprší jednu nebo dvě hodiny. To znamená, že možnost nebude při použití těchto serverů úložiště u jarního cloudu Azure životaschopná. GitHub odebral podporu pro ověřování hesla, takže budete muset místo ověřování hesla pro GitHub použít osobní přístupový token. Další informace najdete v tématu ověření tokenu.

    • SSH: v části výchozí úložiště v poli URI vložte identifikátor URI úložiště a pak klikněte na tlačítko ověřování (ikona tužky). V podokně Upravit ověřování vyberte v rozevíracím seznamu typ ověřování možnost SSH a potom zadejte svůj privátní klíč. Volitelně můžete zadat klíč hostitele a algoritmus hostitelského klíče. Nezapomeňte do svého úložiště konfiguračního serveru zahrnout svůj veřejný klíč. Vyberte OK a pak vyberte použít k dokončení nastavování instance konfiguračního serveru.

    Ověřování SSH v podokně upravit ověřování

Další úložiště

Pokud chcete ke konfiguraci služby použít volitelné Další úložiště , zadejte identifikátor URI a ověřování stejným způsobem jako výchozí úložiště. Nezapomeňte zadat název pro váš vzor a pak kliknutím na použít ho připojte k instanci.

Zadejte informace o úložišti do souboru YAML.

Pokud jste napsali soubor YAML s nastavením úložiště, můžete ho naimportovat přímo z místního počítače do jarního cloudu Azure. Jednoduchý soubor YAML pro privátní úložiště se základním ověřováním by vypadal takto:

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

Vyberte tlačítko importovat nastavení a potom vyberte soubor YAML z adresáře projektu. Vyberte importovat a potom async se v oznámení zobrazí operace z vaší nabídky. Po 1-2 minutách by se mělo ohlásit úspěch.

Podokno oznámení konfiguračního serveru

Informace ze souboru YAML by měly být zobrazeny v Azure Portal. Vyberte použít k dokončení.

použití Azure Repos pro konfiguraci jarního cloudu Azure

Azure Spring Cloud má přístup k úložištím Git, která jsou veřejná nebo jsou zabezpečená protokolem SSH, případně k zabezpečení používají základní ověřování HTTP. Použijeme tuto poslední možnost, protože je snazší vytvořit a spravovat pomocí Azure Repos.

Získat adresu URL a přihlašovací údaje úložiště

  1. na portálu Azure Repos pro váš projekt vyberte tlačítko klonování :

    Tlačítko klonování

  2. Zkopírujte adresu URL klonu z textového pole. Tato adresa URL bude obvykle ve formátu:

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

    Odeberte vše po https:// a před dev.azure.com , včetně @ . Výsledná adresa URL by měla být ve tvaru:

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

    Tuto adresu URL uložte pro použití v další části.

  3. Vyberte Generovat pověření Git. Zobrazí se uživatelské jméno a heslo. Uložte je pro použití v další části.

Konfigurace přístupu Azure Spring Cloudu k úložišti Git

  1. Přihlaste se k webu Azure Portal.

  2. Přejít na stránku s přehledem jarního cloudu Azure.

  3. Vyberte službu, kterou chcete nakonfigurovat.

  4. v levém podokně stránky služby v části Nastavení vyberte kartu konfigurační Server . Nakonfigurujte úložiště, které jsme vytvořili dříve:

    • Přidejte adresu URL úložiště, kterou jste uložili z předchozí části.
    • Vyberte ověřování a pak vyberte http Basic.
    • Uživatelské jméno je uživatelské jméno uložené v předchozí části.
    • Heslo je heslo uložené v předchozí části.
    • Vyberte Použít a počkejte na úspěšné dokončení operace.

    Spring Cloud Config Server

Odstranění konfigurace

Můžete vybrat tlačítko Resetovat, které se zobrazí na kartě Config Server, a úplně tak vymazat stávající nastavení. Nastavení konfiguračního serveru odstraňte, pokud chcete připojit instanci Config Server k jinému zdroji, například přechodem z GitHub na Azure DevOps.

Config Server aktualizace

Při změně vlastností je potřeba, aby služby využívající tyto vlastnosti byly před provedením změn informovány. Výchozím řešením pro Spring Cloud Config je ruční aktivace události aktualizace,která nemusí být možná možná proveditelná, pokud existuje velké množství instancí aplikace. Alternativně můžete Azure Spring Cloud automaticky aktualizovat hodnoty z konfiguračního serveru tím, že umožníte konfiguračnímu klientovi dotazovat se na změny na základě interní aktualizace.

  • Nejprve do části závislostí vašeho virtuálního počítače zahrpište spring-cloud-starter-azure-spring-cloud-client pom.xml.

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId>
        <version>2.4.0</version>
    </dependency>
    
  • Potom povolte automatickou aktualizaci a nastavte odpovídající interval aktualizace v souboru application.yml. V tomto příkladu se klient bude každých 5 sekund dotazovat na změny konfigurace, což je minimální hodnota, kterou můžete nastavit pro interval aktualizace. Ve výchozím nastavení je automatická aktualizace nastavená na false a interval aktualizace je nastavený na 60 sekund.

    spring:
      cloud:
        config:
          auto-refresh: true
          refresh-interval: 5
    
  • Nakonec @refreshScope přidejte svůj kód. V tomto příkladu se proměnná connectTimeout automaticky aktualizuje každých 5 sekund.

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

Další kroky

V tomto článku jste zjistili, jak povolit a nakonfigurovat instanci Spring Cloud Config Server instanci. Další informace o správě aplikace najdete v tématu Škálování aplikace v Azure Spring Cloud.