Usare il servizio di configurazione dell'applicazione per Tanzu

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

Questo articolo si applica a:❌ Basic/Standard ✔️ Enterprise

Questo articolo illustra come usare il servizio di configurazione delle applicazioni per VMware Tanzu con il piano Enterprise di Azure Spring Apps.

Il servizio di configurazione delle applicazioni per VMware Tanzu è uno dei componenti commerciali di VMware Tanzu. Consente la gestione delle risorse native ConfigMap di Kubernetes popolate da proprietà definite in uno o più repository Git.

Con il servizio di configurazione dell'applicazione è disponibile una posizione centrale per gestire le proprietà esterne per le applicazioni in tutti gli ambienti. Per comprendere le differenze tra Spring Cloud Config Server nei piani Basic e Standard, vedere la sezione Usare il servizio di configurazione delle applicazioni per la configurazione esterna di Eseguire la migrazione di un'istanza di piano Basic o Standard di Azure Spring Apps al piano Enterprise.

Il servizio di configurazione dell'applicazione è disponibile in due versioni: Gen1 e Gen2. La versione Gen1 serve principalmente i clienti esistenti per motivi di compatibilità con le versioni precedenti ed è supportata solo fino al 30 aprile 2024. Le nuove istanze del servizio devono usare Gen2. La versione Gen2 usa il flusso come back-end per comunicare con i repository Git e offre prestazioni migliori rispetto a Gen1.

La tabella seguente illustra le relazioni del sottocomponente:

Generazione del servizio di configurazione dell'applicazione Sottocomponenti
Prima generazione application-configuration-service
Seconda generazione application-configuration-service
flux-source-controller

La tabella seguente mostra alcuni dati di benchmark per il riferimento. Tuttavia, le dimensioni del repository Git sono un fattore chiave con un impatto significativo sui dati sulle prestazioni. È consigliabile archiviare solo i file di configurazione necessari nel repository Git per mantenerli piccoli.

Generazione del servizio di configurazione dell'applicazione Durata dell'aggiornamento inferiore a 100 modelli Durata dell'aggiornamento inferiore a 250 modelli Durata dell'aggiornamento inferiore a 500 modelli
Prima generazione 330 s 840 s 1500 s
Seconda generazione 13 s 100 s 378 s

Gen2 offre anche più verifiche di sicurezza quando ci si connette a un repository Git remoto. Gen2 richiede una connessione sicura se si usa HTTPS e verifica la chiave host e l'algoritmo host corretti quando si usa una connessione SSH.

È possibile scegliere la versione del servizio di configurazione dell'applicazione quando si crea un'istanza del servizio Azure Spring Apps Enterprise. La versione predefinita è Gen1. È anche possibile eseguire l'aggiornamento a Gen2 dopo la creazione dell'istanza, ma il downgrade non è supportato. L'aggiornamento è senza tempi di inattività, ma è comunque consigliabile eseguire il test in un ambiente di staging prima di passare a un ambiente di produzione.

Prerequisiti

Gestire le impostazioni del servizio di configurazione dell'applicazione

Il servizio di configurazione dell'applicazione supporta Azure DevOps, GitHub, GitLab e Bitbucket per archiviare i file di configurazione.

Per gestire le impostazioni del servizio, aprire la sezione Impostazioni. In questa sezione è possibile configurare gli aspetti chiave seguenti:

  • Generazione: aggiornare la generazione del servizio.
  • Intervallo di aggiornamento: regolare la frequenza con cui il servizio controlla la disponibilità di aggiornamenti dai repository Git.
  • Repository: aggiungere nuove voci o modificare quelle esistenti. Questa funzione consente di controllare i repository usati dai monitoraggi del servizio per eseguire il pull dei dati.

Screenshot della portale di Azure che mostra la pagina Servizio configurazione applicazione con la scheda Impostazioni evidenziata.

Se la generazione di servizi corrente è Gen1, è possibile eseguire l'aggiornamento a Gen2 per ottenere prestazioni migliori. Per altre informazioni, vedere la sezione Eseguire l'aggiornamento da Gen1 a Gen2 .

L'intervallo di aggiornamento specifica la frequenza (in secondi) per il controllo degli aggiornamenti nel repository. Il valore minimo è 0, che disabilita l'aggiornamento automatico. Per ottenere prestazioni ottimali, impostare questo intervallo su un valore minimo di 60 secondi.

