Co je Azure Spring Cloud?

Spring Cloud Azure je projekt open source, který usnadňuje používání služeb Azure v aplikacích Spring.

Spring Cloud Azure je projekt open source se všemi dostupnými prostředky pro veřejnost. Následující seznam obsahuje odkazy na tyto zdroje informací:

K čemu se používá Azure Spring Cloud?

Spring Cloud Azure může usnadnit provádění následujících úloh v aplikacích Spring:

Výhody používání Azure Spring Cloud

Následující část ukazuje výhody používání Azure Spring Cloud. V této části se jako příklad používá načítání tajných kódů uložených v Azure Key Vault. Tato část porovnává rozdíly mezi vývojem aplikace Spring Boot a bez aplikace Spring Cloud Azure.

Bez Azure Spring Cloudu

Bez Azure Spring Cloudu, pokud chcete načíst tajné kódy uložené v Azure Key Vault, musíte provést následující kroky:

  1. Do souboru pom.xml přidejte následující závislosti:

    <dependency>
       <groupId>com.azure</groupId>
       <artifactId>azure-security-keyvault-secrets</artifactId>
       <version>4.5.2</version>
    </dependency>
    
  2. Vytvořte instanci třídy SecretClient pomocí kódu podobného následujícímu příkladu:

    public class DemoClass {
        public static void main(String... args) {
        SecretClient client = new SecretClientBuilder()
            .vaultUrl("vaultUrl")
            .credential(new ClientSecretCredentialBuilder()
                .tenantId("tenantId")
                .clientId("clientId")
                .clientSecret("clientSecret")
                .build())
            .buildClient();
        }
    }
    
  3. Vyhněte se pevným kódováním informací, jako jsou client-id a client-secret, a to tak, že tyto vlastnosti nakonfigurujete, jak je znázorněno v následujícím příkladu:

    @ConfigurationProperties("azure.keyvault")
    public class KeyVaultProperties {
        private String vaultUrl;
        private String tenantId;
        private String clientId;
        private String clientSecret;
    
        public KeyVaultProperties(String vaultUrl, String tenantId, String clientId, String clientSecret) {
            this.vaultUrl = vaultUrl;
            this.tenantId = tenantId;
            this.clientId = clientId;
            this.clientSecret = clientSecret;
        }
    
        public String getVaultUrl() {
            return vaultUrl;
        }
    
        public void setVaultUrl(String vaultUrl) {
            this.vaultUrl = vaultUrl;
        }
    
        public String getTenantId() {
            return tenantId;
        }
    
        public void setTenantId(String tenantId) {
            this.tenantId = tenantId;
        }
    
        public String getClientId() {
            return clientId;
        }
    
        public void setClientId(String clientId) {
            this.clientId = clientId;
        }
    
        public String getClientSecret() {
            return clientSecret;
        }
    
        public void setClientSecret(String clientSecret) {
            this.clientSecret = clientSecret;
        }
    }
    
  4. Aktualizujte kód aplikace, jak je znázorněno v tomto příkladu:

    @SpringBootApplication
    @EnableConfigurationProperties(KeyVaultProperties.class)
    public class SecretClientApplication implements CommandLineRunner {
        private KeyVaultProperties properties;
    
        public SecretClientApplication(KeyVaultProperties properties) {
            this.properties = properties;
        }
    
        public static void main(String[] args) {
            SpringApplication.run(SecretClientApplication.class, args);
        }
    
        @Override
        public void run(String... args) {
            SecretClient client = new SecretClientBuilder()
                .vaultUrl(properties.getVaultUrl())
                .credential(new ClientSecretCredentialBuilder()
                    .tenantId(properties.getTenantId())
                    .clientId(properties.getClientId())
                    .clientSecret(properties.getClientSecret())
                    .build())
                .buildClient();
            System.out.println("sampleProperty: " + client.getSecret("sampleProperty").getValue());
        }
    }
    
  5. Přidejte do souboru application.yml potřebné vlastnosti, jak je znázorněno v následujícím příkladu:

    azure:
      keyvault:
        vault-url:
        tenant-id:
        client-id:
        client-secret:
    
  6. Pokud potřebujete použít SecretClient na více místech, definujte SecretClient bean. Potom automaticky propojte SecretClient na příslušných místech.

S Spring Cloud Azure

Pokud chcete načíst tajné kódy uložené v Azure Key Vault, jsou požadavky Azure Spring Cloud jednodušší, jak je znázorněno v následujících krocích:

  1. Do souboru pom.xml přidejte následující závislosti:

    <dependencies>
      <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId>
      </dependency>
    </dependencies>
    
  2. Ke správě verze Azure Spring Cloud použijte vyúčtování materiálů, jak je znázorněno v následujícím příkladu:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>7.2.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

Poznámka

Pokud používáte Spring Boot 4.0.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 7.2.0.

Pokud používáte Spring Boot 3.5.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 6.2.0hodnotu.

Pokud používáte Spring Boot 3.1.x-3.5.x, nezapomeňte nastavit verzi na spring-cloud-azure-dependencies.

Pokud používáte Spring Boot 2.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 4.20.0.

Tato faktura materiálu (BOM) by měla být nakonfigurována v <dependencyManagement> části vašeho pom.xml souboru. Tím zajistíte, že všechny závislosti Spring Cloud Azure budou používat stejnou verzi.

Další informace o verzi použité pro tento kusovník najdete v tématu Kterou verzi Spring Cloud Azure bych měl použít.

  1. Do souboru application.yml přidejte následující vlastnosti:

    spring:
      cloud:
        azure:
          keyvault:
            secret:
              endpoint:
    
  2. Přihlaste se pomocí Azure CLI pomocí následujícího příkazu. Vaše přihlašovací údaje pak poskytne Azure CLI, takže nebude nutné přidávat další informace o přihlašovacích údaji, jako jsou client-id a client-secret.

    az login
    
  3. Automaticky připojte vodič SecretClient na příslušná místa, jak je znázorněno v následujícím příkladu:

    @SpringBootApplication
    public class SecretClientApplication implements CommandLineRunner {
    
        private final SecretClient secretClient;
    
        public SecretClientApplication(SecretClient secretClient) {
            this.secretClient = secretClient;
        }
    
        public static void main(String[] args) {
            SpringApplication.run(SecretClientApplication.class, args);
        }
    
        @Override
        public void run(String... args) {
            System.out.println("sampleProperty: " + secretClient.getSecret("sampleProperty").getValue());
        }
    }
    

Spring Cloud Azure kromě automaticky nakonfigurovaného SecretClient nabízí i další funkce. Můžete například použít @Value k získání hodnoty tajného kódu, jak je znázorněno v následujícím příkladu:

@SpringBootApplication
public class PropertySourceApplication implements CommandLineRunner {

    @Value("${sampleProperty1}")
    private String sampleProperty1;

    public static void main(String[] args) {
        SpringApplication.run(PropertySourceApplication.class, args);
    }

    public void run(String[] args) {
        System.out.println("sampleProperty1: " + sampleProperty1);
    }

}

Komponenty Spring Cloud Azure

Azure podpora

Poskytuje podporu automatické konfigurace pro Azure Služby, jako jsou Service Bus, Úložiště, služba Active Directory atd.

Microsoft Entra ID

Poskytuje podporu integrace pro Spring Security s Microsoft Entra ID pro ověřování. Další informace najdete v tématu Spring Cloud podpora Azure for Spring Security.

Azure Key Vault

Poskytuje podporu pro anotace Spring @Value pro integraci s Azure Key Vault Secrets. Další informace najdete v tématu Spring Cloud Azure správa tajných kódů.

Azure Storage

Poskytuje podporu spring bootu pro služby Azure Storage. Další informace najdete v části Spring Cloud Azure zpracování prostředků.

Získání podpory

Pokud potřebujete podporu pro Spring Cloud Azure, můžete požádat o pomoc následujícími způsoby:

  • Vytvořte požadavky podpory Azure. Zákazníci s plánem podpora Azure mohou otevřít lístek podpora Azure. Tuto možnost doporučujeme, pokud váš problém vyžaduje okamžitou pozornost.
  • Vytvořte problémy na GitHubu v úložišti Azure/azure-sdk-for-java. Ke sledování chyb, otázek a žádostí o funkce používáme GitHub issues. Problémy na GitHubu jsou bezplatné, ale odezva není zaručená. Další informace najdete v tématu GitHub problémy s procesem podpory.

Další kroky