The azure-native:datashare:BlobContainerDataSetMapping resource, part of the Pulumi Azure Native provider, defines where incoming blob container datasets land in a data consumer’s Azure subscription. This guide focuses on one capability: creating dataset mappings within share subscriptions.
Dataset mappings belong to share subscriptions within Data Share accounts. They route incoming shared data to your storage accounts and containers. The examples are intentionally small. Combine them with your own Data Share accounts, share subscriptions, and destination storage infrastructure.
Map a blob container dataset to storage
Data consumers receiving shared datasets establish where Azure Data Share writes received blob container data by creating a dataset mapping.
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const blobContainerDataSetMapping = new azure_native.datashare.BlobContainerDataSetMapping("blobContainerDataSetMapping", {
accountName: "Account1",
dataSetMappingName: "DatasetMapping1",
resourceGroupName: "SampleResourceGroup",
shareSubscriptionName: "ShareSubscription1",
});
import pulumi
import pulumi_azure_native as azure_native
blob_container_data_set_mapping = azure_native.datashare.BlobContainerDataSetMapping("blobContainerDataSetMapping",
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.NewBlobContainerDataSetMapping(ctx, "blobContainerDataSetMapping", &datashare.BlobContainerDataSetMappingArgs{
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 blobContainerDataSetMapping = new AzureNative.DataShare.BlobContainerDataSetMapping("blobContainerDataSetMapping", 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.BlobContainerDataSetMapping;
import com.pulumi.azurenative.datashare.BlobContainerDataSetMappingArgs;
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 blobContainerDataSetMapping = new BlobContainerDataSetMapping("blobContainerDataSetMapping", BlobContainerDataSetMappingArgs.builder()
.accountName("Account1")
.dataSetMappingName("DatasetMapping1")
.resourceGroupName("SampleResourceGroup")
.shareSubscriptionName("ShareSubscription1")
.build());
}
}
resources:
blobContainerDataSetMapping:
type: azure-native:datashare:BlobContainerDataSetMapping
properties:
accountName: Account1
dataSetMappingName: DatasetMapping1
resourceGroupName: SampleResourceGroup
shareSubscriptionName: ShareSubscription1
The accountName and shareSubscriptionName identify the consumer-side Data Share account and subscription receiving the data. The dataSetMappingName provides a unique identifier for this routing rule. When the provider synchronizes shared data, it uses this mapping to determine the destination storage account and container (configured via additional properties not shown in this minimal example).
Beyond these examples
This snippet focuses on dataset mapping creation and naming. 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 storage accounts and containers for destination infrastructure. It focuses on creating the mapping resource rather than provisioning the surrounding data sharing infrastructure.
To keep things focused, common dataset mapping patterns are omitted, including:
- Destination storage configuration (containerName, storageAccountName, subscriptionId)
- Source dataset identification (dataSetId)
- Resource group and subscription targeting (resourceGroup)
- Mapping kind specification (kind property for container type)
These omissions are intentional: the goal is to illustrate how the dataset mapping resource is wired, not provide drop-in data sharing modules. See the BlobContainerDataSetMapping resource reference for all available configuration options.
Let's configure Azure Blob Container Data Set Mappings
Get started with Pulumi Cloud, then follow our quick setup guide to deploy this infrastructure.
Try Pulumi Cloud for FREEFrequently Asked Questions
Configuration & Setup
containerName, dataSetId, kind (must be ‘Container’), resourceGroup, storageAccountName, and subscriptionId.storageAccountName for the account name, subscriptionId for the subscription, and resourceGroup for the resource group.kind must be set to the expected value ‘Container’.Immutability & Lifecycle
accountName, dataSetMappingName, resourceGroupName, and shareSubscriptionName. Changing any of these requires replacing the resource.dataSetMappingStatus for mapping status and provisioningState for provisioning state.Using a different cloud?
Explore integration guides for other cloud providers: