Compartir a través de


Enlace de una instancia de Azure Database for PostgreSQL con una aplicación en Azure Spring Apps

Nota:

Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de jubilación de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para obtener más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan de consumo estándar y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el consumo estándar de Azure Spring Apps y el plan dedicado a Azure Container Apps.

Este artículo se aplica a: ✔️ Java ✔️ C#

La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise

Con Azure Spring Apps puede enlazar determinados servicios de Azure con sus aplicaciones automáticamente, en lugar de tener que configurar manualmente la aplicación Spring Boot. En este artículo se muestra cómo enlazar una aplicación a una instancia de Azure Database for PostgreSQL.

En este artículo, incluiremos dos métodos de autenticación: autenticación de Microsoft Entra y autenticación de PostgreSQL. La pestaña Sin contraseña muestra la autenticación de Microsoft Entra y la pestaña Contraseña muestra la autenticación de PostgreSQL.

La autenticación de Microsoft Entra es un mecanismo de conexión a Azure Database for PostgreSQL mediante identidades definidas en Microsoft Entra ID. Con la autenticación de Microsoft Entra, puede administrar las identidades de los usuarios de la base de datos y otros servicios de Microsoft en una ubicación central, lo que simplifica la administración de permisos.

La autenticación de PostgreSQL usa cuentas almacenadas en PostgreSQL. Si decide usar contraseñas como credenciales para las cuentas, estas credenciales se almacenarán en la tabla del usuario. Dado que estas contraseñas se almacenan en PostgreSQL, deberá administrar la rotación de las contraseñas por su cuenta.

Requisitos previos

Preparación del proyecto

Siga estos pasos para preparar el proyecto.

  1. En el archivo pom.xml del proyecto, agregue la siguiente dependencia:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-jdbc-postgresql</artifactId>
    </dependency>
    
  2. En el archivo application.properties, quite todas las propiedades de spring.datasource.*.

  3. Actualice la aplicación actual mediante la ejecución de az spring app deploy o cree una implementación para este cambio mediante la ejecución de az spring app deployment create.

Enlace de una aplicación a una instancia de Azure Database for PostgreSQL

Nota:

Asegúrese de seleccionar solo uno de los enfoques siguientes para crear una conexión. Si ya ha creado tablas con una conexión, otros usuarios no pueden acceder a las tablas ni modificarlas. Al probar el otro enfoque, la aplicación producirá errores como "Permiso denegado". Para corregir este problema, conéctese a una nueva base de datos o elimine y vuelva a crear una existente.

Nota:

De forma predeterminada, los conectores de servicio se crean en el nivel de aplicación. Para invalidar las conexiones, puede volver a crear otras conexiones en las implementaciones.

  1. Instale la extensión sin contraseña de Service Connector para la CLI de Azure:

    az extension add --name serviceconnector-passwordless --upgrade
    
  2. Configure Azure Spring Apps para conectarse a la base de datos PostgreSQL con una identidad administrada asignada por el sistema mediante el comando az spring connection create.

    az spring connection create postgres-flexible \
        --resource-group $AZ_SPRING_APPS_RESOURCE_GROUP \
        --service $AZ_SPRING_APPS_SERVICE_INSTANCE_NAME \
        --app $APP_NAME \
        --deployment $DEPLOYMENT_NAME \
        --target-resource-group $POSTGRES_RESOURCE_GROUP \
        --server $POSTGRES_SERVER_NAME \
        --database $DATABASE_NAME \
        --system-identity
    

Pasos siguientes

En este artículo ha aprendido a enlazar una aplicación de Azure Spring Apps a una instancia de Azure Database for PostgreSQL. Para más información sobre los servicios de enlace a una aplicación, consulte Enlace de una base de datos de Azure Cosmos DB a una aplicación de Azure Spring Apps.