Time Series Database Connection
Manages a Digital Twins Time Series Database Connection.
Example Usage
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.digitaltwins.Instance;
import com.pulumi.azure.digitaltwins.InstanceArgs;
import com.pulumi.azure.digitaltwins.inputs.InstanceIdentityArgs;
import com.pulumi.azure.eventhub.EventHubNamespace;
import com.pulumi.azure.eventhub.EventHubNamespaceArgs;
import com.pulumi.azure.eventhub.EventHub;
import com.pulumi.azure.eventhub.EventHubArgs;
import com.pulumi.azure.eventhub.ConsumerGroup;
import com.pulumi.azure.eventhub.ConsumerGroupArgs;
import com.pulumi.azure.kusto.Cluster;
import com.pulumi.azure.kusto.ClusterArgs;
import com.pulumi.azure.kusto.inputs.ClusterSkuArgs;
import com.pulumi.azure.kusto.Database;
import com.pulumi.azure.kusto.DatabaseArgs;
import com.pulumi.azure.authorization.Assignment;
import com.pulumi.azure.authorization.AssignmentArgs;
import com.pulumi.azure.kusto.DatabasePrincipalAssignment;
import com.pulumi.azure.kusto.DatabasePrincipalAssignmentArgs;
import com.pulumi.azure.digitaltwins.TimeSeriesDatabaseConnection;
import com.pulumi.azure.digitaltwins.TimeSeriesDatabaseConnectionArgs;
import com.pulumi.resources.CustomResourceOptions;
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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.location("West Europe")
.build());
var exampleInstance = new Instance("exampleInstance", InstanceArgs.builder()
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.identity(InstanceIdentityArgs.builder()
.type("SystemAssigned")
.build())
.build());
var exampleEventHubNamespace = new EventHubNamespace("exampleEventHubNamespace", EventHubNamespaceArgs.builder()
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.sku("Standard")
.build());
var exampleEventHub = new EventHub("exampleEventHub", EventHubArgs.builder()
.namespaceName(exampleEventHubNamespace.name())
.resourceGroupName(exampleResourceGroup.name())
.partitionCount(2)
.messageRetention(7)
.build());
var exampleConsumerGroup = new ConsumerGroup("exampleConsumerGroup", ConsumerGroupArgs.builder()
.namespaceName(exampleEventHubNamespace.name())
.eventhubName(exampleEventHub.name())
.resourceGroupName(exampleResourceGroup.name())
.build());
var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder()
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.sku(ClusterSkuArgs.builder()
.name("Dev(No SLA)_Standard_D11_v2")
.capacity(1)
.build())
.build());
var exampleDatabase = new Database("exampleDatabase", DatabaseArgs.builder()
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.clusterName(exampleCluster.name())
.build());
var databaseContributor = new Assignment("databaseContributor", AssignmentArgs.builder()
.scope(exampleDatabase.id())
.principalId(exampleInstance.identity().applyValue(identity -> identity.principalId()))
.roleDefinitionName("Contributor")
.build());
var eventhubDataOwner = new Assignment("eventhubDataOwner", AssignmentArgs.builder()
.scope(exampleEventHub.id())
.principalId(exampleInstance.identity().applyValue(identity -> identity.principalId()))
.roleDefinitionName("Azure Event Hubs Data Owner")
.build());
var exampleDatabasePrincipalAssignment = new DatabasePrincipalAssignment("exampleDatabasePrincipalAssignment", DatabasePrincipalAssignmentArgs.builder()
.resourceGroupName(exampleResourceGroup.name())
.clusterName(exampleCluster.name())
.databaseName(exampleDatabase.name())
.tenantId(exampleInstance.identity().applyValue(identity -> identity.tenantId()))
.principalId(exampleInstance.identity().applyValue(identity -> identity.principalId()))
.principalType("App")
.role("Admin")
.build());
var exampleTimeSeriesDatabaseConnection = new TimeSeriesDatabaseConnection("exampleTimeSeriesDatabaseConnection", TimeSeriesDatabaseConnectionArgs.builder()
.digitalTwinsId(exampleInstance.id())
.eventhubName(exampleEventHub.name())
.eventhubNamespaceId(exampleEventHubNamespace.id())
.eventhubNamespaceEndpointUri(exampleEventHubNamespace.name().applyValue(name -> String.format("sb://%s.servicebus.windows.net", name)))
.eventhubConsumerGroupName(exampleConsumerGroup.name())
.kustoClusterId(exampleCluster.id())
.kustoClusterUri(exampleCluster.uri())
.kustoDatabaseName(exampleDatabase.name())
.kustoTableName("exampleTable")
.build(), CustomResourceOptions.builder()
.dependsOn(
databaseContributor,
eventhubDataOwner,
exampleDatabasePrincipalAssignment)
.build());
}
}
Content copied to clipboard
Import
Digital Twins Time Series Database Connections can be imported using the resource id
, e.g.
$ pulumi import azure:digitaltwins/timeSeriesDatabaseConnection:TimeSeriesDatabaseConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DigitalTwins/digitalTwinsInstances/dt1/timeSeriesDatabaseConnections/connection1
Content copied to clipboard