Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Spring Cloud Azure é um projeto open source que ajuda a facilitar a utilização dos serviços Azure em aplicações Spring.
Spring Cloud Azure é um projeto open source, com todos os recursos disponíveis ao público. A lista a seguir fornece links para esses recursos:
- Código-fonte: Azure/azure-sdk-for-java.
- Amostras: Azure-Samples/azure-spring-boot-samples.
- Documentação: Spring Cloud Azure.
Para que serve o Spring Cloud Azure?
O Spring Cloud Azure pode ajudar a facilitar a realização das seguintes tarefas nas aplicações Spring:
- Gerir propriedades de configuração com Azure App Configuration.
- Enviar e receber mensagens com Azure Event Hubs, Azure Service Bus e Azure Storage Fila.
- Gerir segredos e certificados com Azure Key Vault.
- Suportar o login de utilizadores com contas de trabalho ou escola provisionadas com Microsoft Entra ID.
- Suportar o login dos utilizadores com contas sociais como Facebook e Google com Azure Active Directory B2C.
- Proteger as suas APIs web e aceder a APIs protegidas como Microsoft Graph para trabalhar com os dados dos seus utilizadores e organizações com Microsoft Entra ID e Azure Active Directory B2C.
- Armazenar dados estruturados com Azure Cosmos DB.
- Armazenar dados não estruturados como texto ou dados binários com Azure Blob Storage.
- Armazenar ficheiros com Azure Files.
Benefícios de usar o Spring Cloud Azure
A secção seguinte demonstra os benefícios de utilizar o Spring Cloud Azure. Nesta secção, a recuperação de segredos armazenados no Azure Key Vault é usada como exemplo. Esta secção compara as diferenças entre desenvolver uma aplicação Spring Boot com e sem Spring Cloud Azure.
Sem Spring Cloud Azure
Sem o Spring Cloud Azure, se quiser recuperar segredos armazenados no Azure Key Vault, precisa de seguir os seguintes passos:
Adicione as seguintes dependências ao seu 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 exemplo a seguir: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 seu arquivo application.yml , conforme mostrado no exemplo a seguir:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:Se precisa usar
SecretClientem vários lugares, defina um beanSecretClient. Em seguida, interligue automaticamente oSecretClientnos locais relevantes.
Utilizando o Spring Cloud Azure
Com o Spring Cloud Azure, se quiser recuperar segredos armazenados no Azure Key Vault, os requisitos são mais simples, como mostrado nos passos seguintes:
Adicione as seguintes dependências ao seu arquivo pom.xml:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>Use uma lista de materiais (BOM) para gerir a versão Spring Cloud Azure, como mostrado no seguinte exemplo:
<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>
Observação
Se estiveres a usar o Spring Boot 4.0.x, certifica-te de definir a spring-cloud-azure-dependencies versão para 7.1.0.
Se estiveres a usar o Spring Boot 3.5.x, certifica-te de definir a spring-cloud-azure-dependencies versão para 6.1.0.
Se estiveres a usar o Spring Boot 3.1.x-3.5.x, certifica-te de definir a spring-cloud-azure-dependencies versão para 5.25.0.
Se você estiver usando o Spring Boot 2.x, certifique-se de definir a versão spring-cloud-azure-dependencies como 4.20.0.
Esta lista de materiais (BOM) deve ser configurada na seção <dependencyManagement> do seu arquivo pom.xml. Isto garante que todas as dependências do Spring Cloud Azure usam a mesma versão.
Para mais informações sobre a versão usada nesta BOM, consulte Qual Versão do Spring Cloud Azure Devo Usar.
Adicione as seguintes propriedades ao seu arquivo application.yml :
spring: cloud: azure: keyvault: secret: endpoint:Inicie sessão com Azure CLI usando o seguinte comando. As suas credenciais serão então fornecidas pela Azure CLI, pelo que não será necessário adicionar outras informações de credencial como
client-ideclient-secret.az loginLigue automaticamente o fio
SecretClientnos lugares 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 irá fornecer algumas outras funcionalidades além do SecretClient auto-configurado. Por exemplo, você pode usar @Value para obter o valor secreto, 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 auto-configuração para Serviços Azure, como Service Bus, Storage, Active Directory, entre outros.
Microsoft Entra ID
Fornece suporte de integração para Spring Security com o Microsoft Entra ID para autenticação. Para obter mais informações, consulte suporte do Spring Cloud Azure para o Spring Security.
Azure Key Vault
Fornece suporte de anotação Spring @Value para integração com Azure Key Vault Secrets. Para mais informações, consulte Spring Cloud Azure gestão de segredos.
Azure Storage
Fornece suporte para Spring Boot para serviços do Azure Storage. Para mais informações, consulte Spring Cloud Azure gestão de recursos.
Obter suporte
Se precisar de apoio para o Spring Cloud Azure, pode pedir ajuda das seguintes formas:
- Crie tickets de suporte da Azure. Clientes com um plano Azure support podem abrir um ticket Azure support. Recomendamos esta opção se o seu problema exigir atenção imediata.
- Registe problemas no GitHub no repositório Azure/azure-sdk-for-java. Usamos issues do GitHub para acompanhar bugs, perguntas e pedidos de funcionalidades. Os issues no GitHub são gratuitos, mas o tempo de resposta não é garantido. Para mais informações, consulte GitHub processo de suporte a problemas.