Apa itu Spring Cloud Azure?
Spring Cloud Azure adalah proyek sumber terbuka yang membantu mempermudah penggunaan layanan Azure di aplikasi Spring.
Spring Cloud Azure adalah proyek sumber terbuka, dengan semua sumber daya tersedia untuk publik. Daftar berikut ini menyediakan tautan ke sumber daya ini:
- Kode sumber: Azure/azure-sdk-for-java.
- Sampel: Azure-Samples/azure-spring-boot-samples.
- Dokumentasi: Spring Cloud Azure.
Untuk apa Spring Cloud Azure digunakan?
Spring Cloud Azure dapat membantu mempermudah penyelesaian tugas berikut di aplikasi Spring:
- Mengelola properti konfigurasi dengan Azure App Configuration.
- Mengirim dan menerima pesan dengan Azure Event Hubs, Azure Bus Layanan, dan Azure Storage Queue.
- Mengelola rahasia dan sertifikat dengan Azure Key Vault.
- Mendukung masuk pengguna dengan akun kantor atau sekolah yang disediakan dengan ID Microsoft Entra.
- Mendukung masuk pengguna dengan akun sosial seperti Facebook dan Google dengan Azure Active Directory B2C.
- Melindungi API web Anda dan mengakses API yang dilindungi seperti Microsoft Graph untuk bekerja dengan data pengguna dan organisasi Anda dengan ID Microsoft Entra dan Azure Active Directory B2C.
- Menyimpan data terstruktur dengan Azure Cosmos DB.
- Menyimpan data yang tidak terstruktur seperti teks atau data biner dengan Azure Blob Storage.
- Menyimpan file dengan Azure Files.
Diagram berikut ini memberikan gambaran umum tentang fitur-fitur ini:
Manfaat menggunakan Spring Cloud Azure
Bagian berikut menunjukkan manfaat menggunakan Spring Cloud Azure. Di bagian ini, pengambilan rahasia yang disimpan di Azure Key Vault digunakan sebagai contoh. Bagian ini membandingkan perbedaan antara mengembangkan aplikasi Spring Boot dengan dan tanpa Spring Cloud Azure.
Tanpa Spring Cloud Azure
Tanpa Spring Cloud Azure, jika Anda ingin mengambil rahasia yang disimpan di Azure Key Vault, Anda perlu melakukan langkah-langkah berikut:
Tambahkan dependensi berikut ke file pom.xml Anda:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>
Buat
SecretClient
instans kelas dengan menggunakan kode yang mirip dengan contoh berikut: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(); } }
Hindari informasi pengodean keras seperti
client-id
danclient-secret
dengan membuat properti ini dapat dikonfigurasi, seperti yang ditunjukkan dalam contoh berikut:@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; } }
Perbarui kode aplikasi Anda seperti yang ditunjukkan dalam contoh ini:
@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()); } }
Tambahkan properti yang diperlukan ke file application.yml Anda, seperti yang diperlihatkan dalam contoh berikut:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:
Jika Anda perlu menggunakan
SecretClient
di beberapa tempat, tentukanSecretClient
kacang. Kemudian, kawatSecretClient
otomatis di tempat yang relevan.
Dengan Spring Cloud Azure
Dengan Spring Cloud Azure, jika Anda ingin mengambil rahasia yang disimpan di Azure Key Vault, persyaratannya lebih sederhana, seperti yang ditunjukkan pada langkah-langkah berikut:
Tambahkan dependensi berikut ke file pom.xml Anda:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>
Gunakan tagihan bahan (BOM) untuk mengelola versi Spring Cloud Azure, seperti yang ditunjukkan dalam contoh berikut:
<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>
Catatan
Jika Anda menggunakan Spring Boot 2.x, pastikan untuk mengatur versi ke
spring-cloud-azure-dependencies
4.17.0
. Bill of Material (BOM) ini harus dikonfigurasi di bagian<dependencyManagement>
file pom.xml Anda. Ini memastikan bahwa semua dependensi Spring Cloud Azure menggunakan versi yang sama. Untuk informasi selengkapnya tentang versi yang digunakan untuk BOM ini, lihat Versi Spring Cloud Azure mana yang Harus Saya Gunakan.Tambahkan properti berikut ke file application.yml:
spring: cloud: azure: keyvault: secret: endpoint:
Masuk dengan Azure CLI dengan menggunakan perintah berikut. Kredensial Anda kemudian akan disediakan oleh Azure CLI, sehingga tidak perlu menambahkan informasi kredensial lain seperti
client-id
danclient-secret
.az login
Kawat
SecretClient
otomatis di tempat yang relevan, seperti yang ditunjukkan dalam contoh berikut:@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 akan menyediakan beberapa fitur lain selain yang dikonfigurasi SecretClient
secara otomatis. Misalnya, Anda dapat menggunakan @Value
untuk mendapatkan nilai rahasia, seperti yang ditunjukkan dalam contoh berikut:
@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);
}
}
Komponen Spring Cloud Azure
Dukungan Azure
Menyediakan dukungan konfigurasi otomatis untuk Azure Services, seperti Bus Layanan, Storage, Active Directory, dan sebagainya.
Microsoft Entra ID
Menyediakan dukungan integrasi untuk Spring Security dengan ID Microsoft Entra untuk autentikasi. Untuk informasi selengkapnya, lihat Dukungan Spring Cloud Azure untuk Spring Security.
Azure Key Vault
Menyediakan dukungan anotasi Spring @Value
untuk integrasi dengan Rahasia Azure Key Vault. Untuk informasi selengkapnya, lihat Manajemen rahasia Spring Cloud Azure.
Azure Storage
Menyediakan dukungan Spring Boot untuk layanan Azure Storage. Untuk informasi selengkapnya, lihat Penanganan sumber daya Spring Cloud Azure.
Dapatkan dukungan
Jika Anda memerlukan dukungan untuk Spring Cloud Azure, Anda dapat meminta bantuan dengan cara berikut:
- Membuat tiket dukungan Azure. Pelanggan dengan paket dukungan Azure dapat membuka tiket dukungan Azure. Kami merekomendasikan opsi ini jika masalah Anda memerlukan perhatian segera.
- Masalah File GitHub di repositori Azure/azure-sdk-for-java. Kami menggunakan masalah GitHub untuk melacak bug, pertanyaan, dan permintaan fitur. Masalah GitHub gratis, tetapi waktu respons tidak dijamin. Untuk informasi selengkapnya, lihat Proses dukungan masalah GitHub.
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk