このクイック スタートでは、.NET の Azure SDK ライブラリを使用して、Azure PostgreSQL フレキシブル サーバー インスタンスを作成、更新、削除する方法について説明します。 Azure Database for PostgreSQL は、クラウドで高可用性 PostgreSQL データベースを実行、管理、スケーリングできるマネージド サービスです。 .NET SDK を使用すると、Azure Database for PostgreSQL フレキシブル サーバー インスタンス、複数のサーバー、またはサーバー上の複数のデータベースをプロビジョニングできます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。
- クイックスタート: Azure Database for PostgreSQL - フレキシブル サーバーを作成する
- ローカル コンピューターにインストールされている .NET Framework。
- ローカル コンピューターにインストールされている Azure CLI。
Azure.ResourceManager.PostgreSql ライブラリ
Azure.ResourceManager.PostgreSql ライブラリは Azure SDK for .NET の一部であり、Azure で PostgreSQL フレキシブル サーバー インスタンスを管理するための機能を提供します。 このライブラリを使用すると、PostgreSQL フレキシブル サーバー インスタンスに関連する次のようなさまざまな操作を実行できます。
Azure PostgreSQL フレキシブル サーバー インスタンスの作成:
場所、SKU、ストレージ、バージョンなど、指定された構成で新しいフレキシブル サーバー インスタンスを作成できます。Azure PostgreSQL フレキシブル サーバー インスタンスの更新:
管理者ログイン、パスワード、SKU、ストレージ、バージョンなどの構成の変更など、既存の PostgreSQL フレキシブル サーバー インスタンスを更新できます。Azure PostgreSQL フレキシブル サーバー インスタンスの削除:
既存の Azure PostgreSQL フレキシブル サーバー インスタンスを削除できます。Azure PostgreSQL 情報の取得:
構成、状態、その他のメタデータなど、既存の PostgreSQL フレキシブル サーバー インスタンスに関する詳細を取得できます。データベースの管理:
Azure PostgreSQL フレキシブル サーバー インスタンス内でデータベースを作成、更新、削除、取得できます。ファイアウォール規則の管理:
インスタンスのファイアウォール規則を作成、更新、削除、取得してアクセスを制御できます。構成設定の管理:
パラメーターの取得や更新など、Azure PostgreSQL フレキシブル サーバー インスタンスの構成設定を管理できます。
Azure にログインする
Azure SDK for .NET を使用して Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成、更新、または削除する前に、Azure CLI を使用して Azure アカウントにログインする必要があります。
ログイン コマンドを実行する
az CLI を使用してアカウントにログインします
az login
必要なパッケージをインストールする
次のコマンドを使用して、必要なパッケージをインストールします。
dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager
dotnet add package Azure.ResourceManager.PostgreSql
これらのパッケージをインストールした後、ビルドおよび実行コマンドを実行する前に、それぞれが .csproj ファイルに一覧表示されていることを確認します。
.csproj ファイルの詳細については、Web 配置に関するページを参照してください。
Note
.NETの初期セットアップに関連する問題が発生した場合は、このガイドに従ってください。
プロジェクトを作成する
このリンクに記載されている手順に従って、新しい .NET プロジェクトを作成します
サーバーを作成する
PostgreSQL フレキシブル サーバー インスタンスを作成するには、次のコードを含む CreateServer.cs という名前のファイルを作成します。
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.PostgreSql.FlexibleServers;
using Azure.ResourceManager.PostgreSql.FlexibleServers.Models;
namespace CreatePostgreSqlFlexibleServer
{
class Program
{
static async Task Main(string[] args)
{
TokenCredential credential = new DefaultAzureCredential();
ArmClient armClient = new ArmClient(credential);
// Replace with your subscription ID
string subscriptionId = "subscription-id";
// Replace with your resource group name
string resourceGroupName = "resource-group-name";
// Replace with a unique server name
string serverName = "server-name";
// Replace with your desired region
string location = "region-name";
// Create the resource identifier for the resource group
ResourceIdentifier resourceGroupId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroup = await armClient.GetResourceGroupResource(resourceGroupId).GetAsync();
// Prepare server data
var serverData = new PostgreSqlFlexibleServerData(location)
{
AdministratorLogin = "admin-username",
AdministratorLoginPassword = "<admin-password>",
Version = "pgVersion",
Storage = new PostgreSqlFlexibleServerStorage() { StorageSizeInGB = 128 },
Sku = new PostgreSqlFlexibleServerSku("Standard_B1ms", PostgreSqlFlexibleServerSkuTier.Burstable),
};
try
{
ArmOperation<PostgreSqlFlexibleServerResource> operation = await resourceGroup.GetPostgreSqlFlexibleServers().CreateOrUpdateAsync(Azure.WaitUntil.Completed, serverName, serverData);
PostgreSqlFlexibleServerResource serverResource = operation.Value;
Console.WriteLine($"PostgreSQL flexible server '{serverResource.Data.Name}' created successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
}
この例では、Azure Resource Manager を使用して PostgreSQL フレキシブル サーバー インスタンスを作成する方法を示します。 PostgreSql ライブラリ。 同様に、ライブラリによって提供される他の方法を使用して、PostgreSQL フレキシブル サーバー インスタンスと関連リソースを管理できます。
コード内の次のパラメーターを実際のデータに置き換えます。
-
subscription-id:お使いの Azure サブスクリプション ID。 -
resource-group-name: リソース グループの名前。 -
server-name: PostgreSQL サーバーの一意の名前。 -
location: サーバーの Azure リージョン。 -
admin-username: 管理者のユーザー名。 -
admin-password: 管理者のパスワード。 -
pgVersion: PostgreSQL のバージョン (11、12、13、14、15、16 など)。
Authentication
DefaultAzureCredential クラスは、環境変数、マネージド ID、または Azure CLI などの方法を使用して認証を試みます。 これらの方法のいずれかが構成されていることを確認します。
ファイルを実行します
ファイルを実行するには、.NET CLI を使用して.cs ファイルをビルドし、実行する必要があります。 これにより、コードに従って PostgreSQL インスタンスの作成、更新、または削除のプロセスが開始されます。
.cs ファイルに変更を加えるたびに、ファイルをビルドしてから実行することを忘れないでください
以下のコマンドを使用して .cs ファイルを実行します
dotnet build
dotnet run
Note
このコードを実行すると、インスタンス作成プロセスが開始されます。完了するまでに数分かかる場合があります。
デプロイされているリソースを確認する
Azure portal、Azure CLI、Azure PowerShell、その他のさまざまなツールを使用してデプロイされたフレキシブル サーバー インスタンスを確認し、デプロイの検証とデプロイされたリソースの確認を行うことができます。
サーバー データの更新
UpdateServerData.cs ファイルを作成します。
Azure PostgreSQL .NET SDK を使用してサーバー データを更新することもできます。
たとえば、CreateOrUpdateAsync メソッドを使用して、バージョン、管理者ユーザー名、パスワードなどを更新できます。
CreateOrUpdateAsync メソッドは、同じ名前のインスタンスがない場合は新しいインスタンスを作成し、存在する場合は新しいサーバー データで既存のインスタンスを更新します。
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.PostgreSql.FlexibleServers;
using Azure.ResourceManager.PostgreSql.FlexibleServers.Models;
namespace UpdateServerData
{
class Program
{
static async Task Main(string[] args)
{
TokenCredential credential = new DefaultAzureCredential();
ArmClient armClient = new ArmClient(credential);
// Replace with your subscription ID
string subscriptionId = "subscription-id";
// Replace with your resource group name
string resourceGroupName = "resource-group-name";
// Replace with a unique server name
string serverName = "server-name";
// Replace with your desired region
string location = "region-name";
ResourceIdentifier resourceGroupId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroup = await armClient.GetResourceGroupResource(resourceGroupId).GetAsync();
// Prepare server data
var serverData = new PostgreSqlFlexibleServerData(location)
{
// Updating version from a lower version to a higher version
Version = "16",
};
try
{
ArmOperation<PostgreSqlFlexibleServerResource> operation = await resourceGroup.GetPostgreSqlFlexibleServers().CreateOrUpdateAsync(Azure.WaitUntil.Completed, serverName, serverData);
PostgreSqlFlexibleServerResource serverResource = operation.Value;
Console.WriteLine($"PostgreSQL flexible server '{serverResource.Data.Name}' updated successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
}
ファイルを実行し、"UpdateServerData.cs" ファイルでリソースに加えられた変更を確認します。
リソースをクリーンアップする
Azure SDK for .NET を使用してフレキシブル サーバー インスタンスを削除することで、作成されたフレキシブル サーバー インスタンスをクリーンアップできます。
DeleteServer.cs ファイルを作成し、次のコードを追加します。
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.PostgreSql.FlexibleServers;
using Azure.ResourceManager.PostgreSql.FlexibleServers.Models;
namespace DeleteServer
{
class Program
{
static async Task Main(string[] args)
{
// Replace with your subscription ID
string subscriptionId = "subscription-id";
// Replace with your resource group name
string resourceGroupName = "resource-group-name";
// Replace with a unique server name
string serverName = "server-name";
var credential = new DefaultAzureCredential();
var armClient = new ArmClient(credential);
try
{
// Get the PostgreSQL flexible server resource
var postgresServerResourceId = PostgreSqlFlexibleServerResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, serverName);
var postgresServer = armClient.GetPostgreSqlFlexibleServerResource(postgresServerResourceId);
// Delete the server
await postgresServer.DeleteAsync(Azure.WaitUntil.Completed);
Console.WriteLine($"PostgreSQL flexible server '{serverName}' deleted successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
}
次のパラメーターは実際のデータに置き換えてください。
-
subscription-id: 独自の サブスクリプション ID。 -
resource-group-name: 使用するリソース グループの名前。 存在しない場合は、スクリプトによって新しいリソース グループが作成されます。 -
server-name: 作成した Azure データベース フレキシブル サーバー インスタンスの名前。
ポータル、CLI、または PowerShell を使用して作成されたリソース グループを削除することもできます。 CLI または PowerShell を使用して削除する場合は、CLI と PowerShell のセクションで説明されている手順に従います。
プレースホルダーを実際の詳細情報に置き換えて、ファイルを実行します。
または、次を使用してリソース グループを削除することもできます。
-
Azure CLI:
az group delete --name <resource_group> -
PowerShell:
Remove-AzResourceGroup -Name <resource_group> - Azure portal: リソース グループに移動して削除します。