Endpoint Servicebus Queue
Manages an IotHub ServiceBus Queue Endpoint
NOTE: Endpoints can be defined either directly on the
azure.iot.IoTHub
resource, or using theazurerm_iothub_endpoint_*
resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining aazurerm_iothub_endpoint_*
resource and another endpoint of a different type directly on theazure.iot.IoTHub
resource is not supported.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleNamespace = new azure.servicebus.Namespace("example", {
name: "exampleNamespace",
location: example.location,
resourceGroupName: example.name,
sku: "Standard",
});
const exampleQueue = new azure.servicebus.Queue("example", {
name: "exampleQueue",
namespaceId: exampleNamespace.id,
enablePartitioning: true,
});
const exampleQueueAuthorizationRule = new azure.servicebus.QueueAuthorizationRule("example", {
name: "exampleRule",
queueId: exampleQueue.id,
listen: false,
send: true,
manage: false,
});
const exampleIoTHub = new azure.iot.IoTHub("example", {
name: "exampleIothub",
resourceGroupName: example.name,
location: example.location,
sku: {
name: "B1",
capacity: 1,
},
tags: {
purpose: "example",
},
});
const exampleEndpointServicebusQueue = new azure.iot.EndpointServicebusQueue("example", {
resourceGroupName: example.name,
iothubId: exampleIoTHub.id,
name: "example",
connectionString: exampleQueueAuthorizationRule.primaryConnectionString,
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_namespace = azure.servicebus.Namespace("example",
name="exampleNamespace",
location=example.location,
resource_group_name=example.name,
sku="Standard")
example_queue = azure.servicebus.Queue("example",
name="exampleQueue",
namespace_id=example_namespace.id,
enable_partitioning=True)
example_queue_authorization_rule = azure.servicebus.QueueAuthorizationRule("example",
name="exampleRule",
queue_id=example_queue.id,
listen=False,
send=True,
manage=False)
example_io_t_hub = azure.iot.IoTHub("example",
name="exampleIothub",
resource_group_name=example.name,
location=example.location,
sku={
"name": "B1",
"capacity": 1,
},
tags={
"purpose": "example",
})
example_endpoint_servicebus_queue = azure.iot.EndpointServicebusQueue("example",
resource_group_name=example.name,
iothub_id=example_io_t_hub.id,
name="example",
connection_string=example_queue_authorization_rule.primary_connection_string)
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 = "example-resources",
Location = "West Europe",
});
var exampleNamespace = new Azure.ServiceBus.Namespace("example", new()
{
Name = "exampleNamespace",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Standard",
});
var exampleQueue = new Azure.ServiceBus.Queue("example", new()
{
Name = "exampleQueue",
NamespaceId = exampleNamespace.Id,
EnablePartitioning = true,
});
var exampleQueueAuthorizationRule = new Azure.ServiceBus.QueueAuthorizationRule("example", new()
{
Name = "exampleRule",
QueueId = exampleQueue.Id,
Listen = false,
Send = true,
Manage = false,
});
var exampleIoTHub = new Azure.Iot.IoTHub("example", new()
{
Name = "exampleIothub",
ResourceGroupName = example.Name,
Location = example.Location,
Sku = new Azure.Iot.Inputs.IoTHubSkuArgs
{
Name = "B1",
Capacity = 1,
},
Tags =
{
{ "purpose", "example" },
},
});
var exampleEndpointServicebusQueue = new Azure.Iot.EndpointServicebusQueue("example", new()
{
ResourceGroupName = example.Name,
IothubId = exampleIoTHub.Id,
Name = "example",
ConnectionString = exampleQueueAuthorizationRule.PrimaryConnectionString,
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/iot"
"github.com/pulumi/pulumi-azure/sdk/v5/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("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleNamespace, err := servicebus.NewNamespace(ctx, "example", &servicebus.NamespaceArgs{
Name: pulumi.String("exampleNamespace"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Standard"),
})
if err != nil {
return err
}
exampleQueue, err := servicebus.NewQueue(ctx, "example", &servicebus.QueueArgs{
Name: pulumi.String("exampleQueue"),
NamespaceId: exampleNamespace.ID(),
EnablePartitioning: pulumi.Bool(true),
})
if err != nil {
return err
}
exampleQueueAuthorizationRule, err := servicebus.NewQueueAuthorizationRule(ctx, "example", &servicebus.QueueAuthorizationRuleArgs{
Name: pulumi.String("exampleRule"),
QueueId: exampleQueue.ID(),
Listen: pulumi.Bool(false),
Send: pulumi.Bool(true),
Manage: pulumi.Bool(false),
})
if err != nil {
return err
}
exampleIoTHub, err := iot.NewIoTHub(ctx, "example", &iot.IoTHubArgs{
Name: pulumi.String("exampleIothub"),
ResourceGroupName: example.Name,
Location: example.Location,
Sku: &iot.IoTHubSkuArgs{
Name: pulumi.String("B1"),
Capacity: pulumi.Int(1),
},
Tags: pulumi.StringMap{
"purpose": pulumi.String("example"),
},
})
if err != nil {
return err
}
_, err = iot.NewEndpointServicebusQueue(ctx, "example", &iot.EndpointServicebusQueueArgs{
ResourceGroupName: example.Name,
IothubId: exampleIoTHub.ID(),
Name: pulumi.String("example"),
ConnectionString: exampleQueueAuthorizationRule.PrimaryConnectionString,
})
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.servicebus.Namespace;
import com.pulumi.azure.servicebus.NamespaceArgs;
import com.pulumi.azure.servicebus.Queue;
import com.pulumi.azure.servicebus.QueueArgs;
import com.pulumi.azure.servicebus.QueueAuthorizationRule;
import com.pulumi.azure.servicebus.QueueAuthorizationRuleArgs;
import com.pulumi.azure.iot.IoTHub;
import com.pulumi.azure.iot.IoTHubArgs;
import com.pulumi.azure.iot.inputs.IoTHubSkuArgs;
import com.pulumi.azure.iot.EndpointServicebusQueue;
import com.pulumi.azure.iot.EndpointServicebusQueueArgs;
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("example-resources")
.location("West Europe")
.build());
var exampleNamespace = new Namespace("exampleNamespace", NamespaceArgs.builder()
.name("exampleNamespace")
.location(example.location())
.resourceGroupName(example.name())
.sku("Standard")
.build());
var exampleQueue = new Queue("exampleQueue", QueueArgs.builder()
.name("exampleQueue")
.namespaceId(exampleNamespace.id())
.enablePartitioning(true)
.build());
var exampleQueueAuthorizationRule = new QueueAuthorizationRule("exampleQueueAuthorizationRule", QueueAuthorizationRuleArgs.builder()
.name("exampleRule")
.queueId(exampleQueue.id())
.listen(false)
.send(true)
.manage(false)
.build());
var exampleIoTHub = new IoTHub("exampleIoTHub", IoTHubArgs.builder()
.name("exampleIothub")
.resourceGroupName(example.name())
.location(example.location())
.sku(IoTHubSkuArgs.builder()
.name("B1")
.capacity("1")
.build())
.tags(Map.of("purpose", "example"))
.build());
var exampleEndpointServicebusQueue = new EndpointServicebusQueue("exampleEndpointServicebusQueue", EndpointServicebusQueueArgs.builder()
.resourceGroupName(example.name())
.iothubId(exampleIoTHub.id())
.name("example")
.connectionString(exampleQueueAuthorizationRule.primaryConnectionString())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleNamespace:
type: azure:servicebus:Namespace
name: example
properties:
name: exampleNamespace
location: ${example.location}
resourceGroupName: ${example.name}
sku: Standard
exampleQueue:
type: azure:servicebus:Queue
name: example
properties:
name: exampleQueue
namespaceId: ${exampleNamespace.id}
enablePartitioning: true
exampleQueueAuthorizationRule:
type: azure:servicebus:QueueAuthorizationRule
name: example
properties:
name: exampleRule
queueId: ${exampleQueue.id}
listen: false
send: true
manage: false
exampleIoTHub:
type: azure:iot:IoTHub
name: example
properties:
name: exampleIothub
resourceGroupName: ${example.name}
location: ${example.location}
sku:
name: B1
capacity: '1'
tags:
purpose: example
exampleEndpointServicebusQueue:
type: azure:iot:EndpointServicebusQueue
name: example
properties:
resourceGroupName: ${example.name}
iothubId: ${exampleIoTHub.id}
name: example
connectionString: ${exampleQueueAuthorizationRule.primaryConnectionString}
Import
IoTHub ServiceBus Queue Endpoint can be imported using the resource id
, e.g. g
$ pulumi import azure:iot/endpointServicebusQueue:EndpointServicebusQueue servicebus_queue1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/servicebusqueue_endpoint1
Properties
Type used to authenticate against the Service Bus Queue endpoint. Possible values are keyBased
and identityBased
. Defaults to keyBased
.
The connection string for the endpoint. This attribute can only be specified and is mandatory when authentication_type
is keyBased
.
URI of the Service Bus endpoint. This attribute can only be specified and is mandatory when authentication_type
is identityBased
.
Name of the Service Bus Queue. This attribute can only be specified and is mandatory when authentication_type
is identityBased
.
ID of the User Managed Identity used to authenticate against the Service Bus Queue endpoint.
The name of the resource group under which the Service Bus Queue has been created. Changing this forces a new resource to be created.