Namespace Disaster Recovery Config Args
data class NamespaceDisasterRecoveryConfigArgs(val aliasAuthorizationRuleId: Output<String>? = null, val name: Output<String>? = null, val partnerNamespaceId: Output<String>? = null, val primaryNamespaceId: Output<String>? = null) : ConvertibleToJava<NamespaceDisasterRecoveryConfigArgs>
Manages a Disaster Recovery Config for a Service Bus Namespace.
NOTE: Disaster Recovery Config is a Premium SKU only capability.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "servicebus-replication",
location: "West Europe",
});
const primary = new azure.servicebus.Namespace("primary", {
name: "servicebus-primary",
location: example.location,
resourceGroupName: example.name,
sku: "Premium",
capacity: 1,
});
const secondary = new azure.servicebus.Namespace("secondary", {
name: "servicebus-secondary",
location: example.location,
resourceGroupName: example.name,
sku: "Premium",
capacity: 1,
});
const exampleNamespaceAuthorizationRule = new azure.servicebus.NamespaceAuthorizationRule("example", {
name: "examplerule",
namespaceId: exampleAzurermServicebusNamespace.id,
listen: true,
send: true,
manage: false,
});
const exampleNamespaceDisasterRecoveryConfig = new azure.servicebus.NamespaceDisasterRecoveryConfig("example", {
name: "servicebus-alias-name",
primaryNamespaceId: primary.id,
partnerNamespaceId: secondary.id,
aliasAuthorizationRuleId: exampleNamespaceAuthorizationRule.id,
});
Content copied to clipboard
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="servicebus-replication",
location="West Europe")
primary = azure.servicebus.Namespace("primary",
name="servicebus-primary",
location=example.location,
resource_group_name=example.name,
sku="Premium",
capacity=1)
secondary = azure.servicebus.Namespace("secondary",
name="servicebus-secondary",
location=example.location,
resource_group_name=example.name,
sku="Premium",
capacity=1)
example_namespace_authorization_rule = azure.servicebus.NamespaceAuthorizationRule("example",
name="examplerule",
namespace_id=example_azurerm_servicebus_namespace["id"],
listen=True,
send=True,
manage=False)
example_namespace_disaster_recovery_config = azure.servicebus.NamespaceDisasterRecoveryConfig("example",
name="servicebus-alias-name",
primary_namespace_id=primary.id,
partner_namespace_id=secondary.id,
alias_authorization_rule_id=example_namespace_authorization_rule.id)
Content copied to clipboard
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 = "servicebus-replication",
Location = "West Europe",
});
var primary = new Azure.ServiceBus.Namespace("primary", new()
{
Name = "servicebus-primary",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Premium",
Capacity = 1,
});
var secondary = new Azure.ServiceBus.Namespace("secondary", new()
{
Name = "servicebus-secondary",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Premium",
Capacity = 1,
});
var exampleNamespaceAuthorizationRule = new Azure.ServiceBus.NamespaceAuthorizationRule("example", new()
{
Name = "examplerule",
NamespaceId = exampleAzurermServicebusNamespace.Id,
Listen = true,
Send = true,
Manage = false,
});
var exampleNamespaceDisasterRecoveryConfig = new Azure.ServiceBus.NamespaceDisasterRecoveryConfig("example", new()
{
Name = "servicebus-alias-name",
PrimaryNamespaceId = primary.Id,
PartnerNamespaceId = secondary.Id,
AliasAuthorizationRuleId = exampleNamespaceAuthorizationRule.Id,
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/servicebus"
"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("servicebus-replication"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
primary, err := servicebus.NewNamespace(ctx, "primary", &servicebus.NamespaceArgs{
Name: pulumi.String("servicebus-primary"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Premium"),
Capacity: pulumi.Int(1),
})
if err != nil {
return err
}
secondary, err := servicebus.NewNamespace(ctx, "secondary", &servicebus.NamespaceArgs{
Name: pulumi.String("servicebus-secondary"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Premium"),
Capacity: pulumi.Int(1),
})
if err != nil {
return err
}
exampleNamespaceAuthorizationRule, err := servicebus.NewNamespaceAuthorizationRule(ctx, "example", &servicebus.NamespaceAuthorizationRuleArgs{
Name: pulumi.String("examplerule"),
NamespaceId: pulumi.Any(exampleAzurermServicebusNamespace.Id),
Listen: pulumi.Bool(true),
Send: pulumi.Bool(true),
Manage: pulumi.Bool(false),
})
if err != nil {
return err
}
_, err = servicebus.NewNamespaceDisasterRecoveryConfig(ctx, "example", &servicebus.NamespaceDisasterRecoveryConfigArgs{
Name: pulumi.String("servicebus-alias-name"),
PrimaryNamespaceId: primary.ID(),
PartnerNamespaceId: secondary.ID(),
AliasAuthorizationRuleId: exampleNamespaceAuthorizationRule.ID(),
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
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.servicebus.Namespace;
import com.pulumi.azure.servicebus.NamespaceArgs;
import com.pulumi.azure.servicebus.NamespaceAuthorizationRule;
import com.pulumi.azure.servicebus.NamespaceAuthorizationRuleArgs;
import com.pulumi.azure.servicebus.NamespaceDisasterRecoveryConfig;
import com.pulumi.azure.servicebus.NamespaceDisasterRecoveryConfigArgs;
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("servicebus-replication")
.location("West Europe")
.build());
var primary = new Namespace("primary", NamespaceArgs.builder()
.name("servicebus-primary")
.location(example.location())
.resourceGroupName(example.name())
.sku("Premium")
.capacity("1")
.build());
var secondary = new Namespace("secondary", NamespaceArgs.builder()
.name("servicebus-secondary")
.location(example.location())
.resourceGroupName(example.name())
.sku("Premium")
.capacity("1")
.build());
var exampleNamespaceAuthorizationRule = new NamespaceAuthorizationRule("exampleNamespaceAuthorizationRule", NamespaceAuthorizationRuleArgs.builder()
.name("examplerule")
.namespaceId(exampleAzurermServicebusNamespace.id())
.listen(true)
.send(true)
.manage(false)
.build());
var exampleNamespaceDisasterRecoveryConfig = new NamespaceDisasterRecoveryConfig("exampleNamespaceDisasterRecoveryConfig", NamespaceDisasterRecoveryConfigArgs.builder()
.name("servicebus-alias-name")
.primaryNamespaceId(primary.id())
.partnerNamespaceId(secondary.id())
.aliasAuthorizationRuleId(exampleNamespaceAuthorizationRule.id())
.build());
}
}
Content copied to clipboard
resources:
example:
type: azure:core:ResourceGroup
properties:
name: servicebus-replication
location: West Europe
primary:
type: azure:servicebus:Namespace
properties:
name: servicebus-primary
location: ${example.location}
resourceGroupName: ${example.name}
sku: Premium
capacity: '1'
secondary:
type: azure:servicebus:Namespace
properties:
name: servicebus-secondary
location: ${example.location}
resourceGroupName: ${example.name}
sku: Premium
capacity: '1'
exampleNamespaceAuthorizationRule:
type: azure:servicebus:NamespaceAuthorizationRule
name: example
properties:
name: examplerule
namespaceId: ${exampleAzurermServicebusNamespace.id}
listen: true
send: true
manage: false
exampleNamespaceDisasterRecoveryConfig:
type: azure:servicebus:NamespaceDisasterRecoveryConfig
name: example
properties:
name: servicebus-alias-name
primaryNamespaceId: ${primary.id}
partnerNamespaceId: ${secondary.id}
aliasAuthorizationRuleId: ${exampleNamespaceAuthorizationRule.id}
Content copied to clipboard
Import
Service Bus DR configs can be imported using the resource id
, e.g.
$ pulumi import azure:servicebus/namespaceDisasterRecoveryConfig:NamespaceDisasterRecoveryConfig config1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/disasterRecoveryConfigs/config1
Content copied to clipboard
Properties
Link copied to clipboard
The Shared access policies used to access the connection string for the alias.
Link copied to clipboard
The ID of the Service Bus Namespace to replicate to.
Link copied to clipboard
The ID of the primary Service Bus Namespace to replicate. Changing this forces a new resource to be created.