This feature is in public preview and available only on Standard and Enterprise plans.
Before you begin
Ensure you have the following: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:
- Do not 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
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
You can add a storage integration in the Pinecone console or with the API.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
This endpoint requires
X-Pinecone-Api-Version: unstable. Unstable endpoints can change without notice.azure_app_credentials field:
curl
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.