# Send data to Azure Blob Storage

{% hint style="info" %}
See the changelog of the **Azure Blob Storage** Data sink type [here](/data-sinks/azure-blob-storage-data-sink.md).
{% endhint %}

## Overview

Onum supports integration with [Azure Blob Storage](https://azure.microsoft.com/products/storage/blobs).

By integrating with Azure Storage, your organization leverages the advantages of Azure to enhance operational efficiency, reduce costs, and ensure the security and availability of data, all while scaling and innovating rapidly.&#x20;

## Prerequisites

* A valid [Microsoft Azure subscription](https://portal.azure.com/)
* An **Azure Resource Group**
* A **Storage Account** with the Blob service enabled.
* A **Container**. Create this in the the Azure Portal > Storage Account > **Containers > + Container**.

## Azure Blob Storage Setup&#x20;

* Once you have your project to connect to, make sure your user or service account has the proper roles e.g. `roles/storage.admin`  Go to **Azure Portal > IAM > Add role assignment**.

## Onum setup

{% stepper %}
{% step %}
Log in to your Onum tenant and click **Data Sinks> New Data sink**.
{% endstep %}

{% step %}
Double-click the **Azure Blob Storage** Sink.
{% endstep %}

{% step %}
Enter a **Name** for the new Data Sink. Optionally, add a **Description** and some **Tags** to identify the Sink.
{% endstep %}

{% step %}
Decide whether or not to include this Data sink info in the metrics and graphs of the [**Home**](/the-workspace/home.md) area.
{% endstep %}

{% step %}
Enter the **Storage account name**<mark style="color:red;">**\***</mark> to connect to.

1. In the Azure Portal, search **Storage accounts** and click on it.
2. A list of your storage accounts will appear.&#x20;
3. See the name in the list or click on the **storage account** you need and the **Storage Account Name** is displayed at the top of the page.
   {% endstep %}

{% step %}
Add the **authentication** credentials.

Add the **Access Key** from your [Secrets](/administration/global-settings/organization-settings/secrets-management.md) or create one. To find your access key:

* In the storage account menu, click **Access Keys** under the **Security + Networking** section.&#x20;
* You will see Key1 and Key2 and their connection strings.

Add the **Connection string** from your [Secrets](/administration/global-settings/organization-settings/secrets-management.md) or create one. Locate it under **Security + Networking > Access Keys** within the **Storage Account**. To to help you find it, look for the string with this format:

`DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...`
{% endstep %}

{% step %}
Click **New secret** to create a new one:

* Give the secret a **Name**.
* Turn off the **Expiration date** option.
* Click **Add new value** and paste the secret corresponding to the JWT token you generated before. Remember that the token will be added in the Zscaler configuration.
* Click **Save**.

{% hint style="info" %}
Learn more about secrets in Onum in [this article](/administration/global-settings/organization-settings/secrets-management.md).
{% endhint %}
{% endstep %}

{% step %}
After entering the general Azure Storage settings, you must specify a blob container to send to.

Connect to the exact **Container name**<mark style="color:red;">**\***</mark> in your storage unit.

1. Click your storage account (as previously shown) and go to **Data Storage > Containers**.
2. See the names of your existing containers.
   {% endstep %}

{% step %}
The **Azure Blob Storage Path Format** follows a standard URL structure that depends on the **storage account, container, and blob location**.&#x20;

1. In the left menu, click **Data Storage > Containers**.
2. Click the **container** where your blob is stored.
3. Click on the **blob (file)** you wish to connect to.

The **URL** represents the full path. Use it to find the prefix and decide how to partition.

* The path **Prefix**<mark style="color:red;">**\***</mark> is found in the URL field.
* **Partition by**<mark style="color:red;">**\***</mark>  *year, month, day* or *hour.*
  {% endstep %}

{% step %}

#### Proxy configuration

If you use a proxy connection, set it here:

<table><thead><tr><th width="169.94140625">Parameters</th><th>Description</th></tr></thead><tbody><tr><td><strong>Proxy address</strong></td><td>Enter your proxy address.</td></tr><tr><td><strong>Proxy port</strong></td><td>Required proxy port.</td></tr><tr><td><strong>Proxy username</strong></td><td>Add your proxy username from your <a href="/pages/YAQlTald3E2cheY5V0Hk">Secrets</a> or create one.</td></tr><tr><td><strong>Proxy password</strong></td><td>Add your proxy password from your <a href="/pages/YAQlTald3E2cheY5V0Hk">Secrets</a> or create one.</td></tr><tr><td><strong>Proxy scheme</strong></td><td>Set the required proxy scheme (<strong>HTTP</strong> or <strong>HTTPS</strong>).</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

Click **Create data sink** when complete.&#x20;

Your new Data sink will appear in the **Data sinks** area list.

## Pipeline configuration

When it comes to using this Data sink in a [Pipeline](/the-workspace/pipelines.md), you must configure the following output parameters. To do it, simply click the Data sink on the canvas and select **Configuration**.

### Output configuration

<table><thead><tr><th width="169.6875">Parameter</th><th>Description</th></tr></thead><tbody><tr><td><strong>Event field</strong><mark style="color:red;"><strong>*</strong></mark></td><td>Select the incoming field containing the event to send on.</td></tr></tbody></table>

Click **Save** to save your configuration.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.onum.com/the-workspace/data-sinks/data-sink-integrations/send-data-to-microsoft-products/send-data-to-azure-blob-storage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
