Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, Java için Azure SDK kullanarak PostgreSQL için Azure Veri Tabanı esnek sunucu oluşturmayı, güncelleştirmeyi ve silmeyi öğreneceksiniz. Kod örnekleri Java dilinde yazılır ve PostgreSQL için Azure Veritabanı hizmetiyle etkileşime geçmek için Azure SDK kitaplıklarını kullanır.
Java için Azure SDK, Java kullanarak Azure hizmetleriyle etkileşim kurmak için kullanabileceğiniz bir kitaplık kümesi sağlar. SDK tutarlı bir programlama modeli sağlar ve PostgreSQL için Azure Veritabanı da dahil olmak üzere Azure hizmetleriyle çalışmayı kolaylaştırır.
Prerequisites
- Etkin aboneliği olan bir Azure hesabı
- En son sürüme sahip Java Development Kit (JDK)
- Azure Java SDK kitaplığını kullanmak için Maven'ı indirin
- Yerel makinenizde yüklü Azure CLI
Azure Java SDK tarafından desteklenen işlemler
Java için Azure SDK, PostgreSQL için Azure Veritabanları için bu işlemleri destekleyen bağımlılığı sağlarazure-resourcemanager-postgresqlflexibleserver.
PostgreSQL için Azure Veri Tabanı esnek sunucularını oluşturma
Konum, SKU, depolama ve sürüm gibi belirtilen yapılandırmalara sahip yeni bir Azure PostgreSQL esnek sunucusu oluşturabilirsiniz.PostgreSQL için Azure Veri Tabanı esnek sunucularını güncelleme
Yönetici oturum açma, parola, SKU, depolama ve sürüm gibi yapılandırmaları değiştirme dahil olmak üzere mevcut Azure PostgreSQL esnek sunucularını güncelleştirebilirsiniz.PostgreSQL için Azure Veri Tabanı esnek sunucuları silme
PostgreSQL için Azure Veritabanı bilgilerini alma
Mevcut Azure PostgreSQL esnek sunucularıyla ilgili yapılandırmaları, durumları ve diğer meta verileri de dahil olmak üzere ayrıntıları alabilirsiniz.Veritabanlarını yönetme
Azure PostgreSQL esnek sunucusunda veritabanları oluşturabilir, güncelleştirebilir, silebilir ve alabilirsiniz.Güvenlik duvarı kurallarını yönetme
Erişimi denetlemek için bir örneğin güvenlik duvarı kurallarını oluşturabilir, güncelleştirebilir, silebilir ve alabilirsiniz.Yapılandırma ayarlarını yönetme
Parametreleri alma ve güncelleştirme dahil olmak üzere Azure PostgreSQL esnek sunucusunun yapılandırma ayarlarını yönetebilirsiniz.
Azure CLI kullanarak hesabınızı ayarlama
PostgreSQL için Azure Veri Tabanı esnek sunucu oluşturmak, güncelleştirmek veya silmek için Java Azure SDK kullanmadan önce Azure CLI kullanarak Azure hesabınızda oturum açın.
Azure CLI kullanarak hesabınızda oturum açın.
az login
Sonraki bölümdeki kod için ihtiyaç duyduğunuz şekilde hesabınız için kiracı kimliğinizi getirin.
az account show --query tenantId --output tsv
Proje oluşturma
Tercih ettiğiniz IDE'de yeni bir Maven projesi oluşturun ve PostgreSQL için Azure Veritabanı kitaplığının bağımlılıklarını ekleyin.
Maven projesi oluşturduğunuzda, bir pom.xml dosya oluşturursunuz. Bu dosyanın etiketinin altına tüm bağımlılıkları eklediğinizden <dependencies> emin olun.
<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
Tüm bağımlılıkları dosyanıza eklemeden önce en son sürümü denetleyin.
PostgreSQL için Azure Veritabanı örneği oluşturma
Azure PostgreSQL esnek sunucusu oluşturmak için aşağıdaki kodla adlı CreateServer.java bir dosya oluşturun.
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());
}
}
Bu örnekte, PostgreSqlManager class'ını kullanarak, PostgreSQL için Azure Veritabanı için esnek örnek sunucu oluşturma işlemi gösterilmektedir. Oluşturma yöntemini çağırmadan önce TokenCredential ve AzureProfile kullanarak kimlik doğrulaması yapar. Kimlik doğrulamasından sonra, belirtilen yapılandırmanızla Azure PostgreSQL esnek sunucusunu tanımlar.
Koddaki aşağıdaki parametreleri verilerinizle değiştirin:
-
subscription-id: Azure abonelik kimliğiniz. -
tenant-id: Microsoft Entra hesabınızın kiracı kimliği. Bunu portaldan veya CLI kullanarak alabilirsiniz. -
resource-group-name: Kaynak grubunuzun adı. -
server-name: PostgreSQL sunucunuz için benzersiz bir ad. -
location: Sunucunuz için Azure bölgesi. -
admin-username: Yönetici kullanıcı adı. -
admin-password: Yönetici parolası.
Authentication
Kimlik bilgilerinizi farklı yollarla doğrulayabilirsiniz. Bu örnekte, Azure hizmetleriyle kimlik doğrulaması yapmak için kullanabileceğiniz bir kimlik bilgisi olan TokenCredential nesnesini yapılandırmak ve oluşturmak için kullanınDefaultAzureCredentialBuilder. Önkoşullarda belirtildiği gibi Azure CLI kullanarak oturum açın.
Dosyayı çalıştırma
Bir Maven projesi oluşturduğunuzdan ve aşağıdaki komutları yürüttüğünden emin olun. Bu bağımlılığı yerel deponuza yüklemek için dosyanıza pom.xml her yeni bağımlılık eklediğinizde şu komutları çalıştırın:
mvn clean install
Dosyayı çalıştırmak için IDE'nizi kullanarak bu kodu çalıştırın veya komut satırını kullanarak Java dosyasını çalıştırın.
javac <file-name>.java
java <file-name>
Note
Bu kodu çalıştırmak, bir örnek oluşturma sürecini başlatır ve tamamlanması birkaç dakika sürebilir.
Dağıtımı doğrulamak ve dağıtılan kaynakları gözden geçirmek için Azure portalı, Azure CLI, Azure PowerShell ve diğer çeşitli araçlar aracılığıyla dağıtılan Azure PostgreSQL esnek sunucusunu gözden geçirebilirsiniz.
veritabanı oluşturun
Yeni oluşturduğunuz sunucuya yeni bir veritabanı ekleyebilirsiniz. PostgreSQL için Azure Veri Tabanı esnek sunucunuzun çalıştığından emin olun.
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();
}
}
Sunucu verilerini güncelleştirme
Bir UpdateServer.java dosya oluşturun.
Ayrıca bu Java SDK'sını kullanarak ve postgresqlflexibleserver kitaplığındaki update() yöntemini çağırarak sunucu verilerini güncelleyebilirsiniz.
yöntemini kullanarak update sürümü, yönetici kullanıcı adını, parolayı ve diğer özellikleri güncelleştirebilirsiniz.
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 dosyasını çalıştırın ve dosyayı kullanarak UpdateServer.java kaynakta yapılan değişiklikleri gözden geçirin.
Kaynakları temizle
postgresqlflexibleserver kitaplığındaki delete() yöntemiyle oluşturulan esnek sunucuları silerek temizleyebilirsiniz.
Bir DeleteServer.java dosya oluşturun ve aşağıdaki kodu ekleyin.
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");
}
}
Aşağıdaki parametreleri verilerinizle değiştirin:
-
subscription-id: Kendi abonelik kimliğiniz. -
resource-group: Kullanmak istediğiniz kaynak grubunun adı. -
tenant-id: Microsoft Entra hesabınızın kiracı kimliği. Bunu portaldan veya CLI kullanarak alabilirsiniz. -
server-name: Oluşturduğunuz Azure veritabanı esnek sunucusunun adı.
Portal, CLI veya PowerShell aracılığıyla oluşturulan kaynak grubunu da silebilirsiniz. CLI veya PowerShell kullanarak silmek istiyorsanız, CLI ve PowerShell bölümünde belirtilen adımları izleyin.
Yer tutucuları ayrıntılarınızla değiştirin ve dosyayı çalıştırın.
Alternatif olarak, aşağıdakini kullanarak kaynak grubunu kaldırabilirsiniz:
-
Azure CLI:
az group delete --name <resource_group> -
PowerShell:
Remove-AzResourceGroup -Name <resource_group> - Azure portalı: Kaynak grubuna gidin ve silin.