Mi az a Spring Cloud Azure?

A Spring Cloud Azure egy nyílt forráskód projekt, amely megkönnyíti az Azure-szolgáltatások használatát Spring-alkalmazásokban.

A Spring Cloud Azure egy nyílt forráskód projekt, amelynek minden erőforrása elérhető a nyilvánosság számára. Az alábbi lista az alábbi erőforrásokra mutató hivatkozásokat tartalmaz:

Mire használható a Spring Cloud Azure?

Az Azure Spring Cloud segítségével egyszerűbben végezheti el a következő feladatokat a Spring-alkalmazásokban:

  • Konfigurációs tulajdonságok kezelése Azure-alkalmazás Konfigurációval.
  • Üzenetek küldése és fogadása az Azure Event Hubs, az Azure Service Bus és az Azure Storage Queue használatával.
  • Titkos kódok és tanúsítványok kezelése az Azure Key Vaulttal.
  • A Microsoft Entra ID azonosítóval kiépített munkahelyi vagy iskolai fiókokkal való felhasználói bejelentkezés támogatása.
  • A felhasználók olyan közösségi fiókokkal való bejelentkezésének támogatása, mint a Facebook és a Google az Azure Active Directory B2C-vel.
  • A webes API-k védelme és a microsoft graphhoz hasonló védett API-k elérése a felhasználók és a szervezet adatainak a Microsoft Entra ID-val és az Azure Active Directory B2C-vel való használatához.
  • Strukturált adatok tárolása az Azure Cosmos DB-vel.
  • Strukturálatlan adatok, például szöveges vagy bináris adatok tárolása az Azure Blob Storage-ban.
  • Fájlok tárolása az Azure Files használatával.

Az alábbi diagram áttekintést nyújt az alábbi funkciókról:

A Spring Cloud Azure funkcióinak áttekintését bemutató ábra.

A Spring Cloud Azure használatának előnyei

Az alábbi szakasz a Spring Cloud Azure használatának előnyeit mutatja be. Ebben a szakaszban az Azure Key Vaultban tárolt titkos kulcsok lekérését használjuk példaként. Ez a szakasz a Spring Boot-alkalmazások Spring Cloud Azure-beli és anélküli fejlesztése közötti különbségeket hasonlítja össze.

Spring Cloud Azure nélkül

A Spring Cloud Azure nélkül, ha le szeretné kérni az Azure Key Vaultban tárolt titkos kulcsokat, a következő lépéseket kell elvégeznie:

  1. Adja hozzá a következő függőségeket a pom.xml fájlhoz:

    <dependency>
       <groupId>com.azure</groupId>
       <artifactId>azure-security-keyvault-secrets</artifactId>
       <version>4.5.2</version>
    </dependency>
    
  2. Hozzon létre egy osztálypéldányt SecretClient az alábbi példához hasonló kód használatával:

    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. Kerülje a kemény kódolással kapcsolatos információkat, például client-idclient-secret és konfigurálhatóvá teszi ezeket a tulajdonságokat az alábbi példában látható módon:

    @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. Frissítse az alkalmazáskódot az alábbi példában látható módon:

    @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. Adja hozzá a szükséges tulajdonságokat a application.yml fájlhoz az alábbi példában látható módon:

    azure:
      keyvault:
        vault-url:
        tenant-id:
        client-id:
        client-secret:
    
  6. Ha több helyen kell használnia SecretClient , adjon meg egy babot SecretClient . Ezután az auto-wire SecretClient a megfelelő helyeken.

A Spring Cloud Azure-ral

A Spring Cloud Azure esetében, ha le szeretné kérni az Azure Key Vaultban tárolt titkos kulcsokat, a követelmények egyszerűbbek, ahogyan az alábbi lépésekben látható:

  1. Adja hozzá a következő függőségeket a pom.xml fájlhoz:

    <dependencies>
      <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId>
      </dependency>
    </dependencies>
    
  2. A Spring Cloud Azure-verzió kezeléséhez használjon anyagjegyzéket (BOM) a következő példában látható módon:

    <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>
    

    Feljegyzés

    Ha Spring Boot 2.x-et használ, mindenképpen állítsa be a verziót 4.17.0.spring-cloud-azure-dependencies Ezt az anyagjegyzéket (BOM) a <dependencyManagement> pom.xml fájl szakaszában kell konfigurálni. Ez biztosítja, hogy minden Spring Cloud Azure-függőség ugyanazt a verziót használja. A BOM-hez használt verzióról további információt a Spring Cloud Azure melyik verzióját érdemes használni.

  3. Adja hozzá a következő tulajdonságokat a application.yml fájlhoz:

    spring:
      cloud:
        azure:
          keyvault:
            secret:
              endpoint:
    
  4. Jelentkezzen be az Azure CLI-vel az alábbi paranccsal. A hitelesítő adatokat ezután az Azure CLI adja meg, így nem kell más hitelesítő adatokat, például client-id és client-secret.

    az login
    
  5. Auto-wire SecretClient a megfelelő helyeken, ahogy az alábbi példában látható:

    @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());
        }
    }
    

A Spring Cloud Azure az automatikusan konfigurált SecretClientfunkciókon kívül további funkciókat is biztosít. A titkos kulcs értékét például a következő példában látható módon szerezheti @Value be:

@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);
    }

}

A Spring Cloud Azure összetevői

Azure-támogatás

Automatikus konfigurációs támogatást nyújt az Azure Serviceshez, például a Service Bushoz, a Storage-hoz, az Active Directoryhoz stb.

Microsoft Entra ID

Integrációs támogatást nyújt a Spring Securityhez a Microsoft Entra-azonosítóval a hitelesítéshez. További információ: Spring Cloud Azure-támogatás a Spring Securityhez.

Azure Key Vault

Spring-széljegyzet-támogatást @Value nyújt az Azure Key Vault titkos kulcsaival való integrációhoz. További információ: Spring Cloud Azure titkos kódok kezelése.

Azure Storage

Spring Boot-támogatást kínál az Azure Storage-szolgáltatásokhoz. További információ: Spring Cloud Azure-erőforrás-kezelés.

Támogatás kérése

Ha segítségre van szüksége a Spring Cloud Azure-hoz, az alábbi módokon kérhet segítséget:

  • Hozzon létre Azure-támogatás jegyeket. Az Azure-támogatás csomaggal rendelkező ügyfelek megnyithatnak egy Azure-támogatás jegyet. Ezt a lehetőséget akkor javasoljuk, ha a probléma azonnali figyelmet igényel.
  • GitHub-problémák az Azure/azure-sdk-for-java adattárban. A GitHub-problémákat a hibák, kérdések és funkciókérések nyomon követésére használjuk. A GitHub-problémák ingyenesek, de a válaszidő nem garantált. További információ: GitHub-problémák támogatási folyamata.

Következő lépések