Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Из этого краткого руководства вы узнаете, как создавать, обновлять и удалять гибкий сервер База данных Azure для PostgreSQL с помощью Azure SDK для Java. Примеры кода написаны на Java и используют библиотеки пакета SDK Azure для взаимодействия со службой Базы данных Azure для PostgreSQL.
Azure SDK для Java предоставляет набор библиотек, которые можно использовать для взаимодействия со службами Azure с помощью Java. Пакет SDK предоставляет согласованную модель программирования и упрощает работу со службами Azure, включая базу данных Azure для PostgreSQL.
Необходимые условия
- Учетная запись Azure с активной подпиской
- Пакет средств разработки Java (JDK) с последней версией
- Скачайте Maven для использования библиотеки Azure SDK для Java
- Azure CLI , установленная на локальном компьютере
Операции, поддерживаемые Azure Java SDK
Azure SDK для Java предоставляет azure-resourcemanager-postgresqlflexibleserver зависимость, которая поддерживает эти операции для баз данных Azure для PostgreSQL.
Создание гибких серверов База данных Azure для PostgreSQL
Вы можете создать гибкий сервер Azure PostgreSQL с указанными конфигурациями, такими как расположение, номер SKU, хранилище и версия.Обновление гибких серверов База данных Azure для PostgreSQL
Вы можете обновить существующие гибкие серверы Azure PostgreSQL, включая изменение конфигураций, таких как вход администратора, пароль, номер SKU, хранилище и версия.Удаление гибких серверов База данных Azure для PostgreSQL
Получение сведений о базе данных Azure для PostgreSQL
Вы можете получить сведения о существующих гибких серверах Azure PostgreSQL, включая их конфигурации, состояние и другие метаданные.Управление базами данных
Вы можете создавать, обновлять, удалять и извлекать базы данных на гибком сервере Azure PostgreSQL.Управление правилами брандмауэра
Вы можете создавать, обновлять, удалять и извлекать правила брандмауэра для экземпляра для управления доступом.Управление параметрами конфигурации
Вы можете управлять параметрами конфигурации гибкого сервера Azure PostgreSQL, включая получение и обновление параметров.
Настройка учетной записи с помощью Azure CLI
Прежде чем использовать Azure SDK для Java для создания, обновления или удаления гибкого сервера База данных Azure для PostgreSQL, войдите в учетную запись Azure с помощью Azure CLI.
Войдите в свою учетную запись с помощью Azure CLI.
az login
Получите идентификатор арендатора для своей учетной записи, так как он понадобится для кода в следующем разделе.
az account show --query tenantId --output tsv
Создание проекта
Создайте проект Maven в предпочтительной интегрированной среде разработки и добавьте зависимости для библиотеки Базы данных Azure для PostgreSQL.
При создании проекта Maven создается pom.xml файл. Убедитесь, что вы добавили все зависимости под тегом <dependencies> в этом файле.
<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
Прежде чем добавлять их в файл, проверьте последнюю версию всех зависимостей.
Создание экземпляра Базы данных Azure для PostgreSQL
Чтобы создать гибкий сервер Azure PostgreSQL, создайте файл с именем CreateServer.java со следующим кодом.
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 = 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 is created with server name"+server.name());
}
}
В этом примере показано создание гибкого сервера экземпляра Базы данных Azure для PostgreSQL с помощью PostgreSqlManager класса. Перед вызовом метода создания он проходит проверку подлинности с помощью TokenCredential и AzureProfile. После проверки подлинности он определяет гибкий сервер Azure PostgreSQL с указанной конфигурацией.
Замените следующие параметры в коде данными:
-
subscription-id: идентификатор подписки Azure. -
tenant-id: идентификатор клиента учетной записи Microsoft Entra. Это можно получить на портале или с помощью интерфейса командной строки. -
resource-group-name: название вашей группы ресурсов. -
server-name: уникальное имя сервера PostgreSQL. -
location: регион Azure для сервера. -
admin-username: имя администратора. -
admin-password: пароль администратора.
Authentication
Вы можете аутентифицировать свои учетные данные разными способами. В этом примере используется DefaultAzureCredentialBuilder для настройки и создания объекта TokenCredential, который является учетными данными, которые можно использовать для проверки подлинности с помощью служб Azure. Войдите с помощью Azure CLI, как упоминалось в предварительных требованиях.
Запустите файл.
Создайте проект Maven и выполните следующие команды. Каждый раз, когда вы добавляете в файл новую зависимость, чтобы установить эту зависимость pom.xml в локальном репозитории, выполните следующие команды:
mvn clean install
Чтобы запустить файл, используйте интегрированную среду разработки для выполнения этого кода или с помощью командной строки для запуска файла Java.
javac <file-name>.java
java <file-name>
Note
Выполнение этого кода инициирует процесс создания экземпляра, который может занять несколько минут.
Вы можете просмотреть развернутый гибкий сервер Azure PostgreSQL с помощью портала Azure, Azure CLI, Azure PowerShell и различных других средств для проверки развертывания и проверки развернутых ресурсов.
Создание базы данных
Вы можете добавить новую базу данных на только что созданный сервер. Убедитесь, что База данных Azure для PostgreSQL гибкий сервер запущен.
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();
}
}
Обновление данных сервера
Создайте UpdateServer.java файл.
Вы также можете обновить данные сервера с помощью этого пакета SDK Java и вызова update() метода из библиотекиpostgresqlflexibleserver.
С помощью update метода можно обновить версию, имя пользователя администратора, пароль и другие свойства.
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");
}
}
Запустите файл Java и просмотрите изменения, внесенные в ресурс, с помощью UpdateServer.java файла.
Очистите ресурсы
Вы можете удалить созданные гибкие серверы, удалив гибкий сервер с помощью метода delete() из библиотеки postgresqlflexibleserver.
DeleteServer.java Создайте файл и добавьте следующий код.
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");
}
}
Замените следующие параметры данными:
-
subscription-id: собственный идентификатор подписки. -
resource-group: имя группы ресурсов, которую вы хотите использовать. -
tenant-id: идентификатор клиента учетной записи Microsoft Entra. Это можно получить на портале или с помощью интерфейса командной строки. -
server-name: имя созданного гибкого сервера базы данных Azure.
Вы также можете удалить группу ресурсов, созданную с помощью портала, интерфейса командной строки или PowerShell. Если вы хотите удалить его с помощью интерфейса командной строки или PowerShell, выполните действия, описанные в разделе CLI и PowerShell.
Замените заполнители своими сведениями и запустите файл.
Кроме того, можно удалить группу ресурсов с помощью следующих средств:
-
Azure CLI:
az group delete --name <resource_group> -
PowerShell:
Remove-AzResourceGroup -Name <resource_group> - портал Azure. Перейдите к группе ресурсов и удалите ее.