Azure Blob Storage
Datafly Signal writes batches of first-party events as blobs into an Azure Blob Storage container — ready for query with Synapse, Databricks, Fabric, or your preferred analytics engine.
Prerequisites
Before configuring Azure Blob Storage in Signal, you need an Azure account with a Storage Account, a blob container, and a connection string.
Create an Azure Account
If you don’t already have one, sign up at azure.microsoft.com. Set up a subscription with billing configured.
Create a Storage Account
- In the Azure portal, search for Storage accounts and click Create.
- Select your Subscription and Resource group (or create a new one).
- Enter a Storage account name (e.g.
dataflysignalevents). Names must be globally unique, 3-24 characters, lowercase letters and numbers only. - Select a Region close to your Signal deployment.
- Choose Performance: Standard (recommended) or Premium.
- Choose Redundancy: LRS (cheapest), GRS, or ZRS based on your durability requirements.
- Click Review + Create > Create.
Create a Blob Container
- Open your new Storage Account in the Azure portal.
- In the left sidebar, click Containers (under Data storage).
- Click + Container.
- Enter a Name (e.g.
datafly-events). - Set Public access level to Private (recommended).
- Click Create.
Get the Connection String
- In your Storage Account, go to Security + networking > Access keys.
- Click Show next to one of the connection strings.
- Copy the full Connection string value.
Store the connection string securely. It provides full access to your storage account. Consider using a Shared Access Signature (SAS) with limited permissions for production deployments.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
account_name | string | Yes | The Azure Storage account name. Also accepts storage_account. |
container | string | Yes | The blob container name. Also accepts container_name. |
account_key | secret | One of these | Storage account access key. Also accepts connection_string. |
sas_token | secret | One of these | Optional SAS token granting Write + Create on the container — preferred over the account key for production. |
prefix | string | No | Optional prefix (virtual directory) prepended to all blob names. Include a trailing slash. |
Signal Setup
Quick Setup
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Azure Blob Storage or filter by Cloud Storage.
- Click Install, select a variant if available, and fill in the required fields.
- Click Install Integration to create the integration with a ready-to-use default blueprint.
API Setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/azure_blob/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Azure Blob Storage",
"variant": "default",
"config": {
"account_name": "dataflysignalevents",
"container": "datafly-events",
"account_key": "YOUR_STORAGE_ACCOUNT_KEY",
"prefix": "events/"
},
"delivery_mode": "server_side"
}'Schema
Signal writes batched events as newline-delimited JSON (NDJSON) blobs. Each line is one event using the canonical envelope (event_id, type, event, anonymous_id, user_id, timestamp, received_at, sent_at, context, properties, traits, source_id, integration_id).
Blob names follow the pattern <prefix>YYYY/MM/DD/HH/<batch-uuid>.json.gz, suitable for partitioned reads from Synapse, Databricks, or Fabric.
Consent
Azure Blob Storage is a first-party destination in your own subscription. The default blueprint forwards all events. Apply consent-aware filtering or partitioning via pipeline transforms on context.consent if needed.
Testing
- Enable the integration in Signal and trigger a test event on your website.
- In the Azure portal, open your Storage Account > Containers > your container.
- Browse the blob list and verify that event files are appearing under the configured prefix.
- Click on a blob to download and inspect the event data.
- In Signal, check the Live Events view to confirm delivery status shows as successful.
Troubleshooting
| Problem | Solution |
|---|---|
| Events not appearing in the container | Verify the storage account name, container name, and connection string are correct. |
AuthenticationFailed | The connection string is invalid or the account key has been rotated. Get a fresh connection string from Access Keys. |
ContainerNotFound | The container does not exist. Verify the container name in the Azure portal. |
AuthorizationPermissionMismatch | If using a SAS token, ensure it has Write and Create permissions on the container. |
| Blobs appearing but empty | Check the batch settings. Events are buffered before flushing to blobs. |
| Connection timeout | Verify the storage account is accessible from Signal’s network. Check any firewall rules under Networking > Firewalls and virtual networks. |
Visit Azure Blob Storage documentation for full API reference, lifecycle management, and access tier configuration.