Spring Cloud Azure nedir?

Spring Cloud Azure, Spring uygulamalarında Azure hizmetlerinin kullanımını kolaylaştırmaya yardımcı olan açık kaynak bir projedir.

Spring Cloud Azure, tüm kaynakların genel kullanıma sunulduğu açık kaynak bir projedir. Aşağıdaki liste bu kaynaklara bağlantılar sağlar:

Spring Cloud Azure ne için kullanılır?

Spring Cloud Azure, Spring uygulamalarında aşağıdaki görevleri gerçekleştirmeyi kolaylaştırmaya yardımcı olabilir:

Aşağıdaki diyagramda bu özelliklere genel bir bakış sağlanır:

Spring Cloud Azure özelliklerine genel bakış sağlayan diyagram.

Spring Cloud Azure kullanmanın avantajları

Aşağıdaki bölümde Spring Cloud Azure kullanmanın avantajları gösterilmektedir. Bu bölümde, Örnek olarak Azure Key Vault'ta depolanan gizli dizilerin alınması kullanılmıştır. Bu bölüm, Spring Cloud Azure ile ve Spring Cloud Azure olmadan Spring Boot uygulaması geliştirme arasındaki farkları karşılaştırır.

Spring Cloud Azure olmadan

Spring Cloud Azure olmadan, Azure Key Vault'ta depolanan gizli dizileri almak istiyorsanız aşağıdaki adımları uygulamanız gerekir:

  1. pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:

    <dependency>
       <groupId>com.azure</groupId>
       <artifactId>azure-security-keyvault-secrets</artifactId>
       <version>4.5.2</version>
    </dependency>
    
  2. Aşağıdaki örneğe benzer bir kod kullanarak bir SecretClient sınıf örneği oluşturun:

    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. Aşağıdaki örnekte gösterildiği gibi bu özellikleri yapılandırılabilir hale getirerek ve client-secret gibi client-id sabit kodlama bilgilerinden kaçının:

    @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. Uygulama kodunuzu bu örnekte gösterildiği gibi güncelleştirin:

    @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. Aşağıdaki örnekte gösterildiği gibi gerekli özellikleri application.yml dosyanıza ekleyin:

    azure:
      keyvault:
        vault-url:
        tenant-id:
        client-id:
        client-secret:
    
  6. Birden çok yerde kullanmanız SecretClient gerekiyorsa, bir SecretClient fasulye tanımlayın. Ardından, ilgili yerlere otomatik kablo çekin SecretClient .

Spring Cloud Azure ile

Spring Cloud Azure ile, Azure Key Vault'ta depolanan gizli dizileri almak istiyorsanız, aşağıdaki adımlarda gösterildiği gibi gereksinimler daha basittir:

  1. pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:

    <dependencies>
      <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId>
      </dependency>
    </dependencies>
    
  2. Aşağıdaki örnekte gösterildiği gibi Spring Cloud Azure sürümünü yönetmek için bir ürün reçetesi (BOM) kullanın:

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

    Not

    Spring Boot 2.x kullanıyorsanız, sürümünü olarak 4.17.0ayarladığınızdan spring-cloud-azure-dependencies emin olun. Bu Ürün Reçetesi (BOM), pom.xml dosyanızın bölümünde yapılandırılmalıdır<dependencyManagement>. Bu, tüm Spring Cloud Azure bağımlılıklarının aynı sürümü kullanmasını sağlar. Bu ürün reçetesi için kullanılan sürüm hakkında daha fazla bilgi için bkz . Spring Cloud Azure'ın Hangi Sürümünü Kullanmalıyım.

  3. application.yml dosyanıza aşağıdaki özellikleri ekleyin:

    spring:
      cloud:
        azure:
          keyvault:
            secret:
              endpoint:
    
  4. Aşağıdaki komutu kullanarak Azure CLI ile oturum açın. Ardından kimlik bilgileriniz Azure CLI tarafından sağlanacağı için ve client-secretgibi client-id başka kimlik bilgileri eklemeniz gerekmez.

    az login
    
  5. Aşağıdaki örnekte gösterildiği gibi ilgili yerlere otomatik kablo SecretClient ekleyin:

    @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, otomatik olarak yapılandırılan SecretClientöğesinin yanı sıra bazı başka özellikler de sağlayacaktır. Örneğin, aşağıdaki örnekte gösterildiği gibi gizli dizi değerini almak için kullanabilirsiniz @Value :

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

}

Spring Cloud Azure bileşenleri

Azure desteği

Service Bus, Depolama, Active Directory gibi Azure Hizmetleri için otomatik yapılandırma desteği sağlar.

Microsoft Entra Kimlik

Kimlik doğrulaması için Microsoft Entra ID ile Spring Security için tümleştirme desteği sağlar. Daha fazla bilgi için bkz. Spring Security için Spring Cloud Azure desteği.

Azure Key Vault

Azure Key Vault Gizli Dizileri ile tümleştirme için Spring @Value ek açıklaması desteği sağlar. Daha fazla bilgi için bkz . Spring Cloud Azure gizli dizi yönetimi.

Azure Depolama

Azure Depolama hizmetleri için Spring Boot desteği sağlar. Daha fazla bilgi için bkz . Spring Cloud Azure kaynak işleme.

Destek alın

Spring Cloud Azure için desteğe ihtiyacınız varsa aşağıdaki yollarla yardım isteyebilirsiniz:

  • Azure desteği biletleri oluşturun. Azure desteği planı olan müşteriler bir Azure desteği bileti açabilir. Sorununuz hemen ilgilenilmesini gerektiriyorsa bu seçeneği öneririz.
  • Azure/azure-sdk-for-java deposundaki GitHub sorunlarını dosyala. Hataları, soruları ve özellik isteklerini izlemek için GitHub sorunlarını kullanırız. GitHub sorunları ücretsizdir ancak yanıt süresi garanti değildir. Daha fazla bilgi için bkz . GitHub sorunları destek süreci.

Sonraki adımlar