Co to jest platforma Spring Cloud Azure?
Spring Cloud Azure to projekt typu open source, który ułatwia korzystanie z usług platformy Azure w aplikacjach Spring.
Spring Cloud Azure to projekt typu open source ze wszystkimi zasobami dostępnymi publicznie. Poniższa lista zawiera linki do tych zasobów:
- Kod źródłowy: azure/azure-sdk-for-java.
- Przykłady: Azure-Samples/azure-spring-boot-samples.
- Dokumentacja: Spring Cloud Azure.
Do czego służy Spring Cloud Azure?
Platforma Spring Cloud Azure może ułatwić wykonywanie następujących zadań w aplikacjach Spring:
- Zarządzanie właściwościami konfiguracji za pomocą usługi Azure App Configuration.
- Wysyłanie i odbieranie komunikatów za pomocą usługi Azure Event Hubs, Azure Service Busi kolejki Azure Storage.
- Zarządzanie tajnymi sekretami i certyfikatami za pomocą usługi Azure Key Vault.
- Obsługa logowania użytkowników przy użyciu kont służbowych aprowizowania za pomocą identyfikatora Entra firmy Microsoft.
- Obsługa logowania użytkowników za pomocą kont społecznościowych, takich jak Facebook i Google, za pomocą usługi Azure Active Directory B2C.
- Ochrona internetowych interfejsów API i uzyskiwanie dostępu do chronionych interfejsów API, takich jak program Microsoft Graph, w celu pracy z danymi użytkowników i organizacji przy użyciu identyfikatora Entra firmy Microsoft i usługi Azure Active Directory B2C.
- Przechowywanie ustrukturyzowanych danych za pomocą usługi Azure Cosmos DB.
- Przechowywanie danych bez struktury, takich jak dane tekstowe lub binarne, za pomocą usługi Azure Blob Storage.
- Przechowywanie plików za pomocą usługi Azure Files.
Zalety korzystania z platformy Spring Cloud na platformie Azure
W poniższej sekcji przedstawiono korzyści wynikające z korzystania z platformy Azure Spring Cloud. W tej sekcji pobieranie wpisów tajnych przechowywanych w usłudze Azure Key Vault jest używane jako przykład. W tej sekcji porównano różnice między tworzeniem aplikacji Spring Boot z platformą Spring Cloud i bez platformy Azure.
Bez Spring Cloud Azure
Bez platformy Spring Cloud Azure, jeśli chcesz pobrać wpisy tajne przechowywane w usłudze Azure Key Vault, musisz wykonać następujące czynności:
Dodaj następujące zależności do pliku pom.xml:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>
Skonstruuj wystąpienie klasy
SecretClient
przy użyciu kodu podobnego do poniższego przykładu: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(); } }
Unikaj twardych informacji kodowania, takich jak
client-id
iclient-secret
, tworząc te właściwości konfigurowalne, jak pokazano w poniższym przykładzie:@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; } }
Zaktualizuj kod aplikacji, jak pokazano w tym przykładzie:
@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()); } }
Dodaj niezbędne właściwości do pliku application.yml, jak pokazano w poniższym przykładzie:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:
Jeśli musisz użyć
SecretClient
w wielu miejscach, zdefiniuj beanSecretClient
. Następnie automatycznie podłącz przewódSecretClient
w odpowiednich miejscach.
Z platformą Spring Cloud Na platformie Azure
Dzięki Spring Cloud Azure, jeśli chcesz pobrać wpisy tajne przechowywane w usłudze Azure Key Vault, wymagania są prostsze, jak pokazano w poniższych krokach:
Dodaj następujące zależności do pliku pom.xml:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>
Użyj bill of materials (BOM), aby zarządzać wersją Spring Cloud Azure, jak pokazano w poniższym przykładzie:
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.19.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Notatka
Jeśli używasz środowiska Spring Boot 2.x, ustaw wersję
spring-cloud-azure-dependencies
na4.19.0
. Zestawienie materiałowe (BOM) skonfiguruj w sekcji<dependencyManagement>
pliku pom.xml. Gwarantuje to, że wszystkie zależności Azure dla Spring Cloud korzystają z tej samej wersji. Aby uzyskać więcej informacji na temat wersji używanej dla tego BOM-u, zobacz Której wersji Spring Cloud Azure należy używać.Dodaj następujące właściwości do pliku application.yml:
spring: cloud: azure: keyvault: secret: endpoint:
Zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure przy użyciu następującego polecenia. Poświadczenia będą następnie udostępniane przez Azure CLI, więc nie będzie trzeba dodawać innych informacji o poświadczeniach, takich jak
client-id
iclient-secret
.az login
Poprowadź przewód
SecretClient
w odpowiednich miejscach zgodnie z poniższym przykładem.@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()); } }
Platforma Spring Cloud Azure udostępnia inne funkcje oprócz automatycznie skonfigurowanej SecretClient
. Na przykład możesz użyć @Value
, aby uzyskać tajną wartość, jak pokazano w poniższym przykładzie:
@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);
}
}
Składniki platformy Spring Cloud na platformie Azure
Pomoc techniczna platformy Azure
Zapewnia obsługę automatycznej konfiguracji dla usług platformy Azure, takich jak Service Bus, Storage, Active Directory itd.
Microsoft Entra ID
Zapewnia obsługę integracji rozwiązania Spring Security z identyfikatorem Entra firmy Microsoft na potrzeby uwierzytelniania. Aby uzyskać więcej informacji, zobacz Spring Cloud Azure support for Spring Security.
Azure Key Vault
Zapewnia obsługę adnotacji Spring @Value
na potrzeby integracji z tajemnicami Azure Key Vault. Aby uzyskać więcej informacji, zobacz Spring Cloud Azure secret management.
Azure Storage
Zapewnia obsługę platformy Spring Boot dla usług Azure Storage. Aby uzyskać więcej informacji, zobacz Spring Cloud Azure resource handling.
Uzyskiwanie pomocy technicznej
Jeśli potrzebujesz pomocy technicznej dla platformy Spring Cloud Azure, możesz poprosić o pomoc w następujący sposób:
- Twórz zgłoszenia do pomocy technicznej Azure. Klienci z planem pomocy technicznej Azure mogą złożyć zgłoszenie pomocy technicznej Azure. Zalecamy tę opcję, jeśli problem wymaga natychmiastowej uwagi.
- Spraw zgłoszenia GitHub w repozytorium Azure/azure-sdk-for-java. Używamy zgłoszeń GitHub do śledzenia błędów, pytań i próśb o nowe funkcje. Zgłoszenia w GitHubie są bezpłatne, ale czas odpowiedzi nie jest gwarantowany. Aby uzyskać więcej informacji, zobacz problemy z usługą GitHub — proces pomocy technicznej.