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:
- Kaynak kodu: Azure/azure-sdk-for-java.
- Örnekler: Azure-Samples/azure-spring-boot-samples.
- Belgeler: Spring Cloud Azure.
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:
- Azure Uygulaması Yapılandırması ile yapılandırma özelliklerini yönetme.
- Azure Event Hubs, Azure Service Bus ve Azure Depolama Kuyruğu ile ileti gönderme ve alma.
- Azure Key Vault ile gizli dizileri ve sertifikaları yönetme.
- Microsoft Entra Id ile sağlanan iş veya okul hesaplarıyla kullanıcı oturum açma desteği.
- Azure Active Directory B2C ile Facebook ve Google gibi sosyal hesaplarla kullanıcı oturum açma desteği.
- Microsoft Entra Id ve Azure Active Directory B2C ile kullanıcılarınızın ve kuruluşunuzun verileriyle çalışmak için web API'lerinizi koruma ve Microsoft Graph gibi korumalı API'lere erişme.
- Yapılandırılmış verileri Azure Cosmos DB ile depolama.
- Metin veya ikili veriler gibi yapılandırılmamış verileri Azure Blob Depolama ile depolama.
- dosyaları Azure Dosyalar ile depolama.
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:
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>
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(); } }
Aşağıdaki örnekte gösterildiği gibi bu özellikleri yapılandırılabilir hale getirerek ve
client-secret
gibiclient-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; } }
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()); } }
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:
Birden çok yerde kullanmanız
SecretClient
gerekiyorsa, birSecretClient
fasulye tanımlayın. Ardından, ilgili yerlere otomatik kablo çekinSecretClient
.
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:
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>
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.18.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.19.0
ayarladığınızdanspring-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.application.yml dosyanıza aşağıdaki özellikleri ekleyin:
spring: cloud: azure: keyvault: secret: endpoint:
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-secret
gibiclient-id
başka kimlik bilgileri eklemeniz gerekmez.az login
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.