Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, aprenderá a crear, actualizar y eliminar una instancia de servidor flexible de Azure Database for PostgreSQL mediante el SDK de Azure para Java. Los ejemplos de código se escriben en Java y usan las bibliotecas de SDK de Azure para interactuar con el servicio Azure Database for PostgreSQL.
El SDK de Azure para Java proporciona un conjunto de bibliotecas que permiten interactuar con los servicios de Azure mediante Java. El SDK proporciona un modelo de programación coherente y simplifica el trabajo con servicios de Azure, incluido Azure Database for PostgreSQL.
Prerequisites
- Una cuenta de Azure con una suscripción activa
- Kit de desarrollo de Java (JDK) con la versión más reciente
- Descarga de Maven para usar la biblioteca del SDK de Java de Azure
- CLI de Azure instalada en el equipo local
Operaciones compatibles con el SDK de Java de Azure
El SDK de Azure para Java proporciona azure-resourcemanager-postgresqlflexibleserver dependencias que admiten estas operaciones para Azure Databases for PostgreSQL.
Creación de instancias de servidor flexible de Azure Database for PostgreSQL
Puede crear una nueva instancia de servidor flexible de Azure PostgreSQL con configuraciones especificadas, como la ubicación, la SKU, el almacenamiento y la versión.Actualización de instancias de servidor flexible de Azure Database for PostgreSQL
Puede actualizar las instancias de servidor flexible de Azure PostgreSQL existentes, incluidas las configuraciones cambiantes, como el inicio de sesión de administrador, la contraseña, la SKU, el almacenamiento y la versión.Eliminación de instancias de servidor flexible de Azure Database for PostgreSQL
Recuperación de información de Azure Database for PostgreSQL
Puede recuperar detalles sobre las instancias de servidor flexible de Azure PostgreSQL existentes, incluidas sus configuraciones, estado y otros metadatos.Administración de bases de datos
Puede crear, actualizar, eliminar y recuperar bases de datos dentro de la instancia de servidor flexible de Azure PostgreSQL.Administración de reglas de firewall
Puede crear, actualizar, eliminar y recuperar reglas de firewall de una instancia para controlar el acceso.Administración de las opciones de configuración
Puede administrar las opciones de configuración de una instancia de servidor flexible de Azure PostgreSQL, incluida la recuperación y actualización de parámetros.
Configuración de la cuenta con az cli
Antes de usar el SDK de Azure para Java para crear, actualizar o eliminar una instancia de servidor flexible de Azure Database for PostgreSQL, debe iniciar sesión en su cuenta de Azure mediante la CLI de Azure.
Inicio de sesión en su cuenta con az CLI
az login
Captura el identificador de inquilino de la cuenta, ya que será necesario para el código más adelante.
az account show --query tenantId --output tsv
Creación de un proyecto
Cree un nuevo proyecto de Maven en el IDE preferido y agregue las dependencias de la biblioteca de Azure Database for PostgreSQL.
Una vez que creas un proyecto de Maven, se genera un archivo pom.xml. Asegúrese de que todas las dependencias se agregan en la etiqueta <dependencies> de este archivo.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-management</artifactId>
<version>1.17.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.15.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-resources</artifactId>
<version>2.48.0</version>
</dependency>
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-postgresqlflexibleserver</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-http-netty</artifactId>
<version>1.15.11</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.20.0</version>
</dependency>
Note
Compruebe la versión más reciente de todas las dependencias antes de agregarlas al archivo.
Creación de una instancia de Azure Database for PostgreSQL
Para crear una instancia de servidor flexible de Azure PostgreSQL, cree un archivo denominado CreateServer.java con el código siguiente.
package com.example.restservice;
import java.util.HashMap;
import java.util.Map;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ActiveDirectoryAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ArmServerKeyType;
import com.azure.resourcemanager.postgresqlflexibleserver.models.AuthConfig;
import com.azure.resourcemanager.postgresqlflexibleserver.models.DataEncryption;
import com.azure.resourcemanager.postgresqlflexibleserver.models.HighAvailability;
import com.azure.resourcemanager.postgresqlflexibleserver.models.HighAvailabilityMode;
import com.azure.resourcemanager.postgresqlflexibleserver.models.IdentityType;
import com.azure.resourcemanager.postgresqlflexibleserver.models.PasswordAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Server;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ServerVersion;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Sku;
import com.azure.resourcemanager.postgresqlflexibleserver.models.SkuTier;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Storage;
import com.azure.resourcemanager.postgresqlflexibleserver.models.UserAssignedIdentity;
public class CreateServer {
public static void main(String[] args) throws Exception {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
Server server = manager.servers()
.define("<server-name>")
.withRegion("<location>")
.withExistingResourceGroup("<resource-group-name>")
.withSku(new Sku().withName("Standard_D4ds_v5").withTier(SkuTier.GENERAL_PURPOSE))
.withAuthConfig(new AuthConfig().withActiveDirectoryAuth(ActiveDirectoryAuthEnum.DISABLED)
.withPasswordAuth(PasswordAuthEnum.ENABLED))
.withIdentity(new UserAssignedIdentity().withType(IdentityType.NONE))
.withDataEncryption(new DataEncryption().withType(ArmServerKeyType.SYSTEM_MANAGED))
.withVersion(ServerVersion.ONE_SIX).withAuthConfig(null)
.withAdministratorLogin("<user-name>")
.withAdministratorLoginPassword("<password>").withStorage(new Storage().withStorageSizeGB(32))
.withHighAvailability(new HighAvailability().withMode(HighAvailabilityMode.DISABLED))
.create();
System.out.println("Azure Database for PostgreSQL Flexible server instance is created with server name"+server.name());
}
}
En este ejemplo se muestra cómo crear un servidor de instancia flexible de Azure Database for PostgreSQL mediante la PostgreSqlManager clase . Antes de invocar el método create, se autentica mediante TokenCredential y AzureProfile. Una vez autenticado, define la instancia de servidor flexible de Azure PostgreSQL con la configuración especificada.
Sustituya los siguientes parámetros del código por sus datos:
-
subscription-id: Su ID de suscripción de Azure. -
tenant-id: identificador de inquilino de la cuenta de Microsoft Entra. Puede obtenerlo desde el portal o mediante la CLI. -
resource-group-name: nombre del grupo de recursos. -
server-name: un nombre único para su servidor PostgreSQL. -
location: la región de Azure para su servidor. -
admin-username: nombre de usuario del administrador. -
admin-password: la contraseña de administrador.
Autenticación
Hay diferentes maneras de autenticar las credenciales. En este ejemplo, hemos usado DefaultAzureCredentialBuilder para configurar y crear un objeto TokenCredential, que es una credencial que se puede usar para autenticarse con los servicios de Azure. Inicie sesión con la CLI de Azure, como se mencionó en los requisitos previos.
Ejecute el archivo.
Asegúrese de que ha creado un proyecto maven y ha ejecutado los siguientes comandos; Asegúrese de ejecutar estos comandos cada vez que agregue una nueva dependencia en el pom.xml archivo para instalar esa dependencia en el repositorio local:
mvn clean install
Para ejecutar el archivo, puede usar el IDE para ejecutar este código o usar la línea de comandos para ejecutar el archivo Java.
javac <file-name>.java
java <file-name>
Note
La ejecución de este código inicia el proceso de creación de la instancia, que puede tardar unos minutos en completarse.
Puede revisar la instancia de servidor flexible de Azure PostgreSQL implementada a través de Azure Portal, la CLI de Azure, Azure PowerShell y otras herramientas para validar la implementación y revisar los recursos implementados.
Creación de una base de datos
Puede agregar una nueva base de datos al servidor recién creado. Asegúrese de que la instancia de servidor flexible de Azure Database for PostgreSQL está en funcionamiento.
package com.example.restservice;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
public class CreateDatabaseSample {
public static void main(String args[]) {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
manager.databases()
.define("<database-name>")
.withExistingFlexibleServer("<resource-group-name>", "<server-name>")
.withCharset("utf8")
.withCollation("en_US.utf8")
.create();
}
}
Actualizar datos del servidor
Cree un archivo UpdateServer.java .
También puede actualizar los datos del servidor mediante este SDK de Java llamando al update() método desde la postgresqlflexibleserver biblioteca.
Con el update método , puede actualizar la versión, el nombre de usuario de administrador, la contraseña, etc.
package com.example.restservice;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ActiveDirectoryAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.AuthConfig;
import com.azure.resourcemanager.postgresqlflexibleserver.models.AzureManagedDiskPerformanceTiers;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Backup;
import com.azure.resourcemanager.postgresqlflexibleserver.models.CreateModeForUpdate;
import com.azure.resourcemanager.postgresqlflexibleserver.models.PasswordAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Server;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Sku;
import com.azure.resourcemanager.postgresqlflexibleserver.models.SkuTier;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Storage;
import com.azure.resourcemanager.postgresqlflexibleserver.models.StorageAutoGrow;
public class UpdateServer {
public static void main(String args[]) {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
PostgreSqlManager postgreSqlManager = PostgreSqlManager.configure()
.withLogOptions(new HttpLogOptions()
.setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
.authenticate(credential, profile);
Server resource = manager.servers()
.getByResourceGroupWithResponse("<resource-group-name>", "<server-name>", com.azure.core.util.Context.NONE)
.getValue();
resource.update()
.withSku(new Sku().withName("Standard_D16ds_v5").withTier(SkuTier.GENERAL_PURPOSE))
.withAdministratorLoginPassword("<password>")
.withStorage(new Storage().withStorageSizeGB(1024)
.withAutoGrow(StorageAutoGrow.DISABLED)
.withTier(AzureManagedDiskPerformanceTiers.P30))
.withBackup(new Backup().withBackupRetentionDays(20))
.withAuthConfig(new AuthConfig().withActiveDirectoryAuth(ActiveDirectoryAuthEnum.ENABLED)
.withPasswordAuth(PasswordAuthEnum.ENABLED)
.withTenantId("<tenant-id>"))
.withCreateMode(CreateModeForUpdate.UPDATE)
.apply();
System.out.println("Updated successfully");
}
}
Ejecute el archivo java y revise los cambios realizados en el recurso con el archivo "UpdateServer.java".
Limpieza de recursos
Para limpiar las instancias de servidor flexibles creadas, elimine la instancia de servidor flexible con el delete() método de la postgresqlflexibleserver biblioteca.
Cree un archivo DeleteServer.java y agregue el siguiente código.
package com.example.restservice;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
public class DeleteInstance {
public static void main(String args[]) {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
PostgreSqlManager postgreSqlManager = PostgreSqlManager.configure()
.withLogOptions(new HttpLogOptions()
.setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
.authenticate(credential, profile);
manager.servers().delete("<resource-group>", "<server-name>", com.azure.core.util.Context.NONE);
System.out.println("Deleted successfully");
}
}
Reemplace los parámetros siguientes por sus datos:
-
subscription-id: su propia Id. de suscripción. -
resource-group: el nombre del grupo de recursos que desea utilizar. -
tenant-id: identificador de inquilino de la cuenta de Microsoft Entra. Puede obtenerlo desde el portal o mediante la CLI. -
server-name: el nombre de la instancia de servidor flexible de base de datos Azure que ha creado.
También puede eliminar el grupo de recursos creado a través del Portal, CLI o PowerShell. Si quiere eliminarlo mediante la CLI o PowerShell, siga los pasos mencionados en la sección CLI y PowerShell.
Reemplace los marcadores de posición por sus datos y ejecute el archivo.
También puede eliminar el grupo de recursos utilizando:
-
CLI de Azure:
az group delete --name <resource_group> -
PowerShell:
Remove-AzResourceGroup -Name <resource_group> - Azure Portal: vaya al grupo de recursos y elimínelo.