Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Spring Cloud Azure é um projeto open source que ajuda a facilitar o uso de serviços Azure em aplicativos Spring.
O Spring Cloud Azure é um projeto open source, com todos os recursos disponíveis para o público. A lista a seguir fornece links para esses recursos:
- Código-fonte: Azure/azure-sdk-for-java.
- Exemplos: Azure-Samples/azure-spring-boot-samples.
- Documentação: Spring Cloud Azure.
Para que o Spring Cloud Azure é usado?
O Spring Cloud Azure pode ajudar a facilitar a realização das seguintes tarefas em aplicativos Spring:
- Gerenciando propriedades de configuração com Azure App Configuration.
- Enviar e receber mensagens com Azure Event Hubs, Azure Service Bus e Azure Storage Queue.
- Gerenciando segredos e certificados com Azure Key Vault.
- Suporte ao login do usuário com contas corporativas ou de estudante provisionadas com Microsoft Entra ID.
- Suporte ao login de usuários com contas sociais como Facebook e Google com Azure Active Directory B2C.
- Proteger suas APIs Web e acessar APIs protegidas como Microsoft Graph para trabalhar com os dados dos seus usuários e da sua organização usando Microsoft Entra ID e Azure Active Directory B2C.
- Armazenando dados estruturados com Azure Cosmos DB.
- Armazenando dados não estruturados, como texto ou dados binários com Azure Blob Storage.
- Armazenando arquivos com Azure Files.
Benefícios de usar o Spring Cloud Azure
A seção a seguir demonstra os benefícios de usar o Spring Cloud Azure. Nesta seção, a recuperação de segredos armazenados em Azure Key Vault é usada como exemplo. Esta seção compara as diferenças entre o desenvolvimento de um aplicativo Spring Boot com e sem o Spring Cloud Azure.
Sem o Spring Cloud Azure
Sem o Spring Cloud Azure, se você quiser recuperar segredos armazenados no Azure Key Vault, precisará das seguintes etapas:
Adicione as seguintes dependências ao arquivo pom.xml:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>Construa uma instância de classe
SecretClientusando um código semelhante ao seguinte exemplo: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(); } }Evite informações de codificação rígida, como
client-ideclient-secret, tornando essas propriedades configuráveis, conforme mostrado no exemplo a seguir:@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; } }Atualize o código do aplicativo, conforme mostrado neste exemplo:
@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()); } }Adicione as propriedades necessárias ao arquivo application.yml, conforme mostrado no exemplo a seguir:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:Se você precisar usar
SecretClientem vários lugares, defina umSecretClientbean. Em seguida, conecte automaticamenteSecretClientaos locais relevantes.
Com o Spring Cloud Azure
Com o Spring Cloud Azure, se você quiser recuperar segredos armazenados em Azure Key Vault, os requisitos serão mais simples, conforme mostrado nas seguintes etapas:
Adicione as seguintes dependências ao arquivo pom.xml:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>Use uma fatura de materiais (BOM) para gerenciar a versão do Spring Cloud Azure, conforme mostrado no exemplo a seguir:
<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>
Nota
Se você estiver usando o Spring Boot 4.0.x, defina a spring-cloud-azure-dependencies versão como 7.1.0.
Se você estiver usando o Spring Boot 3.5.x, defina a spring-cloud-azure-dependencies versão como 6.1.0.
Se você estiver usando o Spring Boot 3.1.x-3.5.x, defina a spring-cloud-azure-dependencies versão como 5.25.0.
Se você estiver usando o Spring Boot 2.x, certifique-se de definir a spring-cloud-azure-dependencies versão como 4.20.0.
Esta lista de materiais (BOM) deve ser configurada na <dependencyManagement> seção do arquivo pom.xml. Isso garante que todas as dependências de Azure do Spring Cloud estejam usando a mesma versão.
Para obter mais informações sobre a versão usada para este BOM, consulte Which Version of Spring Cloud Azure Should I Use.
Adicione as seguintes propriedades ao arquivo application.yml:
spring: cloud: azure: keyvault: secret: endpoint:Entre com Azure CLI usando o comando a seguir. Suas credenciais serão fornecidas por Azure CLI, portanto, não haverá necessidade de adicionar outras informações de credencial, como
client-ideclient-secret.az loginConecte automaticamente o
SecretClientaos locais relevantes, conforme mostrado no exemplo a seguir:@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()); } }
O Spring Cloud Azure fornecerá alguns outros recursos além do SecretClient configurado automaticamente. Por exemplo, você pode usar @Value para obter o valor do segredo, conforme mostrado no exemplo a seguir:
@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);
}
}
Componentes do Spring Cloud Azure
Suporte do Azure
Fornece suporte de configuração automática para Azure Services, como Service Bus, Armazenamento, Active Directory e assim por diante.
Microsoft Entra ID
Fornece suporte de integração para o Spring Security com Microsoft Entra ID para autenticação. Para obter mais informações, consulte Spring Cloud Azure support for Spring Security.
Azure Key Vault
Fornece suporte à anotação Spring @Value para integração com Azure Key Vault Secrets. Para obter mais informações, consulte Spring Cloud Azure secret management.
Azure Storage
Fornece suporte do Spring Boot para serviços de Azure Storage. Para obter mais informações, consulte Spring Cloud Azure resource handling.
Obter suporte
Se você precisar de suporte para o Spring Cloud Azure, poderá pedir ajuda das seguintes maneiras:
- Crie tíquetes de suporte do Azure. Os clientes com um plano de suporte do Azure podem abrir um tíquete de suporte do Azure. Recomendamos essa opção se o problema exigir atenção imediata.
- Registre problemas no GitHub no repositório Azure/azure-sdk-for-java. Usamos issues do GitHub para rastrear bugs, perguntas e pedidos de funcionalidades. Issues do GitHub são gratuitos, mas o tempo de resposta não é garantido. Para obter mais informações, consulte GitHub processo de suporte a problemas.