Co to jest platforma Spring Cloud Azure?
Spring Cloud Azure to projekt open source, który ułatwia korzystanie z usług platformy Azure w aplikacjach spring.
Spring Cloud Azure to projekt 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 platforma 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ą Azure App Configuration.
- Wysyłanie i odbieranie komunikatów za pomocą Azure Event Hubs, Azure Service Bus i kolejki usługi Azure Storage.
- Zarządzanie wpisami tajnymi i certyfikatami za pomocą usługi Azure Key Vault.
- Obsługa logowania użytkowników przy użyciu kont służbowych aprowizowania w usłudze Azure Active Directory.
- Obsługa logowania użytkowników przy użyciu kont społecznościowych, takich jak Facebook i Google, przy użyciu 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, do pracy z danymi użytkowników i organizacji przy użyciu usług Azure Active Directory i Azure Active Directory B2C.
- Przechowywanie danych strukturalnych za pomocą usługi Azure Cosmos DB.
- Przechowywanie danych bez struktury, takich jak dane tekstowe lub binarne, przy użyciu Azure Blob Storage.
- Przechowywanie plików za pomocą Azure Files.
Na poniższym diagramie przedstawiono omówienie tych funkcji:
Zalety korzystania z platformy Spring Cloud na platformie Azure
W poniższej sekcji przedstawiono zalety 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 platformy Azure Spring Cloud
Bez platformy Azure Spring Cloud, 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
SecretClient
wystąpienie klasy 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 kodowania twardego informacji, takich jak
client-id
iclient-secret
przez skonfigurowanie tych właściwości, 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 fasolęSecretClient
. Następnie automatyczne przewodySecretClient
w odpowiednich miejscach.
Z platformą Spring Cloud na platformie 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 rachunku materiałów (BOM) do zarządzania wersją platformy Azure Spring Cloud, jak pokazano w poniższym przykładzie:
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>4.11.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Uwaga
Jeśli używasz środowiska Spring Boot 3.x, pamiętaj, aby ustawić
spring-cloud-azure-dependencies
wersję na5.5.0
. Aby uzyskać więcej informacji na tematspring-cloud-azure-dependencies
wersji, zobacz Której wersji platformy Spring Cloud platformy 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 interfejs wiersza polecenia platformy Azure, więc nie będzie trzeba dodawać innych informacji o poświadczeniach, takich jak
client-id
iclient-secret
.az login
Automatyczne przewody
SecretClient
w odpowiednich miejscach, jak pokazano w poniższym przykładzie:@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 Azure Spring Cloud udostępnia inne funkcje oprócz funkcji skonfigurowanych SecretClient
automatycznie. Na przykład możesz użyć @Value
polecenia , aby uzyskać wartość wpisu tajnego, 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.
Azure Active Directory
Zapewnia obsługę integracji rozwiązania Spring Security z usługą Azure Active Directory na potrzeby uwierzytelniania. Aby uzyskać więcej informacji, zobacz Spring Cloud pomoc techniczna platformy Azure for Spring Security.
W usłudze Azure Key Vault
Zapewnia obsługę adnotacji spring @Value
na potrzeby integracji z wpisami tajnymi usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz Spring Cloud Azure secret management (Zarządzanie wpisami tajnymi platformy Azure w usłudze Spring Cloud).
Azure Storage
Zapewnia obsługę rozwiązania Spring Boot dla usług Azure Storage. Aby uzyskać więcej informacji, zobacz Spring Cloud Azure resource handling (Obsługa zasobów platformy Azure w usłudze Spring Cloud).
Uzyskiwanie pomocy technicznej
Jeśli potrzebujesz pomocy technicznej dla platformy Azure Spring Cloud, możesz poprosić o pomoc w następujący sposób:
- Utwórz bilety pomoc techniczna platformy Azure. Klienci z planem pomoc techniczna platformy Azure mogą otworzyć bilet pomoc techniczna platformy Azure. Zalecamy tę opcję, jeśli twój problem wymaga natychmiastowej uwagi.
- Problemy z usługą GitHub w repozytorium Azure/azure-sdk-for-java. Używamy problemów z usługą GitHub do śledzenia usterek, pytań i żądań funkcji. Problemy z usługą GitHub są bezpłatne, ale czas odpowiedzi nie jest gwarantowany. Aby uzyskać więcej informacji, zobacz Proces obsługi problemów z usługą GitHub.