Dela via


Binda en Azure Database for PostgreSQL till ditt program i Azure Spring Apps

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

Den här artikeln gäller för:✅ Java ✅ C#

Den här artikeln gäller för:✅ Basic/Standard ✅ Enterprise

Med Azure Spring Apps kan du binda välj Azure-tjänster till dina program automatiskt, i stället för att behöva konfigurera Spring Boot-programmet manuellt. Den här artikeln visar hur du binder ditt program till din Azure Database for PostgreSQL-instans.

I den här artikeln innehåller vi två autentiseringsmetoder: Microsoft Entra-autentisering och PostgreSQL-autentisering. Fliken Lösenordslös visar Microsoft Entra-autentiseringen och fliken Lösenord visar PostgreSQL-autentisering.

Microsoft Entra-autentisering är en mekanism för att ansluta till Azure Database for PostgreSQL med hjälp av identiteter som definierats i Microsoft Entra-ID. Med Microsoft Entra-autentisering kan du hantera databasanvändares identiteter och andra Microsoft-tjänster på en central plats, vilket förenklar behörighetshanteringen.

PostgreSQL-autentisering använder konton som lagras i PostgreSQL. Om du väljer att använda lösenord som autentiseringsuppgifter för kontona lagras dessa autentiseringsuppgifter i användartabellen. Eftersom dessa lösenord lagras i PostgreSQL måste du hantera rotationen av lösenorden själv.

Förutsättningar

Förbereda projektet

Använd följande steg för att förbereda projektet.

  1. Lägg till följande beroende i projektets pom.xml-fil :

    <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. Ta bort alla egenskaper i filen application.properties.spring.datasource.*

  3. Uppdatera den aktuella appen genom att köra az spring app deployeller skapa en ny distribution för den här ändringen genom att köra az spring app deployment create.

Binda din app till Azure Database for PostgreSQL-instansen

Kommentar

Se till att bara välja någon av följande metoder för att skapa en anslutning. Om du redan har skapat tabeller med en anslutning kan andra användare inte komma åt eller ändra tabellerna. När du provar den andra metoden genererar programmet fel som "Behörighet nekad". Du kan åtgärda problemet genom att ansluta till en ny databas eller ta bort och återskapa en befintlig databas.

Kommentar

Som standard skapas tjänstanslutningsprogram på programnivå. Om du vill åsidosätta anslutningarna kan du skapa andra anslutningar igen i distributionerna.

  1. Installera det lösenordslösa tillägget för Service Connector för Azure CLI:

    az extension add --name serviceconnector-passwordless --upgrade
    
  2. Konfigurera Azure Spring Apps för att ansluta till PostgreSQL Database med en systemtilldelad hanterad identitet med kommandot 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
    

Nästa steg

I den här artikeln har du lärt dig hur du binder ett program i Azure Spring Apps till en Azure Database for PostgreSQL-instans. Mer information om hur du binder tjänster till ett program finns i Binda en Azure Cosmos DB-databas till ett program i Azure Spring Apps.