Skip to main content Skills Marketplace Descubre y explora habilidades de IA creadas por la comunidad.
Ocupaciones relacionadas SOC
Basado en la clasificación ocupacional SOC
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Copiar promptMostrar detalles del prompt Un comando directo omite el prompt de revisión. Revisa el origen antes de ejecutarlo.
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-resource-manager-postgresql-dotnetEl comando permanece en una sola línea. Desplázate horizontalmente para revisarlo antes de copiarlo.
¿Prefieres una copia local? Descarga los archivos que SkillsMP tiene disponibles ahora.
Descargar Zip Descargando... name azure-resource-manager-postgresql-dotnet description Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments. type skill created 2026-02-27T00:00:00.000Z domain software-development category database risk unknown source community tags ["skill","software-development","database","azure","resource","manager"]
Azure.ResourceManager.PostgreSql (.NET)
Azure Resource Manager SDK for managing PostgreSQL Flexible Server deployments.
Installation
dotnet add package Azure.ResourceManager.PostgreSql
dotnet add package Azure.Identity
Current Version : v1.2.0 (GA)
API Version : 2023-12-01-preview
Note : This skill focuses on PostgreSQL Flexible Server. Single Server is deprecated and scheduled for retirement.
Environment Variables
AZURE_SUBSCRIPTION_ID=<your-subscription-id>
AZURE_RESOURCE_GROUP=<your-resource-group>
AZURE_POSTGRESQL_SERVER_NAME=<your-postgresql-server>
Authentication
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.PostgreSql;
using Azure.ResourceManager.PostgreSql.FlexibleServers;
ArmClient client = new ArmClient(new DefaultAzureCredential());
Resource Hierarchy
Subscription
└── ResourceGroup
└── PostgreSqlFlexibleServer # PostgreSQL Flexible Server instance
├── PostgreSqlFlexibleServerDatabase # Database within the server
├── PostgreSqlFlexibleServerFirewallRule # IP firewall rules
├── PostgreSqlFlexibleServerConfiguration # Server parameters
├── PostgreSqlFlexibleServerBackup # Backup information
├── PostgreSqlFlexibleServerActiveDirectoryAdministrator # Entra ID admin
└── PostgreSqlFlexibleServerVirtualEndpoint # Read replica endpoints
Core Workflows
1. Create PostgreSQL Flexible Server
using Azure.ResourceManager.PostgreSql.FlexibleServers;
using Azure.ResourceManager.PostgreSql.FlexibleServers.Models;
ResourceGroupResource resourceGroup = await client
.GetDefaultSubscriptionAsync()
.Result
.GetResourceGroupAsync("my-resource-group" );
PostgreSqlFlexibleServerCollection servers = resourceGroup.GetPostgreSqlFlexibleServers();
PostgreSqlFlexibleServerData data = new PostgreSqlFlexibleServerData(AzureLocation.EastUS)
{
Sku = new PostgreSqlFlexibleServerSku("Standard_D2ds_v4" , PostgreSqlFlexibleServerSkuTier.GeneralPurpose),
AdministratorLogin = ,
AdministratorLoginPassword = ,
Version = PostgreSqlFlexibleServerVersion.Ver16,
Storage = PostgreSqlFlexibleServerStorage
{
StorageSizeInGB = ,
AutoGrow = StorageAutoGrow.Enabled,
Tier = PostgreSqlStorageTierName.P30
},
Backup = PostgreSqlFlexibleServerBackupProperties
{
BackupRetentionDays = ,
GeoRedundantBackup = PostgreSqlFlexibleServerGeoRedundantBackupEnum.Disabled
},
HighAvailability = PostgreSqlFlexibleServerHighAvailability
{
Mode = PostgreSqlFlexibleServerHighAvailabilityMode.ZoneRedundant,
StandbyAvailabilityZone =
},
AvailabilityZone = ,
AuthConfig = PostgreSqlFlexibleServerAuthConfig
{
ActiveDirectoryAuth = PostgreSqlFlexibleServerActiveDirectoryAuthEnum.Enabled,
PasswordAuth = PostgreSqlFlexibleServerPasswordAuthEnum.Enabled
}
};
ArmOperation<PostgreSqlFlexibleServerResource> operation = servers
.CreateOrUpdateAsync(WaitUntil.Completed, , data);
PostgreSqlFlexibleServerResource server = operation.Value;
Console.WriteLine( );
"pgadmin"
"YourSecurePassword123!"
new
128
new
7
new
"2"
"1"
new
await
"my-postgresql-server"
$"Server created: {server.Data.FullyQualifiedDomainName} "
2. Create Database PostgreSqlFlexibleServerResource server = await resourceGroup
.GetPostgreSqlFlexibleServerAsync("my-postgresql-server" );
PostgreSqlFlexibleServerDatabaseCollection databases = server.GetPostgreSqlFlexibleServerDatabases();
PostgreSqlFlexibleServerDatabaseData dbData = new PostgreSqlFlexibleServerDatabaseData
{
Charset = "UTF8" ,
Collation = "en_US.utf8"
};
ArmOperation<PostgreSqlFlexibleServerDatabaseResource> operation = await databases
.CreateOrUpdateAsync(WaitUntil.Completed, "myappdb" , dbData);
PostgreSqlFlexibleServerDatabaseResource database = operation.Value;
Console.WriteLine($"Database created: {database.Data.Name} " );
3. Configure Firewall Rules PostgreSqlFlexibleServerFirewallRuleCollection firewallRules = server.GetPostgreSqlFlexibleServerFirewallRules();
PostgreSqlFlexibleServerFirewallRuleData ruleData = new PostgreSqlFlexibleServerFirewallRuleData
{
StartIPAddress = System.Net.IPAddress.Parse("10.0.0.1" ),
EndIPAddress = System.Net.IPAddress.Parse("10.0.0.255" )
};
ArmOperation<PostgreSqlFlexibleServerFirewallRuleResource> operation = await firewallRules
.CreateOrUpdateAsync(WaitUntil.Completed, "allow-internal" , ruleData);
PostgreSqlFlexibleServerFirewallRuleData azureServicesRule = new PostgreSqlFlexibleServerFirewallRuleData
{
StartIPAddress = System.Net.IPAddress.Parse("0.0.0.0" ),
EndIPAddress = System.Net.IPAddress.Parse("0.0.0.0" )
};
await firewallRules.CreateOrUpdateAsync(WaitUntil.Completed, "AllowAllAzureServicesAndResourcesWithinAzureIps" , azureServicesRule);
4. Update Server Configuration PostgreSqlFlexibleServerConfigurationCollection configurations = server.GetPostgreSqlFlexibleServerConfigurations();
PostgreSqlFlexibleServerConfigurationResource config = await configurations
.GetAsync("max_connections" );
PostgreSqlFlexibleServerConfigurationData configData = new PostgreSqlFlexibleServerConfigurationData
{
Value = "500" ,
Source = "user-override"
};
ArmOperation<PostgreSqlFlexibleServerConfigurationResource> operation = await configurations
.CreateOrUpdateAsync(WaitUntil.Completed, "max_connections" , configData);
string [] commonParams = {
"max_connections" ,
"shared_buffers" ,
"work_mem" ,
"maintenance_work_mem" ,
"effective_cache_size" ,
"log_min_duration_statement"
};
5. Configure Entra ID Administrator PostgreSqlFlexibleServerActiveDirectoryAdministratorCollection admins =
server.GetPostgreSqlFlexibleServerActiveDirectoryAdministrators();
PostgreSqlFlexibleServerActiveDirectoryAdministratorData adminData =
new PostgreSqlFlexibleServerActiveDirectoryAdministratorData
{
PrincipalType = PostgreSqlFlexibleServerPrincipalType.User,
PrincipalName = "aad-admin@contoso.com" ,
TenantId = Guid.Parse("<tenant-id>" )
};
ArmOperation<PostgreSqlFlexibleServerActiveDirectoryAdministratorResource> operation = await admins
.CreateOrUpdateAsync(WaitUntil.Completed, "<entra-object-id>" , adminData);
6. List and Manage Servers
await foreach (PostgreSqlFlexibleServerResource server in resourceGroup.GetPostgreSqlFlexibleServers())
{
Console.WriteLine($"Server: {server.Data.Name} " );
Console.WriteLine($" FQDN: {server.Data.FullyQualifiedDomainName} " );
Console.WriteLine($" Version: {server.Data.Version} " );
Console.WriteLine($" State: {server.Data.State} " );
Console.WriteLine($" SKU: {server.Data.Sku.Name} ({server.Data.Sku.Tier} )" );
Console.WriteLine($" HA: {server.Data.HighAvailability?.Mode} " );
}
await foreach (PostgreSqlFlexibleServerDatabaseResource db in server.GetPostgreSqlFlexibleServerDatabases())
{
Console.WriteLine($"Database: {db.Data.Name} " );
}
7. Backup and Point-in-Time Restore
await foreach (PostgreSqlFlexibleServerBackupResource backup in server.GetPostgreSqlFlexibleServerBackups())
{
Console.WriteLine($"Backup: {backup.Data.Name} " );
Console.WriteLine($" Type: {backup.Data.BackupType} " );
Console.WriteLine($" Completed: {backup.Data.CompletedOn} " );
}
PostgreSqlFlexibleServerData restoreData = new PostgreSqlFlexibleServerData(AzureLocation.EastUS)
{
CreateMode = PostgreSqlFlexibleServerCreateMode.PointInTimeRestore,
SourceServerResourceId = server.Id,
PointInTimeUtc = DateTimeOffset.UtcNow.AddHours(-2 )
};
ArmOperation<PostgreSqlFlexibleServerResource> operation = await servers
.CreateOrUpdateAsync(WaitUntil.Completed, "my-postgresql-restored" , restoreData);
8. Create Read Replica PostgreSqlFlexibleServerData replicaData = new PostgreSqlFlexibleServerData(AzureLocation.WestUS)
{
CreateMode = PostgreSqlFlexibleServerCreateMode.Replica,
SourceServerResourceId = server.Id,
Sku = new PostgreSqlFlexibleServerSku("Standard_D2ds_v4" , PostgreSqlFlexibleServerSkuTier.GeneralPurpose)
};
ArmOperation<PostgreSqlFlexibleServerResource> operation = await servers
.CreateOrUpdateAsync(WaitUntil.Completed, "my-postgresql-replica" , replicaData);
9. Stop and Start Server PostgreSqlFlexibleServerResource server = await resourceGroup
.GetPostgreSqlFlexibleServerAsync("my-postgresql-server" );
await server.StopAsync(WaitUntil.Completed);
await server.StartAsync(WaitUntil.Completed);
await server.RestartAsync(WaitUntil.Completed, new PostgreSqlFlexibleServerRestartParameter
{
RestartWithFailover = true ,
FailoverMode = PostgreSqlFlexibleServerFailoverMode.PlannedFailover
});
10. Update Server (Scale) PostgreSqlFlexibleServerResource server = await resourceGroup
.GetPostgreSqlFlexibleServerAsync("my-postgresql-server" );
PostgreSqlFlexibleServerPatch patch = new PostgreSqlFlexibleServerPatch
{
Sku = new PostgreSqlFlexibleServerSku("Standard_D4ds_v4" , PostgreSqlFlexibleServerSkuTier.GeneralPurpose),
Storage = new PostgreSqlFlexibleServerStorage
{
StorageSizeInGB = 256 ,
Tier = PostgreSqlStorageTierName.P40
}
};
ArmOperation<PostgreSqlFlexibleServerResource> operation = await server
.UpdateAsync(WaitUntil.Completed, patch);
11. Delete Server PostgreSqlFlexibleServerResource server = await resourceGroup
.GetPostgreSqlFlexibleServerAsync("my-postgresql-server" );
await server.DeleteAsync(WaitUntil.Completed);
Key Types Reference Type Purpose PostgreSqlFlexibleServerResourceFlexible Server instance PostgreSqlFlexibleServerDataServer configuration data PostgreSqlFlexibleServerCollectionCollection of servers PostgreSqlFlexibleServerDatabaseResourceDatabase within server PostgreSqlFlexibleServerFirewallRuleResourceIP firewall rule PostgreSqlFlexibleServerConfigurationResourceServer parameter PostgreSqlFlexibleServerBackupResourceBackup metadata PostgreSqlFlexibleServerActiveDirectoryAdministratorResourceEntra ID admin PostgreSqlFlexibleServerSkuSKU (compute tier + size) PostgreSqlFlexibleServerStorageStorage configuration PostgreSqlFlexibleServerHighAvailabilityHA configuration PostgreSqlFlexibleServerBackupPropertiesBackup settings PostgreSqlFlexibleServerAuthConfigAuthentication settings
SKU Tiers Tier Use Case SKU Examples BurstableDev/test, light workloads Standard_B1ms, Standard_B2s GeneralPurposeProduction workloads Standard_D2ds_v4, Standard_D4ds_v4 MemoryOptimizedHigh memory requirements Standard_E2ds_v4, Standard_E4ds_v4
PostgreSQL Versions Version Enum Value PostgreSQL 11 Ver11PostgreSQL 12 Ver12PostgreSQL 13 Ver13PostgreSQL 14 Ver14PostgreSQL 15 Ver15PostgreSQL 16 Ver16
High Availability Modes Mode Description DisabledNo HA (single server) SameZoneHA within same availability zone ZoneRedundantHA across availability zones
Best Practices
Use Flexible Server — Single Server is deprecated
Enable zone-redundant HA — For production workloads
Use DefaultAzureCredential — Prefer over connection strings
Configure Entra ID authentication — More secure than SQL auth alone
Enable both auth methods — Entra ID + password for flexibility
Set appropriate backup retention — 7-35 days based on compliance
Use private endpoints — For secure network access
Tune server parameters — Based on workload characteristics
Use read replicas — For read-heavy workloads
Stop dev/test servers — Save costs when not in use
Error Handling using Azure;
try
{
ArmOperation<PostgreSqlFlexibleServerResource> operation = await servers
.CreateOrUpdateAsync(WaitUntil.Completed, "my-postgresql" , data);
}
catch (RequestFailedException ex) when (ex.Status == 409 )
{
Console.WriteLine("Server already exists" );
}
catch (RequestFailedException ex) when (ex.Status == 400 )
{
Console.WriteLine($"Invalid configuration: {ex.Message} " );
}
catch (RequestFailedException ex)
{
Console.WriteLine($"Azure error: {ex.Status} - {ex.Message} " );
}
Connection String After creating the server, connect using:
string connectionString = $"Host={server.Data.FullyQualifiedDomainName} ;" +
"Database=myappdb;" +
"Username=pgadmin;" +
"Password=YourSecurePassword123!;" +
"SSL Mode=Require;Trust Server Certificate=true;" ;
var credential = new DefaultAzureCredential();
var token = await credential.GetTokenAsync(
new TokenRequestContext(new [] { "https://ossrdbms-aad.database.windows.net/.default" }));
string connectionString = $"Host={server.Data.FullyQualifiedDomainName} ;" +
"Database=myappdb;" +
$"Username=aad-admin@contoso.com;" +
$"Password={token.Token} ;" +
"SSL Mode=Require;" ;
Related SDKs SDK Purpose Install Azure.ResourceManager.PostgreSqlPostgreSQL management (this SDK) dotnet add package Azure.ResourceManager.PostgreSqlAzure.ResourceManager.MySqlMySQL management dotnet add package Azure.ResourceManager.MySqlNpgsqlPostgreSQL data access dotnet add package NpgsqlNpgsql.EntityFrameworkCore.PostgreSQLEF Core provider dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
Reference Links
When to Use This skill is applicable to execute the workflow or actions described in the overview.
Connections
Domain: [[Software Entwicklung]]
Kategorie: [[Datenbanken]]
Navigation: [[Skills Uebersicht]], [[Home]]