Co je Spring Cloud Azure?

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

Spring Cloud Azure je opensourcový projekt 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á Spring Cloud Azure?

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

Následující diagram obsahuje přehled těchto funkcí:

Diagram s přehledem funkcí Azure Spring Cloud

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

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

Bez Spring Cloudu Azure

Pokud chcete načíst tajné kódy uložené ve službě Azure Key Vault, musíte bez Služby Spring Cloud Azure 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. SecretClient Vytvořte instanci třídy 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 client-id je například a client-secret nastavení těchto vlastností, 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. Do souboru application.yml přidejte 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 více míst, definujte SecretClient bean. Pak automaticky drátíte SecretClient na příslušných místech.

S Využitím Spring Cloudu Azure

Pokud chcete načíst tajné kódy uložené ve službě Azure Key Vault, jsou požadavky v Azure Azure Azure 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 fakturu (BOM), 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>5.11.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

    Poznámka:

    Pokud používáte Spring Boot 2.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 4.17.0. Tato faktura materiálu (BOM) by měla být nakonfigurována v <dependencyManagement> části vašeho pom.xml souboru. Tím se zajistí, že všechny závislosti Azure Spring Cloudu budou používat stejnou verzi. Další informace o verzi použité pro tuto kusovníku najdete v tématu Jakou verzi Spring Cloud Azure mám použít.

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

    spring:
      cloud:
        azure:
          keyvault:
            secret:
              endpoint:
    
  4. 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 client-id je a client-secret.

    az login
    
  5. Automatické dráty SecretClient na příslušných místech, 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 bude kromě automaticky nakonfigurované SecretClientfunkce poskytovat i některé 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

Podpora Azure

Poskytuje podporu automatické konfigurace služeb Azure, jako je Service Bus, Storage, Active Directory atd.

Microsoft Entra ID

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

Azure Key Vault

Poskytuje podporu poznámek Spring @Value pro integraci s tajnými klíči služby Azure Key Vault. Další informace najdete v tématu Správa tajných kódů Azure Spring Cloud.

Azure Storage

Poskytuje podporu architektury Spring Boot pro služby Azure Storage. Další informace najdete v tématu Zpracování prostředků Azure Spring Cloud.

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 lístky podpora 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.
  • Zapište problémy s GitHubem v úložišti Azure/azure-sdk-for-java. Problémy GitHubu používáme ke sledování chyb, otázek a žádostí o funkce. Problémy s GitHubem jsou bezplatné, ale doba odezvy není zaručená. Další informace najdete v tématu problémy s procesem podpory GitHubu.

Další kroky