La tabella seguente descrive le proprietà per ogni voce del repository:

Proprietà Obbligatorio? Descrizione
Name Nome univoco per etichettare ogni repository Git.
Patterns Modelli da cercare nei repository Git. Per ogni modello, usare un formato come {application} o {application}/{profile} anziché {application}-{profile}.yml. Separare i modelli con virgole. Per altre informazioni, vedere la sezione Pattern di questo articolo.
URI URI Git (ad esempio, https://github.com/Azure-Samples/piggymetrics-config o git@github.com:Azure-Samples/piggymetrics-config)
Label Nome del ramo da cercare nel repository Git.
Search path No Percorsi di ricerca facoltativi, separati da virgole, per la ricerca di sottodirectory del repository Git.

Modello

La configurazione viene estratta dai back-end Git usando ciò che si definisce in un modello. Un criterio è una combinazione di {application}/{profile} come descritto nelle linee guida seguenti.

  • {application} - Nome di un'applicazione di cui si sta recuperando la configurazione. Il valore application viene considerato l'applicazione predefinita e include informazioni di configurazione condivise tra più applicazioni. Qualsiasi altro valore fa riferimento a un'applicazione specifica e include proprietà per l'applicazione specifica e le proprietà condivise per l'applicazione predefinita.
  • {profile} -Opzionale. Nome di un profilo di cui è possibile recuperare le proprietà. Un valore vuoto o il valore default, include proprietà condivise tra i profili. I valori non predefiniti includono proprietà per il profilo e le proprietà specificati per il profilo predefinito.

Autenticazione

Lo screenshot seguente mostra i tre tipi di autenticazione del repository supportati dal servizio di configurazione dell'applicazione.

Screenshot della portale di Azure che mostra la pagina Servizio configurazione applicazione con il menu Tipo di autenticazione evidenziato.

L'elenco seguente descrive i tre tipi di autenticazione:

  • Repository pubblico.

    Non è necessaria alcuna configurazione di autenticazione aggiuntiva quando si usa un repository pubblico. Selezionare Pubblico nel modulo Autenticazione .

    La tabella seguente illustra la proprietà configurabile che è possibile usare per configurare un repository Git pubblico:

    Proprietà Obbligatorio? Descrizione
    CA certificate No Obbligatorio solo quando viene usato un certificato autofirmato per l'URL del repository Git.
  • Repository privato con autenticazione di base.

    La tabella seguente illustra le proprietà configurabili che è possibile usare per configurare un repository Git privato con l'autenticazione di base:

    Proprietà Obbligatorio? Descrizione
    username Nome utente usato per accedere al repository.
    password Password usata per accedere al repository.
    CA certificate No Obbligatorio solo quando viene usato un certificato autofirmato per l'URL del repository Git.
  • Repository privato con autenticazione SSH.

    La tabella seguente illustra le proprietà configurabili che è possibile usare per configurare un repository Git privato con SSH:

    Proprietà Obbligatorio? Descrizione
    Private key Chiave privata che identifica l'utente Git. Le chiavi private crittografate con passphrase non sono supportate.
    Host key No per Gen1
    Sì per Gen2
    Chiave host del server Git. Se ci si connette al server tramite Git nella riga di comando, la chiave host si trova nel file ssh/known_hosts . Non includere il prefisso dell'algoritmo, perché è specificato in Host key algorithm.
    Host key algorithm No per Gen1
    Sì per Gen2
    Algoritmo per hostKey: uno di ssh-dss, ssh-rsaecdsa-sha2-nistp256, , ecdsa-sha2-nistp384e ecdsa-sha2-nistp521. (Obbligatorio se si specifica Host key).
    Strict host key checking No Valore facoltativo che indica se il back-end deve essere ignorato se si verifica un errore quando si usa l'oggetto fornito Host key. I valori validi sono true e false. Il valore predefinito è true.

Per convalidare l'accesso all'URI di destinazione, selezionare Convalida. Al termine della convalida, selezionare Applica per aggiornare le impostazioni di configurazione.

Eseguire l'aggiornamento da Gen1 a Gen2

Il servizio di configurazione dell'applicazione Gen2 offre prestazioni migliori rispetto a Gen1, soprattutto quando si dispone di un numero elevato di file di configurazione. È consigliabile usare Gen2, soprattutto perché Gen1 è in fase di ritiro a breve. L'aggiornamento da Gen1 a Gen2 è senza tempi di inattività, ma è comunque consigliabile testare in un ambiente di staging prima di passare a un ambiente di produzione.

Gen2 richiede più proprietà di configurazione rispetto a Gen1 quando si usa l'autenticazione SSH. È necessario aggiornare le proprietà di configurazione nell'applicazione per renderla funzionante con Gen2. La tabella seguente illustra le proprietà necessarie per Gen2 quando si usa l'autenticazione SSH:

Proprietà Descrizione
Host key Chiave host del server Git. Se ci si connette al server tramite Git nella riga di comando, la chiave host si trova nel file ssh/known_hosts . Non includere il prefisso dell'algoritmo, perché è specificato in Host key algorithm.
Host key algorithm Algoritmo per hostKey: uno di ssh-dss, ssh-rsaecdsa-sha2-nistp256, , ecdsa-sha2-nistp384o ecdsa-sha2-nistp521.

Seguire questa procedura per eseguire l'aggiornamento da Gen1 a Gen2:

  1. Nella portale di Azure passare alla pagina Servizio di configurazione dell'applicazione per l'istanza del servizio Azure Spring Apps.

  2. Selezionare la sezione Impostazioni e quindi selezionare Gen2 nel menu a discesa Generazione.

    Screenshot del portale di Azure che mostra la pagina Servizio configurazione applicazione con la scheda Impostazioni che mostra e il menu Generazione aperto.

  3. Selezionare Convalida per convalidare l'accesso all'URI di destinazione. Al termine della convalida, selezionare Applica per aggiornare le impostazioni di configurazione.

    Screenshot del portale di Azure che mostra la pagina Servizio configurazione applicazione e la scheda Impostazioni con il pulsante Convalida evidenziato.

Supporto poliglotta

Il servizio di configurazione dell'applicazione funziona perfettamente con le applicazioni Spring Boot. Le proprietà generate dal servizio vengono importate come configurazioni esterne da Spring Boot e inserite nei fagioli. Non è necessario scrivere codice aggiuntivo. È possibile utilizzare i valori usando l'annotazione @Value , a cui si accede tramite l'astrazione Environment di Spring oppure è possibile associarli a oggetti strutturati usando l'annotazione @ConfigurationProperties .

Il servizio di configurazione dell'applicazione supporta anche app poliglotte come dotNET, Go, Python e così via. Per accedere ai file di configurazione specificati per il caricamento durante la distribuzione di app polyglot nelle app, provare ad accedere a un percorso di file che è possibile recuperare tramite una variabile di ambiente con un nome, ad AZURE_SPRING_APPS_CONFIG_FILE_PATHesempio . È possibile accedere a tutti i file di configurazione previsti in tale percorso. Per accedere ai valori delle proprietà nei file di configurazione, usare le librerie di file di lettura/scrittura esistenti per l'app.

Strategie di aggiornamento

Quando si modificano ed eseguono il commit delle configurazioni in un repository Git, sono necessari diversi passaggi prima che queste modifiche vengano riflesse nelle applicazioni. Questo processo, anche se automatizzato, prevede le fasi e i componenti distinti seguenti, ognuno con la propria tempistica e comportamento:

  • Polling by Application Configuration Service (Polling by Application Configuration Service): il servizio di configurazione dell'applicazione esegue regolarmente il polling dei repository Git back-end per rilevare eventuali modifiche. Questo polling si verifica a una frequenza impostata, definita dall'intervallo di aggiornamento. Quando viene rilevata una modifica, il servizio di configurazione dell'applicazione aggiorna Kubernetes ConfigMap.
  • ConfigMap aggiornamento e interazione con kubelet cache: in Azure Spring Apps questo ConfigMap viene montato come volume di dati per l'applicazione pertinente. Tuttavia, si verifica un ritardo naturale in questo processo a causa della frequenza con cui kubelet aggiorna la cache per riconoscere le modifiche in ConfigMap.
  • L'applicazione legge la configurazione aggiornata: l'applicazione in esecuzione nell'ambiente Azure Spring Apps può accedere ai valori di configurazione aggiornati. I fagioli esistenti nel contesto Spring non vengono aggiornati automaticamente per usare le configurazioni aggiornate.

Queste fasi sono riepilogate nel diagramma seguente:

Diagramma che mostra il ciclo di vita del processo di aggiornamento del servizio di configurazione dell'applicazione.

È possibile modificare l'intervallo di aggiornamento del polling del servizio di configurazione dell'applicazione per allinearsi alle esigenze specifiche. Per applicare le configurazioni aggiornate nell'applicazione, è necessaria un'azione di riavvio o aggiornamento.

Nelle applicazioni Spring, le proprietà vengono mantenute o a cui si fa riferimento come fagioli all'interno del contesto Spring. Per caricare nuove configurazioni, è consigliabile usare i metodi seguenti:

  • Riavvia l'applicazione. Il riavvio dell'applicazione carica sempre la nuova configurazione.

  • Chiamare l'endpoint /actuator/refresh esposto sul client di configurazione tramite l'attuatore Spring.

    Per usare questo metodo, aggiungere la dipendenza seguente al file di pom.xml del client di configurazione.

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

    È anche possibile abilitare l'endpoint dell'attuatore aggiungendo la configurazione seguente:

    management.endpoints.web.exposure.include=refresh, bus-refresh, beans, env
    

    Dopo aver ricaricato le origini delle proprietà chiamando l'endpoint /actuator/refresh , gli attributi associati @Value ai fagioli con l'annotazione @RefreshScope vengono aggiornati.

    @Service
    @Getter @Setter
    @RefreshScope
    public class MyService {
       @Value
       private Boolean activated;
    }
    

    Usare curl con l'endpoint dell'applicazione per aggiornare la nuova configurazione, come illustrato nell'esempio seguente:

    curl -X POST http://{app-endpoint}/actuator/refresh
    
  • Usare FileSystemWatcher per controllare la modifica del file e aggiornare il contesto su richiesta. FileSystemWatcher è una classe fornita con spring-boot-devtools che controlla directory specifiche per le modifiche ai file oppure è possibile usare un'altra utilità con una funzione simile. L'opzione precedente richiede agli utenti di avviare attivamente l'aggiornamento, mentre quest'ultimo può monitorare le modifiche ai file e richiamare automaticamente l'aggiornamento al rilevamento degli aggiornamenti. È possibile recuperare il percorso del file usando la variabile AZURE_SPRING_APPS_CONFIG_FILE_PATHdi ambiente , come indicato nella sezione supporto Polyglot.

Configurare le impostazioni del servizio di configurazione dell'applicazione

Per configurare il servizio di configurazione dell'applicazione, seguire questa procedura:

  1. Selezionare Servizio di configurazione dell'applicazione.

  2. Selezionare Panoramica per visualizzare lo stato di esecuzione e le risorse allocate al servizio di configurazione dell'applicazione.

    Screenshot del portale di Azure che mostra la pagina Servizio configurazione applicazione con la scheda Panoramica evidenziata.

  3. Selezionare Impostazioni e aggiungere una nuova voce nella sezione Repository con le informazioni sul back-end Git.

  4. Selezionare Convalida per convalidare l'accesso all'URI di destinazione. Al termine della convalida, selezionare Applica per aggiornare le impostazioni di configurazione.

    Screenshot del portale di Azure che mostra la pagina Servizio configurazione applicazione con la scheda Impostazioni e il pulsante Convalida evidenziato.

Configurare il certificato TLS per accedere al back-end Git con un certificato autofirmato per Gen2

Questo passaggio è facoltativo. Se si usa un certificato autofirmato per il back-end Git, è necessario configurare il certificato TLS per accedere al back-end Git.

È prima necessario caricare il certificato in Azure Spring Apps. Per altre informazioni, vedere la sezione Importare un certificato in Usare certificati TLS/SSL nell'applicazione in Azure Spring Apps.

Per configurare il certificato TLS, seguire questa procedura:

  1. Passare alla risorsa del servizio e quindi selezionare Servizio di configurazione dell'applicazione.

  2. Selezionare Impostazioni e aggiungere o aggiornare una nuova voce nella sezione Repository con le informazioni sul back-end Git.

    Screenshot del portale di Azure che mostra la pagina Servizio configurazione applicazione con la scheda Impostazioni visualizzata.

Usare il servizio di configurazione dell'applicazione con le applicazioni

Quando si usa il servizio di configurazione dell'applicazione con un back-end Git e si usano le configurazioni centralizzate, è necessario associare l'app al servizio di configurazione dell'applicazione.

Usare la procedura seguente per usare il servizio di configurazione dell'applicazione con le applicazioni:

  1. Aprire la scheda Associazione app .

  2. Selezionare Associa app e scegliere un'app dall'elenco a discesa. Selezionare Applica per eseguire l'associazione.

    Screenshot del portale di Azure che mostra la pagina Servizio configurazione applicazione con la scheda Associazione app evidenziata.

    Nota

    Quando modifichi lo stato bind/unbind, devi riavviare o ridistribuire l'app su per rendere effettiva l'associazione.

  3. Nel menu di spostamento selezionare App per visualizzare l'elenco di tutte le app.

  4. Selezionare l'app di destinazione per configurare i modelli per la name colonna.

  5. Nel riquadro di spostamento selezionare Configurazione e quindi impostazioni generali.

  6. Nell'elenco a discesa Modelli di file di configurazione scegliere uno o più modelli dall'elenco. Per altre informazioni, vedere la sezione Pattern .

    Screenshot della portale di Azure che mostra la pagina Configurazione app con la scheda Impostazioni generali e le opzioni del gateway API evidenziate.

  7. Seleziona Salva.

Associare un'app al servizio di configurazione dell'applicazione

È ora possibile scegliere di associare l'applicazione al servizio di configurazione dell'applicazione durante la creazione di una nuova app.

Usare la procedura seguente per creare una nuova app e associarla al servizio di configurazione dell'applicazione:

  1. Nel riquadro di spostamento selezionare App per visualizzare tutte le app.

  2. Selezionare Crea app per creare una nuova app.

  3. Immettere un nome per la nuova app.

  4. Selezionare la scheda Bind (Associa ) e quindi selezionare Application Configuration Service (Servizio di configurazione dell'applicazione) nell'elenco a discesa.

    Screenshot del portale di Azure che mostra la pagina Crea app con l'elenco a discesa Bind evidenziato.

  5. Selezionare Crea per completare la creazione dell'app e associarla al servizio di configurazione dell'applicazione.

Abilitare/disabilitare il servizio di configurazione dell'applicazione dopo la creazione del servizio

È possibile abilitare e disabilitare il servizio di configurazione dell'applicazione dopo la creazione del servizio usando il portale di Azure o l'interfaccia della riga di comando di Azure. Prima di disabilitare il servizio di configurazione dell'applicazione, è necessario annullare l'associazione di tutte le app.

Usare la procedura seguente per abilitare o disabilitare il servizio di configurazione dell'applicazione:

  1. Passare alla risorsa del servizio e quindi selezionare Servizio di configurazione dell'applicazione.
  2. Seleziona Gestisci.
  3. Selezionare o deselezionare Abilita servizio di configurazione dell'applicazione e quindi selezionare Salva.
  4. È ora possibile visualizzare lo stato del servizio di configurazione dell'applicazione nella pagina Servizio di configurazione dell'applicazione.

Esaminare il file di configurazione in ConfigMap

La sezione seguente illustra come esaminare il contenuto del file di configurazione estratto dal servizio di configurazione dell'applicazione dai repository Git upstream nei relativi kubernetes ConfigMap. Per altre informazioni, vedere la sezione Strategie di aggiornamento di questo articolo.

Assegnare un ruolo di Azure

Prima di tutto, è necessario avere il ruolo Azure Spring Apps Application Configuration Service Config File Pattern Reader Role di Azure assegnato all'utente.

Usare la procedura seguente per assegnare un ruolo di Azure:

  1. Aprire il portale di Azure e passare all'istanza del servizio Azure Spring Apps.

  2. Nel riquadro di spostamento selezionare Controllo di accesso (IAM).

  3. Nella pagina Controllo di accesso (IAM) selezionare Aggiungi e quindi selezionare Aggiungi assegnazione di ruolo.

    Screenshot del portale di Azure che mostra la pagina Controllo di accesso (IAM) per un'istanza di Azure Spring Apps con l'opzione Aggiungi assegnazione di ruolo evidenziata.

  4. Nella pagina Aggiungi assegnazione di ruolo, nell'elenco Nome cercare e selezionare il ruolo di destinazione e quindi selezionare Avanti.

    Screenshot del portale di Azure che mostra la pagina Aggiungi assegnazione di ruolo per un'istanza di Azure Spring Apps con il nome del ruolo lettore modello di configurazione del modello di file di configurazione del servizio di configurazione dell'applicazione Azure Spring Apps evidenziato.

  5. Selezionare Membri e quindi cercare e selezionare il nome utente.

  6. Seleziona Rivedi + assegna.

Esaminare il file di configurazione con l'interfaccia della riga di comando di Azure

Usare il comando seguente per visualizzare il contenuto del file di configurazione in base al modello:

az spring application-configuration-service config show \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --config-file-pattern <pattern>

Questo comando genera un output JSON simile all'esempio seguente:

{
  "configurationFiles": {
    "application.properties": [
      "example.property.application.name: example-service",
      "example.property.cloud: Azure"
    ]
  },
  "metadata": {
    "gitRevisions": "[{\"url\":\"{gitRepoUrl}\",\"revision\":\"{revisionInfo}\"}]"
  }
}

Nota

Le metadata proprietà e gitRevisions non sono disponibili per la versione Gen1 del servizio di configurazione dell'applicazione.

È anche possibile usare questo comando con il --export-path {/path/to/target/folder} parametro per esportare il file di configurazione nella cartella specificata. Supporta sia percorsi relativi che percorsi assoluti. Se non si specifica il percorso, il comando usa il percorso della directory corrente per impostazione predefinita.

Esaminare il file di configurazione nell'app

Dopo aver associato l'app al servizio di configurazione dell'applicazione e aver impostato il modello per la distribuzione dell'app, come descritto nella sezione Usare il servizio di configurazione dell'applicazione con le applicazioni di questo articolo, l'oggetto ConfigMap contenente il file di configurazione per il modello deve essere montato nel contenitore dell'applicazione. Usare la procedura seguente per controllare i file di configurazione in ogni istanza della distribuzione dell'app:

  1. Connessione a una delle istanze dell'applicazione. Per altre informazioni, vedere Connessione a un'istanza dell'app per la risoluzione dei problemi.

  2. Usare il echo $AZURE_SPRING_APPS_CONFIG_FILE_PATH comando per trovare le cartelle contenenti i file di configurazione. Un elenco di posizioni viene visualizzato separato da virgole, come illustrato nell'esempio seguente:

      $ echo $AZURE_SPRING_APPS_CONFIG_FILE_PATH
      /etc/azure-spring-cloud/configmap/acs-default-payment-default-e9d46,/etc/azure-spring-cloud/configmap/acs-default-catalog-default-616f4
    
  3. Controllare il contenuto del file di configurazione usando comandi come cat.

Nota

Le informazioni sulla revisione Git non sono disponibili nell'app.

Controllare i log

Le sezioni seguenti illustrano come visualizzare i log applicazioni usando l'interfaccia della riga di comando di Azure o il portale di Azure.

Usare lo streaming dei log in tempo reale

È possibile trasmettere i log in tempo reale con l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere Trasmettere i log dei componenti gestiti di Azure Spring Apps in tempo reale. Gli esempi seguenti illustrano come usare i comandi dell'interfaccia della riga di comando di Azure per trasmettere continuamente nuovi log per application-configuration-service e flux-source-controller sottocomponenti.

Usare il comando seguente per trasmettere i log per application-configuration-service:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name application-configuration-service \
    --all-instances \
    --follow

Usare il comando seguente per trasmettere i log per flux-source-controller:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name flux-source-controller \
    --all-instances \
    --follow

Usare Log Analytics

Le sezioni seguenti illustrano come attivare e visualizzare i log di sistema usando Log Analytics.

Impostazioni di diagnostica per Log Analytics

È necessario attivare i log di sistema e inviare i log all'istanza di Log Analytics prima di eseguire query sui log per il servizio di configurazione dell'applicazione. Per abilitare i log di sistema nella portale di Azure, seguire questa procedura:

  1. Aprire l'istanza di Azure Spring Apps.

  2. Nel riquadro di spostamento selezionare Impostazioni di diagnostica.

  3. Selezionare Aggiungi impostazione di diagnostica o selezionare Modifica impostazione per un'impostazione esistente.

  4. Nella sezione Log selezionare la categoria Log di sistema.

  5. Nella sezione Dettagli destinazione selezionare Invia all'area di lavoro Log Analytics e quindi selezionare l'area di lavoro.

  6. Selezionare Salva per aggiornare l'impostazione.

Controllare i log in Log Analytics

Per controllare i log di application-configuration-service e flux-source-controller usando il portale di Azure, seguire questa procedura:

  1. Assicurarsi di aver attivato i log di sistema. Per altre informazioni, vedere la sezione Impostazioni di diagnostica per Log Analytics .

  2. Aprire l'istanza di Azure Spring Apps.

  3. Nel menu di spostamento selezionare Log e quindi panoramica.

  4. Usare le query di esempio seguenti nel riquadro di modifica della query. Modificare l'intervallo di tempo e quindi selezionare Esegui per cercare i log.

    • Per visualizzare i log per application-configuration-service, usare la query seguente:

      AppPlatformSystemLogs
      | where LogType in ("ApplicationConfigurationService")
      | project TimeGenerated , ServiceName , LogType, Log , _ResourceId
      | limit 100
      

      Screenshot del portale di Azure che mostra il risultato della query dei log per application-configuration-service.

    • Per visualizzare i log per flux-source-controller, usare la query seguente:

      AppPlatformSystemLogs
      | where LogType in ("Flux")
      | project TimeGenerated , ServiceName , LogType, Log , _ResourceId
      | limit 100
      

      Screenshot del portale di Azure che mostra il risultato della query dei log per flux-source-controller.

Nota

Potrebbero verificarsi alcuni minuti di ritardo prima che i log siano disponibili in Log Analytics.

Esaminare le revisioni Git dei file di configurazione

È possibile trovare la revisione Git del file di configurazione del modello nei log del servizio di configurazione dell'applicazione. Il log di esempio seguente indica che il file di configurazione per il payment/default modello viene estratto example-commit-id dal main ramo del https://github.com/Azure-Samples/acme-fitness-store-config repository. Per informazioni su come eseguire query sui log, vedere la sezione Controllare i log .

Applied ConfigMap ({config-map-name}) for content (payment/default) from Git repositories https://github.com/Azure-Samples/acme-fitness-store-config@main@sha1:{example-commit-id}

È anche possibile trovare la revisione Git usando l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere la sezione Esaminare il file di configurazione con l'interfaccia della riga di comando di Azure.

Nota

La revisione Git non è disponibile per la versione Gen1 del servizio di configurazione dell'applicazione.

Risolvere i problemi noti

Se le modifiche più recenti non vengono riflesse nelle applicazioni, controllare gli elementi seguenti in base alla sezione Strategie di aggiornamento:

  • Verificare che il repository Git sia aggiornato correttamente controllando gli elementi seguenti:
    • Verificare che il ramo delle modifiche al file di configurazione desiderato venga aggiornato.
    • Verificare che il modello configurato nel servizio di configurazione dell'applicazione corrisponda ai file di configurazione aggiornati.
    • Verificare che l'applicazione sia associata al servizio di configurazione dell'applicazione.
  • Verificare che il servizio di configurazione dell'applicazione usi le revisioni Git corrette, come descritto nella sezione Esaminare le revisioni Git dei file di configurazione.
  • Verificare che l'oggetto ConfigMap contenente il file di configurazione per il modello usato dall'applicazione venga aggiornato, come descritto nella sezione Esaminare il file di configurazione in ConfigMap di questo articolo. Se non viene aggiornato, generare un ticket.
  • Verificare che sia ConfigMap montato nell'applicazione come file, come descritto nella sezione Esaminare il file di configurazione nell'app di questo articolo. Se il file non viene aggiornato, attendere l'intervallo di aggiornamento di Kubernetes (1 minuto) o forzare un aggiornamento riavviando l'applicazione.

Dopo aver controllato questi elementi, le applicazioni devono essere in grado di leggere le configurazioni aggiornate. Se le applicazioni non vengono ancora aggiornate, generare un ticket.

Azure Spring Apps