Condividi tramite


Personalizzare la configurazione in ingresso in Azure Spring Apps

Nota

I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.

Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.

Questo articolo si applica a:✅ Basic/Standard ✅ Enterprise

Questo articolo illustra come impostare e aggiornare le impostazioni di ingresso di un'applicazione in Azure Spring Apps usando il portale di Azure e l'interfaccia della riga di comando di Azure.

Il servizio Azure Spring Apps usa un controller di ingresso sottostante per gestire la gestione del traffico delle applicazioni. Per la personalizzazione sono supportate le impostazioni di ingresso seguenti.

Nome Impostazione in ingresso Default value Intervallo valido Descrizione
ingress-read-timeout proxy-read-timeout 300 [1,1800] Timeout in secondi per la lettura di una risposta da un server proxy.
ingress-send-timeout proxy-send-timeout 60 [1,1800] Timeout in secondi per la trasmissione di una richiesta al server proxy.
session-affinity affinity None Session, None Tipo di affinità che effettua la richiesta alla stessa replica pod che risponde alla richiesta precedente. Impostare session-affinity su Cookie per abilitare l'affinità di sessione. Solo nel portale è necessario scegliere la casella abilita affinità di sessione.
session-max-age session-cookie-max-age 0 [0, 604800] Tempo in secondi fino alla scadenza del cookie, corrispondente alla direttiva sui cookie Max-Age. Se si imposta session-max-age su 0, il periodo di scadenza è uguale al periodo di sessione del browser.
backend-protocol backend-protocol Predefiniti Il valore predefinito è GRPC Impostare il protocollo back-end per indicare in che modo NGINX deve comunicare con il servizio back-end. Il valore predefinito indica HTTP/HTTPS/WebSocket. L'impostazione backend-protocol si applica solo al traffico da client a app. Per il traffico da app a app all'interno della stessa istanza del servizio, scegliere qualsiasi protocollo per il traffico da app a app senza modificare l'impostazione backend-protocol. Il protocollo non limita la scelta del protocollo per il traffico da app a app all'interno della stessa istanza del servizio.
client-auth client-auth 0 selezionato - Selezionare i certificati con la chiave pubblica caricata nelle impostazioni TLS/SSL. Ingress concatena questi certificati in uno quindi lo usa per l'autenticazione client.

Prerequisiti

  • Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

  • Interfaccia della riga di comando di Azure con l'estensione Azure Spring Apps. Usare il comando seguente per rimuovere le versioni precedenti e installare l'estensione più recente. Se l'estensione spring-cloud è stata installata in precedenza, disinstallarla per evitare la mancata corrispondenza della configurazione e della versione.

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    

Impostare la configurazione di ingresso

Usare il comando seguente dell'interfaccia della riga di comando di Azure per impostare la configurazione in ingresso al momento della creazione.

az spring app create \
    --resource-group <resource-group-name> \
    --service <service-name> \
    --name <app-name> \
    --ingress-read-timeout 300 \
    --ingress-send-timeout 60 \
    --session-affinity Cookie \
    --session-max-age 1800 \
    --backend-protocol Default \
    --client-auth-certs <cert-id>

Nota

Il valore cert-id è nel formato /subscriptions/<your-sub-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AppPlatform/Spring/<service-name>/certificates/<cert-name>. Per ottenere il valore cert-id, usare il comando seguente: az spring certificate show --service <service-instance-name> --resource-group <resource-group-name> --name <certificate-name> --query id

Questo comando crea un'app con le impostazioni seguenti:

  • Timeout di lettura in ingresso: 300 secondi
  • Timeout di invio in ingresso: 60 secondi
  • Affinità di sessione: Cookie
  • Validità massima cookie sessione: 1800 secondi
  • Protocollo back-end: impostazione predefinita
  • Autenticazione client: cert-name

Aggiornare le impostazioni di ingresso per un'app esistente

Usare la procedura seguente per aggiornare le impostazioni di ingresso per un'applicazione ospitata da un'istanza del servizio esistente.

  1. Accedere al portale usando un account associato alla sottoscrizione di Azure che contiene l'istanza di Azure Spring Apps.

  2. Andare al riquadro App quindi selezionare l'app da configurare.

  3. Andare al riquadro Configurazione quindi selezionare la scheda Impostazioni ingresso.

  4. Aggiornare le impostazioni di ingresso quindi selezionare Salva.

    Screenshot della pagina Configurazione del portale di Azure che mostra la scheda Impostazioni ingresso.

Domande frequenti

  • Come si abilita gRPC?

    Impostare il protocollo back-end su GRPC.

  • Come si abilita WebSocket?

    WebSocket è abilitato per impostazione predefinita se si imposta il protocollo back-end su Predefinito. Il limite di connessione WebSocket è 20000. Quando si raggiunge tale limite, la connessione non riesce.

    È anche possibile usare RSocket basato su WebSocket.

  • Qual è la differenza tra le impostazioni di configurazione in ingresso e ingresso?

    La configurazione in ingresso può comunque essere usata nell'interfaccia della riga di comando di Azure e nell'SDK e tale impostazione si applica a tutte le app all'interno dell'istanza del servizio. Dopo che le impostazioni di ingresso configurano un'app, la configurazione in ingresso non può influire su di essa. Non è consigliabile che i nuovi script usino la configurazione in ingresso perché si prevede di interrompere il supporto in futuro.

  • Quando le impostazioni di ingresso vengono usate insieme a Gateway app/GESTIONE API, cosa accade quando si imposta il timeout sia in ingresso di Azure Spring Apps che in Gateway app/Gestione API?

    Viene usato il timeout più breve.

  • È necessaria una configurazione aggiuntiva in Gateway app/Gestione API se è necessario disporre del supporto end-to-end per gRPC o WebSocket?

    Non è necessaria una configurazione aggiuntiva purché il gateway app supporti gRPC.

  • La porta configurabile è supportata?

    La porta configurabile non è attualmente supportata (80/443).

Passaggi successivi