Co je Spring Cloud Azure?
Spring Cloud Azure je opensourcový projekt, který usnadňuje používání služeb Azure v aplikacích Spring.
Spring Cloud Azure je opensourcový projekt se všemi dostupnými prostředky pro veřejnost. Následující seznam obsahuje odkazy na tyto zdroje informací:
- Zdrojový kód: Azure/azure-sdk-for-java.
- Ukázky: Azure-Samples/azure-spring-boot-samples.
- Dokumentace: Spring Cloud Azure.
K čemu se Používá Spring Cloud Azure?
Spring Cloud Azure může usnadnit provádění následujících úloh v aplikacích Spring:
- Správa vlastností konfigurace pomocí nástroje Aplikace Azure Configuration
- Odesílání a příjem zpráv pomocí služby Azure Event Hubs, Azure Service Bus a fronty služby Azure Storage
- Správa tajných kódů a certifikátů pomocí služby Azure Key Vault
- Podpora přihlašování uživatelů pomocí pracovních nebo školních účtů zřízených pomocí Microsoft Entra ID
- Podpora přihlašování uživatelů pomocí sociálních účtů, jako je Facebook a Google s Azure Active Directory B2C
- Ochrana webových rozhraní API a přístup k chráněným rozhraním API, jako je Microsoft Graph, pro práci s daty uživatelů a organizace pomocí Microsoft Entra ID a Azure Active Directory B2C.
- Ukládání strukturovaných dat pomocí služby Azure Cosmos DB
- Ukládání nestrukturovaných dat, jako jsou textová nebo binární data, ve službě Azure Blob Storage
- Ukládání souborů pomocí azure Files
Následující diagram obsahuje přehled těchto funkcí:
Výhody používání Spring Cloud Azure
Následující část ukazuje výhody používání Spring Cloud Azure. V této části se jako příklad používá načítání tajných kódů uložených ve službě Azure Key Vault. Tato část porovnává rozdíly mezi vývojem aplikace Spring Boot a bez Platformy Spring Cloud v Azure.
Bez Spring Cloudu Azure
Pokud chcete načíst tajné kódy uložené ve službě Azure Key Vault, musíte bez Služby Spring Cloud Azure provést následující kroky:
Do souboru pom.xml přidejte následující závislosti:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>
SecretClient
Vytvořte instanci třídy pomocí kódu podobného následujícímu příkladu: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(); } }
Vyhněte se pevným kódováním informací, jako
client-id
je například aclient-secret
nastavení těchto vlastností, jak je znázorněno v následujícím příkladu:@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; } }
Aktualizujte kód aplikace, jak je znázorněno v tomto příkladu:
@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()); } }
Do souboru application.yml přidejte potřebné vlastnosti, jak je znázorněno v následujícím příkladu:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:
Pokud potřebujete použít
SecretClient
více míst, definujteSecretClient
bean. Pak automaticky drátíteSecretClient
na příslušných místech.
S Využitím Spring Cloudu Azure
Pokud chcete načíst tajné kódy uložené ve službě Azure Key Vault, jsou požadavky v Azure Azure Azure jednodušší, jak je znázorněno v následujících krocích:
Do souboru pom.xml přidejte následující závislosti:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>
Ke správě verze Azure Spring Cloud použijte fakturu (BOM), jak je znázorněno v následujícím příkladu:
<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>
Poznámka:
Pokud používáte Spring Boot 2.x, nezapomeňte nastavit
spring-cloud-azure-dependencies
verzi na4.17.0
. Tato faktura materiálu (BOM) by měla být nakonfigurována v<dependencyManagement>
části vašeho pom.xml souboru. Tím se zajistí, že všechny závislosti Azure Spring Cloudu budou používat stejnou verzi. Další informace o verzi použité pro tuto kusovníku najdete v tématu Jakou verzi Spring Cloud Azure mám použít.Do souboru application.yml přidejte následující vlastnosti:
spring: cloud: azure: keyvault: secret: endpoint:
Přihlaste se pomocí Azure CLI pomocí následujícího příkazu. Vaše přihlašovací údaje pak poskytne Azure CLI, takže nebude nutné přidávat další informace o přihlašovacích údaji, jako
client-id
je aclient-secret
.az login
Automatické dráty
SecretClient
na příslušných místech, jak je znázorněno v následujícím příkladu:@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 bude kromě automaticky nakonfigurované SecretClient
funkce poskytovat i některé další funkce. Můžete například použít @Value
k získání hodnoty tajného kódu, jak je znázorněno v následujícím příkladu:
@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);
}
}
Komponenty Spring Cloud Azure
Podpora Azure
Poskytuje podporu automatické konfigurace služeb Azure, jako je Service Bus, Storage, Active Directory atd.
Microsoft Entra ID
Poskytuje podporu integrace pro Spring Security s ID Microsoft Entra pro ověřování. Další informace najdete v tématu Spring Cloud podpora Azure for Spring Security.
Azure Key Vault
Poskytuje podporu poznámek Spring @Value
pro integraci s tajnými klíči služby Azure Key Vault. Další informace najdete v tématu Správa tajných kódů Azure Spring Cloud.
Azure Storage
Poskytuje podporu architektury Spring Boot pro služby Azure Storage. Další informace najdete v tématu Zpracování prostředků Azure Spring Cloud.
Získání podpory
Pokud potřebujete podporu pro Spring Cloud Azure, můžete požádat o pomoc následujícími způsoby:
- Vytvořte lístky podpora Azure. Zákazníci s plánem podpora Azure mohou otevřít lístek podpora Azure. Tuto možnost doporučujeme, pokud váš problém vyžaduje okamžitou pozornost.
- Zapište problémy s GitHubem v úložišti Azure/azure-sdk-for-java. Problémy GitHubu používáme ke sledování chyb, otázek a žádostí o funkce. Problémy s GitHubem jsou bezplatné, ale doba odezvy není zaručená. Další informace najdete v tématu problémy s procesem podpory GitHubu.
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro