Supporto di Spring Cloud Azure Redis

Questo articolo descrive come usare Spring Cloud Azure e Spring Data Redis insieme e fornire diversi tipi di credenziali per l'autenticazione in Cache Redis di Azure.

Cache Redis di Azure fornisce un archivio dati in memoria basato sul software Redis. Redis migliora notevolmente le prestazioni e la scalabilità di un'applicazione che usa archivi dati back-end.

Versioni di Redis supportate

Per le versioni supportate, vedere Versioni correnti.

Funzionalità principali

Connessione senza password

La connessione senza password usa l'autenticazione di Microsoft Entra per la connessione ai servizi di Azure senza archiviare credenziali nell'applicazione, nei relativi file di configurazione o nelle variabili di ambiente. L'autenticazione di Microsoft Entra è un meccanismo che consente di connettersi ad cache di Azure per Redis utilizzando le identità definite in Microsoft Entra ID. Con l'autenticazione Microsoft Entra, è possibile gestire le identità della cache e altri servizi Microsoft in una posizione centrale, semplificando la gestione delle autorizzazioni.

Come funziona

Spring Cloud Azure crea prima di tutto uno dei tipi di credenziali seguenti a seconda della configurazione di autenticazione dell'applicazione:

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

Se nessuno di questi tipi di credenziali viene trovato, la catena di credenziali tramite DefaultTokenCredential viene usata per ottenere le credenziali dalle proprietà dell'applicazione, dalle variabili di ambiente, dall'identità gestita o dagli IDE. Per altre informazioni, vedere 'autenticazione di Azure Spring Cloud.

Configurazione

Proprietà configurabili quando si usa il supporto di Redis:

Proprietà Descrizione Valore predefinito Obbligatorio
spring.cloud.azure.redis.enabled Indica se cache di Azure per Redis è abilitato. vero NO
spring.cloud.azure.redis.name Nome dell'istanza di cache di Azure per Redis. Sì
spring.cloud.azure.redis.resource.resource-group Il gruppo di risorse di cache di Azure per Redis. Sì
spring.cloud.azure.profile.subscription-id ID sottoscrizione. Sì
spring.data.redis.azure.passwordless-enabled Se attivare l'accesso senza password per cache di Azure per Redis. falso NO

Utilizzo di base

Le sezioni seguenti illustrano gli scenari di utilizzo dell'applicazione Spring Boot classici.

Connettersi a Cache Redis di Azure con senza password

  1. Aggiungere la dipendenza seguente al progetto. Questa configurazione include automaticamente la spring-boot-starter dipendenza nel progetto in modo transitivo.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    

    Nota

    Ricorda di aggiungere il spring-cloud-azure-dependencies BOM insieme a questa dipendenza. Per ulteriori informazioni, vedere la sezione Introduzione della guida per sviluppatori di Spring Cloud Azure.

  2. Configurare le proprietà seguenti nel file application.yml:

    spring:
      data:
        redis:
          host: ${AZURE_CACHE_REDIS_HOST}
          username: ${AZURE_CACHE_REDIS_USERNAME}
          port: 6380
          ssl:
            enabled: true
          azure:
            passwordless-enabled: true
    

    Importante

    La connessione senza password usa l'autenticazione di Microsoft Entra. Per usare l'autenticazione di Microsoft Entra, è necessario abilitare l'autenticazione di Microsoft Entra e selezionare user(managed identity/service principal) per assegnare Data Owner Access Policy.

    Per altre informazioni e per ottenere il valore di username, vedere la sezione Abilitare l'autenticazione di Microsoft Entra ID nella cache di Usare Microsoft Entra ID per l'autenticazione della cache.

Connettersi a Cache Redis di Azure con identità gestita

  1. Per usare l'identità gestita, è necessario abilitare l'identità gestita per il servizio e abilitare l'autenticazione di Microsoft Entra nella cache.

  2. Aggiungere quindi le proprietà seguenti nel file application.yml:

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
    

    Importante

    Il redis.username dovrebbe essere sostituito con l'ID oggetto (principal) dell'identità gestita.

    Se si usa l'identità gestita assegnata dall'utente, è anche necessario aggiungere la proprietà spring.cloud.azure.credential.client-id con l'ID client dell'identità gestita assegnata dall'utente.

Connettersi a Cache Redis di Azure tramite Azure Resource Manager

Per connettersi a Cache Redis di Azure, seguire questa procedura:

  1. Aggiungere la dipendenza seguente al progetto. Questa configurazione include automaticamente la spring-boot-starter dipendenza nel progetto in modo transitivo.

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-resourcemanager</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    

    Nota

    Ricorda di aggiungere anche il spring-cloud-azure-dependencies BOM insieme a questa dipendenza. Per ulteriori informazioni, consulta la sezione Introduzione della guida per sviluppatori di Spring Cloud Azure.

  1. Configurare le proprietà seguenti nel file application.yml:

    spring:
      cloud:
        azure:
          profile:
            subscription-id: ${AZURE_SUBSCRIPTION_ID}
          redis:
            name: ${AZURE_CACHE_REDIS_NAME}
            resource:
              resource-group: ${AZURE_RESOURCE_GROUP}
    

Campioni

Consulta il repository azure-spring-boot-samples su GitHub.