Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Spring Cloud Azure är ett open source projekt som gör det enklare att använda Azure-tjänster i Spring program.
Spring Cloud Azure är ett open source projekt med alla resurser tillgängliga för allmänheten. Följande lista innehåller länkar till dessa resurser:
- Källkod: Azure/azure-sdk-for-java.
- Exempel: Azure-Samples/azure-spring-boot-samples.
- Dokumentation: Spring Cloud Azure.
Vad används Spring Cloud Azure för?
Spring Cloud Azure kan göra det enklare att utföra följande uppgifter i Spring-program:
- Hantera konfigurationsegenskaper med Azure App Configuration.
- Skicka och ta emot meddelanden med Azure Event Hubs, Azure Service Bus och Azure Storage Queue.
- Hantera hemligheter och certifikat med Azure Key Vault.
- Stöd för användarinloggning med arbets- eller skolkonton som etablerats med Microsoft Entra ID.
- Stöd för användarinloggning med sociala konton som Facebook och Google med Azure Active Directory B2C.
- Skydda dina webb-API:er och få åtkomst till skyddade API:er som Microsoft Graph för att arbeta med användarnas och organisationens data med Microsoft Entra ID och Azure Active Directory B2C.
- Lagra strukturerade data med Azure Cosmos DB.
- Lagra ostrukturerade data som text eller binära data med Azure Blob Storage.
- Lagra filer med Azure Files.
Fördelar med att använda Spring Cloud Azure
I följande avsnitt visas fördelarna med att använda Spring Cloud Azure. I det här avsnittet används hämtningen av hemligheter som lagras i Azure Key Vault som ett exempel. I det här avsnittet jämförs skillnaderna mellan att utveckla ett Spring Boot-program med och utan Spring Cloud-Azure.
Utan Spring Cloud-Azure
Utan Spring Cloud-Azure behöver du följande steg om du vill hämta hemligheter som lagras i Azure Key Vault:
Lägg till följande beroenden i din pom.xml-fil:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>Skapa en
SecretClientklassinstans med hjälp av kod som liknar följande exempel: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(); } }Undvik hård kodningsinformation som
client-idochclient-secretgenom att göra dessa egenskaper konfigurerbara, som du ser i följande exempel:@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; } }Uppdatera programkoden enligt det här exemplet:
@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()); } }Lägg till de nödvändiga egenskaperna i din application.yml-fil , som du ser i följande exempel:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:Om du behöver använda
SecretClientpå flera platser definierar du enSecretClientböna. Sedan anslutSecretClientautomatiskt i relevanta platser.
Med Spring Cloud Azure
Med Spring Cloud Azure är kraven enklare om du vill hämta hemligheter som lagras i Azure Key Vault, enligt följande steg:
Lägg till följande beroenden i din pom.xml-fil:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>Använd en strukturlista (BOM) för att hantera Spring Cloud Azure-versionen, som visas i följande exempel.
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Not
Om du använder Spring Boot 4.0.x måste du ange spring-cloud-azure-dependencies versionen till 7.1.0.
Om du använder Spring Boot 3.5.x måste du ange spring-cloud-azure-dependencies versionen till 6.1.0.
Om du använder Spring Boot 3.1.x-3.5.x måste du ange spring-cloud-azure-dependencies versionen till 5.25.0.
Om du använder Spring Boot 2.x måste du ange spring-cloud-azure-dependencies versionen till 4.20.0.
Den här materialspecifikationen (BOM) bör konfigureras i avsnittet <dependencyManagement> i din pom.xml-fil. Detta säkerställer att alla Spring Cloud-Azure beroenden använder samma version.
Mer information om vilken version som används för denna BOM finns i dokumentationen Which Version of Spring Cloud Azure Should I Use.
Lägg till följande egenskaper i din application.yml-fil :
spring: cloud: azure: keyvault: secret: endpoint:Logga in med Azure CLI med hjälp av följande kommando. Dina autentiseringsuppgifter tillhandahålls sedan av Azure CLI, så du behöver inte lägga till annan information om autentiseringsuppgifter som
client-idochclient-secret.az loginAuto-wire
SecretClientpå de relevanta ställena, enligt följande exempel:@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 tillhandahåller några andra funktioner förutom den automatiskt konfigurerade SecretClient. Du kan till exempel använda @Value för att hämta det hemliga värdet, som du ser i följande exempel:
@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);
}
}
Komponenter i Spring Cloud-Azure
Azure support
Ger stöd för automatisk konfiguration för Azure Services, till exempel Service Bus, Lagring, Active Directory och så vidare.
Microsoft Entra ID
Tillhandahåller integrationsstöd för Spring Security med Microsoft Entra ID för autentisering. Mer information finns i Spring Cloud Azure support for Spring Security.
Azure Key Vault
Tillhandahåller stöd för Spring @Value-anteckningar för integrering med Azure Key Vault Secrets. Mer information finns i Spring Cloud Azure secret management.
Azure Storage
Tillhandahåller Spring Boot-stöd för Azure Storage tjänster. Mer information finns i Spring Cloud Azure resurshantering.
Få support
Om du behöver support för Spring Cloud Azure kan du be om hjälp på följande sätt:
- Skapa Azure supportärenden. Kunder med en Azure support plan kan öppna en Azure support-biljett. Vi rekommenderar det här alternativet om problemet kräver omedelbar uppmärksamhet.
- Skapa GitHub-ärenden i GitHub-repot Azure/azure-sdk-for-java. Vi använder GitHub problem för att spåra buggar, frågor och funktionsförfrågningar. GitHub problem är kostnadsfria, men svarstiden är inte garanterad. Mer information finns i supportprocessen för GitHub-ärenden.