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.
Before you begin
Section titled “Before you begin”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.
-
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.
-
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.
2. Grant access to the storage account
Section titled “2. Grant access to the storage account”Assign the service principal to your storage account:
- In the Azure portal, navigate to the subscription associated with your storage account.
- Select Access control (IAM).
- Click Add > Add role assignment.
- Select Storage Blob Data Reader or another role that has permission to list and read blobs in a container.
- Click Next.
- Select User, group, or service principal and click Select members.
- Select the app you created in the previous step.
- Click Review + assign (you may need to click this twice).
3. In Pinecone, add a storage integration
Section titled “3. In Pinecone, add a storage integration”You can add a storage integration in the Pinecone console or with the API.
Use the console
Section titled “Use the console”In the Pinecone console, add an integration with Azure Blob Storage:
- Select your project.
- Go to Manage > Storage integrations.
- Click Add integration.
- Enter a unique integration name.
- Select Azure Blob Storage.
- For Tenant ID, Client ID, and Client secret, enter the values you copied from Azure.
- Click Add integration.
Use the API
Section titled “Use the API”Pass the values you copied from Azure as the azure_app_credentials field:
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.
Next steps
Section titled “Next steps”Import data from your Azure Blob Storage container into your Pinecone index.