Skip to main content
Pinecone Docs

Search documentation

Type to search this documentation.

On this pageOverview

Integrate with Azure Blob Storage

Set up a Pinecone storage integration with an Azure Blob Storage container using a service principal to bulk import data into your indexes.

This page describes how to integrate Pinecone with Azure Blob Storage. After setting up an integration, you can import data from an Azure Blob Storage container into a Pinecone index hosted on AWS, GCP, or Azure.

Ensure you have the following:

1. Create an app registration and service principal

Section titled “1. Create an app registration and service principal”

Pinecone uses a service principal to access your Azure Blob Storage container.

  1. Create an app registration for your Pinecone integration. This automatically creates a service principal.

    When creating your app registration:

    • Don't specify a Redirect URI.
    • Copy the Application (client) ID and the Directory (tenant) ID. You'll use these values when adding a storage integration in Pinecone.
  2. Create a client secret for the service principal.

    Copy the secret's Value (not its ID). You'll use this when creating a storage integration in Pinecone.

Assign the service principal to your storage account:

  1. In the Azure portal, navigate to the subscription associated with your storage account.
  2. Select Access control (IAM).
  3. Click Add > Add role assignment.
  4. Select Storage Blob Data Reader or another role that has permission to list and read blobs in a container.
  5. Click Next.
  6. Select User, group, or service principal and click Select members.
  7. Select the app you created in the previous step.
  8. Click Review + assign (you may need to click this twice).

You can add a storage integration in the Pinecone console or with the API.

In the Pinecone console, add an integration with Azure Blob Storage:

  1. Select your project.
  2. Go to Manage > Storage integrations.
  3. Click Add integration.
  4. Enter a unique integration name.
  5. Select Azure Blob Storage.
  6. For Tenant ID, Client ID, and Client secret, enter the values you copied from Azure.
  7. Click Add integration.

Pass the values you copied from Azure as the azure_app_credentials field:

curl
curl -sS -X POST "https://api.pinecone.io/storage-integrations" \
    -H "Api-Key: ${PINECONE_API_KEY}" \
    -H "X-Pinecone-Api-Version: unstable" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "my-azure-integration",
      "provider": "azure_blob",
      "azure_app_credentials": {
        "tenant_id": "TENANT_ID",
        "client_id": "CLIENT_ID",
        "client_secret": "CLIENT_SECRET"
      }
    }'

Replace TENANT_ID, CLIENT_ID, and CLIENT_SECRET with the values you copied from Azure, and my-azure-integration with a unique name for the integration.

The response includes the integration's id, which you need to import data, and a status of Validated or Invalid. If the credentials are invalid, the request still succeeds and the integration is created with a status of Invalid, so check the status before you import.

Import data from your Azure Blob Storage container into your Pinecone index.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu