The azure-native:datashare:KustoClusterDataSetMapping resource, part of the Pulumi Azure Native provider, defines how a shared Kusto cluster data set maps to a target Kusto cluster in the consumer’s subscription. This guide focuses on one capability: creating data set mappings for Kusto clusters.
Data set mappings are consumer-side resources that connect share subscriptions to target infrastructure. The Data Share account and share subscription must exist before you create mappings. The example is intentionally minimal. Extend it with the actual dataSetId, kustoClusterResourceId, and kind properties for a working configuration.
Map a Kusto cluster as a data destination
When you receive shared Kusto data, you create a mapping that connects the incoming data set to your own Kusto cluster.
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const kustoClusterDataSetMapping = new azure_native.datashare.KustoClusterDataSetMapping("kustoClusterDataSetMapping", {
accountName: "Account1",
dataSetMappingName: "DatasetMapping1",
resourceGroupName: "SampleResourceGroup",
shareSubscriptionName: "ShareSubscription1",
});
import pulumi
import pulumi_azure_native as azure_native
kusto_cluster_data_set_mapping = azure_native.datashare.KustoClusterDataSetMapping("kustoClusterDataSetMapping",
account_name="Account1",
data_set_mapping_name="DatasetMapping1",
resource_group_name="SampleResourceGroup",
share_subscription_name="ShareSubscription1")
package main
import (
datashare "github.com/pulumi/pulumi-azure-native-sdk/datashare/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := datashare.NewKustoClusterDataSetMapping(ctx, "kustoClusterDataSetMapping", &datashare.KustoClusterDataSetMappingArgs{
AccountName: pulumi.String("Account1"),
DataSetMappingName: pulumi.String("DatasetMapping1"),
ResourceGroupName: pulumi.String("SampleResourceGroup"),
ShareSubscriptionName: pulumi.String("ShareSubscription1"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var kustoClusterDataSetMapping = new AzureNative.DataShare.KustoClusterDataSetMapping("kustoClusterDataSetMapping", new()
{
AccountName = "Account1",
DataSetMappingName = "DatasetMapping1",
ResourceGroupName = "SampleResourceGroup",
ShareSubscriptionName = "ShareSubscription1",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.datashare.KustoClusterDataSetMapping;
import com.pulumi.azurenative.datashare.KustoClusterDataSetMappingArgs;
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 kustoClusterDataSetMapping = new KustoClusterDataSetMapping("kustoClusterDataSetMapping", KustoClusterDataSetMappingArgs.builder()
.accountName("Account1")
.dataSetMappingName("DatasetMapping1")
.resourceGroupName("SampleResourceGroup")
.shareSubscriptionName("ShareSubscription1")
.build());
}
}
resources:
kustoClusterDataSetMapping:
type: azure-native:datashare:KustoClusterDataSetMapping
properties:
accountName: Account1
dataSetMappingName: DatasetMapping1
resourceGroupName: SampleResourceGroup
shareSubscriptionName: ShareSubscription1
The mapping lives within a share subscription, which itself belongs to a Data Share account. The accountName identifies your Data Share account, shareSubscriptionName identifies the subscription to the shared data, and dataSetMappingName is the name you assign to this mapping. This example shows the structural relationships but omits the required properties that specify which source data set to map (dataSetId) and where to send the data (kustoClusterResourceId).
Beyond these examples
This snippet focuses on data set mapping creation. It’s intentionally minimal rather than a complete data sharing configuration.
The example references pre-existing infrastructure such as Azure Data Share accounts, share subscriptions, and Kusto clusters as mapping targets. It illustrates mapping structure without specifying the actual data flow.
To keep things focused, common mapping patterns are omitted, including:
- Source data set ID specification (dataSetId)
- Target Kusto cluster resource ID (kustoClusterResourceId)
- Mapping kind declaration (kind property)
- Provisioning state monitoring
These omissions are intentional: the goal is to illustrate how the mapping resource is wired, not provide drop-in data sharing modules. See the KustoClusterDataSetMapping resource reference for all available configuration options.
Let's configure Azure Data Share Kusto Cluster Mappings
Get started with Pulumi Cloud, then follow our quick setup guide to deploy this infrastructure.
Try Pulumi Cloud for FREEFrequently Asked Questions
Resource Configuration
kind to "KustoCluster". This is the required discriminator value for Kusto cluster data set mappings.dataSetId identifies the source data set you’re mapping from, while kustoClusterResourceId specifies the destination (sink) Kusto cluster where data will be received.dataSetId, kind (set to “KustoCluster”), kustoClusterResourceId, accountName, dataSetMappingName, resourceGroupName, and shareSubscriptionName.Resource Lifecycle & Immutability
accountName, dataSetMappingName, resourceGroupName, and shareSubscriptionName. Changing any of these requires replacing the resource.dataSetMappingStatus output property to see the current status, or provisioningState for the provisioning state.