Intenta entender el código correctamente antes de aplicarlo a tu trabajo si ttienes algo que aportar puedes comentarlo.
Solución:
Como señaló Nicoll, con Spring Cloud Vault 3.0 y Spring Boot 2.4, la inicialización del contexto de arranque (bootstrap.yml
, bootstrap.properties
) de fuentes de propiedad fue obsoleto. Esto se puede arreglar de una de las 2 maneras.
- Use Spring Boot 2.4.0 Config Data API para importar la configuración desde Vault (preferido)
- Procesamiento heredado: habilite el contexto de arranque configurando la propiedad de configuración
spring.cloud.bootstrap.enabled=true
o incluyendo la dependencia
org.springframework.cloud
spring-cloud-starter-bootstrap
1. Utilice la API de datos de configuración de Spring Boot 2.4.0 (preferido)
Muevete bootstrap.yml configuración a aplicación.yml y el archivo actualizado se ve a continuación
aplicación.yml
spring:
cloud:
vault:
authentication: APPROLE
app-role:
role-id: $role-id
secret-id: $secret-id
role: pres-read
app-role-path: approle
uri: $vault-server
connection-timeout: 5000
read-timeout: 15000
config:
import: vault://secret/app/pres/
Y defina perfiles individuales como se muestra a continuación. Agregar spring.config.import: vault://secret/app/pres/demo
propiedad.
aplicación-demo.yml
## Server Properties
server:
port: 8081
spring:
config:
import: vault://secret/app/pres/demo
datasource:
username: $pres.db.username
password: $pres.db.password
url: $pres.db.url
driver-class-name: com.mysql.cj.jdbc.Driver
Repita el mismo proceso para todos los perfiles como dev, test, qc, staging y prod.
2. Procesamiento heredado:
Agregue la siguiente dependencia si aún desea usar bootstrap.yml
org.springframework.cloud
spring-cloud-starter-bootstrap
al proyecto El problema se resolverá.
Consulte los documentos de Spring Cloud Vault para obtener más información.
Pasé un día entero tratando de resolver este problema. Para todos los que están siguiendo tutoriales en la nube desactualizados: – desde springboot 2.4 se debe agregar la dependencia del iniciador de arranque, para seguir el tutorial para usar bootstrap.properties (bootstrap.yml) para la configuración externa.
org.springframework.cloud
spring-cloud-starter-bootstrap