Share via


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

Nota:

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

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, se incluyen 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 almacenan en la tabla de usuarios. Dado que estas contraseñas se almacenan en PostgreSQL, debe 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 Conectar ors 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
    

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:

Los Conectar ors de servicio se crean en el nivel de implementación. Por lo tanto, si se crea otra implementación, debe volver a crear las conexiones.

  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 \
        --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.