FailoverGroup

class FailoverGroup : KotlinCustomResource

Manages a Microsoft Azure SQL Failover Group.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "database-rg",
location: "West Europe",
});
const primary = new azure.mssql.Server("primary", {
name: "mssqlserver-primary",
resourceGroupName: example.name,
location: example.location,
version: "12.0",
administratorLogin: "missadministrator",
administratorLoginPassword: "thisIsKat11",
});
const secondary = new azure.mssql.Server("secondary", {
name: "mssqlserver-secondary",
resourceGroupName: example.name,
location: "North Europe",
version: "12.0",
administratorLogin: "missadministrator",
administratorLoginPassword: "thisIsKat12",
});
const exampleDatabase = new azure.mssql.Database("example", {
name: "exampledb",
serverId: primary.id,
skuName: "S1",
collation: "SQL_Latin1_General_CP1_CI_AS",
maxSizeGb: 200,
});
const exampleFailoverGroup = new azure.mssql.FailoverGroup("example", {
name: "example",
serverId: primary.id,
databases: [exampleDatabase.id],
partnerServers: [{
id: secondary.id,
}],
readWriteEndpointFailoverPolicy: {
mode: "Automatic",
graceMinutes: 80,
},
tags: {
environment: "prod",
database: "example",
},
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="database-rg",
location="West Europe")
primary = azure.mssql.Server("primary",
name="mssqlserver-primary",
resource_group_name=example.name,
location=example.location,
version="12.0",
administrator_login="missadministrator",
administrator_login_password="thisIsKat11")
secondary = azure.mssql.Server("secondary",
name="mssqlserver-secondary",
resource_group_name=example.name,
location="North Europe",
version="12.0",
administrator_login="missadministrator",
administrator_login_password="thisIsKat12")
example_database = azure.mssql.Database("example",
name="exampledb",
server_id=primary.id,
sku_name="S1",
collation="SQL_Latin1_General_CP1_CI_AS",
max_size_gb=200)
example_failover_group = azure.mssql.FailoverGroup("example",
name="example",
server_id=primary.id,
databases=[example_database.id],
partner_servers=[{
"id": secondary.id,
}],
read_write_endpoint_failover_policy={
"mode": "Automatic",
"grace_minutes": 80,
},
tags={
"environment": "prod",
"database": "example",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "database-rg",
Location = "West Europe",
});
var primary = new Azure.MSSql.Server("primary", new()
{
Name = "mssqlserver-primary",
ResourceGroupName = example.Name,
Location = example.Location,
Version = "12.0",
AdministratorLogin = "missadministrator",
AdministratorLoginPassword = "thisIsKat11",
});
var secondary = new Azure.MSSql.Server("secondary", new()
{
Name = "mssqlserver-secondary",
ResourceGroupName = example.Name,
Location = "North Europe",
Version = "12.0",
AdministratorLogin = "missadministrator",
AdministratorLoginPassword = "thisIsKat12",
});
var exampleDatabase = new Azure.MSSql.Database("example", new()
{
Name = "exampledb",
ServerId = primary.Id,
SkuName = "S1",
Collation = "SQL_Latin1_General_CP1_CI_AS",
MaxSizeGb = 200,
});
var exampleFailoverGroup = new Azure.MSSql.FailoverGroup("example", new()
{
Name = "example",
ServerId = primary.Id,
Databases = new[]
{
exampleDatabase.Id,
},
PartnerServers = new[]
{
new Azure.MSSql.Inputs.FailoverGroupPartnerServerArgs
{
Id = secondary.Id,
},
},
ReadWriteEndpointFailoverPolicy = new Azure.MSSql.Inputs.FailoverGroupReadWriteEndpointFailoverPolicyArgs
{
Mode = "Automatic",
GraceMinutes = 80,
},
Tags =
{
{ "environment", "prod" },
{ "database", "example" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/mssql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("database-rg"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
primary, err := mssql.NewServer(ctx, "primary", &mssql.ServerArgs{
Name: pulumi.String("mssqlserver-primary"),
ResourceGroupName: example.Name,
Location: example.Location,
Version: pulumi.String("12.0"),
AdministratorLogin: pulumi.String("missadministrator"),
AdministratorLoginPassword: pulumi.String("thisIsKat11"),
})
if err != nil {
return err
}
secondary, err := mssql.NewServer(ctx, "secondary", &mssql.ServerArgs{
Name: pulumi.String("mssqlserver-secondary"),
ResourceGroupName: example.Name,
Location: pulumi.String("North Europe"),
Version: pulumi.String("12.0"),
AdministratorLogin: pulumi.String("missadministrator"),
AdministratorLoginPassword: pulumi.String("thisIsKat12"),
})
if err != nil {
return err
}
exampleDatabase, err := mssql.NewDatabase(ctx, "example", &mssql.DatabaseArgs{
Name: pulumi.String("exampledb"),
ServerId: primary.ID(),
SkuName: pulumi.String("S1"),
Collation: pulumi.String("SQL_Latin1_General_CP1_CI_AS"),
MaxSizeGb: pulumi.Int(200),
})
if err != nil {
return err
}
_, err = mssql.NewFailoverGroup(ctx, "example", &mssql.FailoverGroupArgs{
Name: pulumi.String("example"),
ServerId: primary.ID(),
Databases: pulumi.StringArray{
exampleDatabase.ID(),
},
PartnerServers: mssql.FailoverGroupPartnerServerArray{
&mssql.FailoverGroupPartnerServerArgs{
Id: secondary.ID(),
},
},
ReadWriteEndpointFailoverPolicy: &mssql.FailoverGroupReadWriteEndpointFailoverPolicyArgs{
Mode: pulumi.String("Automatic"),
GraceMinutes: pulumi.Int(80),
},
Tags: pulumi.StringMap{
"environment": pulumi.String("prod"),
"database": pulumi.String("example"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.mssql.Server;
import com.pulumi.azure.mssql.ServerArgs;
import com.pulumi.azure.mssql.Database;
import com.pulumi.azure.mssql.DatabaseArgs;
import com.pulumi.azure.mssql.FailoverGroup;
import com.pulumi.azure.mssql.FailoverGroupArgs;
import com.pulumi.azure.mssql.inputs.FailoverGroupPartnerServerArgs;
import com.pulumi.azure.mssql.inputs.FailoverGroupReadWriteEndpointFailoverPolicyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("database-rg")
.location("West Europe")
.build());
var primary = new Server("primary", ServerArgs.builder()
.name("mssqlserver-primary")
.resourceGroupName(example.name())
.location(example.location())
.version("12.0")
.administratorLogin("missadministrator")
.administratorLoginPassword("thisIsKat11")
.build());
var secondary = new Server("secondary", ServerArgs.builder()
.name("mssqlserver-secondary")
.resourceGroupName(example.name())
.location("North Europe")
.version("12.0")
.administratorLogin("missadministrator")
.administratorLoginPassword("thisIsKat12")
.build());
var exampleDatabase = new Database("exampleDatabase", DatabaseArgs.builder()
.name("exampledb")
.serverId(primary.id())
.skuName("S1")
.collation("SQL_Latin1_General_CP1_CI_AS")
.maxSizeGb(200)
.build());
var exampleFailoverGroup = new FailoverGroup("exampleFailoverGroup", FailoverGroupArgs.builder()
.name("example")
.serverId(primary.id())
.databases(exampleDatabase.id())
.partnerServers(FailoverGroupPartnerServerArgs.builder()
.id(secondary.id())
.build())
.readWriteEndpointFailoverPolicy(FailoverGroupReadWriteEndpointFailoverPolicyArgs.builder()
.mode("Automatic")
.graceMinutes(80)
.build())
.tags(Map.ofEntries(
Map.entry("environment", "prod"),
Map.entry("database", "example")
))
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: database-rg
location: West Europe
primary:
type: azure:mssql:Server
properties:
name: mssqlserver-primary
resourceGroupName: ${example.name}
location: ${example.location}
version: '12.0'
administratorLogin: missadministrator
administratorLoginPassword: thisIsKat11
secondary:
type: azure:mssql:Server
properties:
name: mssqlserver-secondary
resourceGroupName: ${example.name}
location: North Europe
version: '12.0'
administratorLogin: missadministrator
administratorLoginPassword: thisIsKat12
exampleDatabase:
type: azure:mssql:Database
name: example
properties:
name: exampledb
serverId: ${primary.id}
skuName: S1
collation: SQL_Latin1_General_CP1_CI_AS
maxSizeGb: '200'
exampleFailoverGroup:
type: azure:mssql:FailoverGroup
name: example
properties:
name: example
serverId: ${primary.id}
databases:
- ${exampleDatabase.id}
partnerServers:
- id: ${secondary.id}
readWriteEndpointFailoverPolicy:
mode: Automatic
graceMinutes: 80
tags:
environment: prod
database: example

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.Sql: 2023-08-01-preview

Import

Failover Groups can be imported using the resource id, e.g.

$ pulumi import azure:mssql/failoverGroup:FailoverGroup example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Sql/servers/server1/failoverGroups/failoverGroup1

Properties

Link copied to clipboard
val databases: Output<List<String>>?

A set of database names to include in the failover group.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

The name of the Failover Group. Changing this forces a new resource to be created.

Link copied to clipboard

A partner_server block as defined below.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Whether failover is enabled for the readonly endpoint. Defaults to false.

Link copied to clipboard

A read_write_endpoint_failover_policy block as defined below.

Link copied to clipboard
val serverId: Output<String>

The ID of the primary SQL Server on which to create the failover group. Changing this forces a new resource to be created.

Link copied to clipboard
val tags: Output<Map<String, String>>?

A mapping of tags to assign to the resource.

Link copied to clipboard
val urn: Output<String>