你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Data Sources - Create

创建新的数据源。

POST {endpoint}/datasources?api-version=2025-09-01

URI 参数

名称 必需 类型 说明
endpoint
path True

string

搜索服务的终结点 URL。

api-version
query True

string

客户端 API 版本。

请求头

名称 必需 类型 说明
x-ms-client-request-id

string (uuid)

随请求一起发送的跟踪 ID,以帮助调试。

请求正文

名称 必需 类型 说明
container True

SearchIndexerDataContainer

数据源的数据容器。

credentials True

DataSourceCredentials

数据源的凭据。

name True

string

数据源的名称。

type True

SearchIndexerDataSourceType

数据源的类型。

@odata.etag

string

数据源的 ETag。

dataChangeDetectionPolicy DataChangeDetectionPolicy:

数据源的数据更改检测策略。

dataDeletionDetectionPolicy DataDeletionDetectionPolicy:

SoftDeleteColumnDeletionDetectionPolicy

数据源的数据删除检测策略。

description

string

数据源的描述。

encryptionKey

SearchResourceEncryptionKey

在 Azure Key Vault 中创建的加密密钥的说明。 当想要完全保证没有人(甚至 Microsoft)无法解密数据源定义时,此密钥用于为数据源定义提供额外的静态加密级别。 加密数据源定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;您的数据源定义将不受影响。 使用客户管理的密钥进行加密不适用于免费搜索服务,仅适用于 2019 年 1 月 1 日或之后创建的付费服务。

响应

名称 类型 说明
201 Created

SearchIndexerDataSource

Other Status Codes

ErrorResponse

错误响应。

示例

SearchServiceCreateDataSource

示例请求

POST https://stableexampleservice.search.windows.net/datasources?api-version=2025-09-01


{
  "name": "tempdatasource",
  "description": "My Azure Blob data source.",
  "type": "azureblob",
  "credentials": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
  },
  "container": {
    "name": "doc-extraction-skillset",
    "query": "E2E_Dsat"
  },
  "dataChangeDetectionPolicy": {
    "highWaterMarkColumnName": "metadata_storage_last_modified",
    "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy"
  },
  "dataDeletionDetectionPolicy": {
    "softDeleteColumnName": "isDeleted",
    "softDeleteMarkerValue": "true",
    "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy"
  },
  "@odata.etag": "0x1234568AE7E58A1"
}

示例响应

{
  "@odata.etag": "0x1234568AE7E58A1",
  "name": "tempdatasource",
  "description": "My Azure Blob data source.",
  "type": "azureblob",
  "credentials": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
  },
  "container": {
    "name": "doc-extraction-skillset",
    "query": "E2E_Dsat"
  },
  "dataChangeDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
    "highWaterMarkColumnName": "metadata_storage_last_modified"
  },
  "dataDeletionDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
    "softDeleteColumnName": "isDeleted",
    "softDeleteMarkerValue": "true"
  }
}

定义

名称 说明
AzureActiveDirectoryApplicationCredentials

为搜索服务创建的已注册应用程序的凭据,用于对存储在 Azure Key Vault 中的加密密钥进行身份验证访问。

DataSourceCredentials

表示可用于连接到数据源的凭据。

ErrorAdditionalInfo

资源管理错误附加信息。

ErrorDetail

错误详细信息。

ErrorResponse

错误响应

HighWaterMarkChangeDetectionPolicy

定义数据更改检测策略,该策略根据高水位线列的值捕获更改。

SearchIndexerDataContainer

表示有关将编制索引的实体(例如 Azure SQL 表或 CosmosDB 集合)的信息。

SearchIndexerDataSource

表示可用于配置索引器的数据源定义。

SearchIndexerDataSourceType

定义数据源的类型。

SearchResourceEncryptionKey

Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。

SoftDeleteColumnDeletionDetectionPolicy

定义实现软删除策略的数据删除检测策略。 它根据指定的“软删除”列的值确定是否应删除项。

SqlIntegratedChangeTrackingPolicy

定义数据更改检测策略,该策略使用 Azure SQL 数据库的集成更改跟踪功能捕获更改。

AzureActiveDirectoryApplicationCredentials

为搜索服务创建的已注册应用程序的凭据,用于对存储在 Azure Key Vault 中的加密密钥进行身份验证访问。

名称 类型 说明
applicationId

string

向 Azure Key Vault 授予所需的访问权限的 AAD 应用程序 ID,该权限将在加密静态数据时使用。 应用程序 ID 不应与 AAD 应用程序的对象 ID 混淆。

applicationSecret

string

指定 AAD 应用程序的身份验证密钥。

DataSourceCredentials

表示可用于连接到数据源的凭据。

名称 类型 说明
connectionString

string

数据源的连接字符串。 对于 Azure SQL、Azure Blob、ADLS Gen 2 和 Azure 表,如果使用托管标识,这将是连接字符串或资源 ID。 对于 CosmosDB,这将是一个格式化的连接字符串,用于指定托管标识的 ApiKind 或资源 ID。 对于 Onelake 文件,连接字符串将是工作区 guid 或工作区 FQDN;Onelake 仅支持托管标识连接。 如果不想更新连接字符串,请设置为 <unchanged> (带括号)。 如果要从数据源中删除连接字符串值,请设置为 <redacted>

ErrorAdditionalInfo

资源管理错误附加信息。

名称 类型 说明
info

object

其他信息。

type

string

其他信息类型。

ErrorDetail

错误详细信息。

名称 类型 说明
additionalInfo

ErrorAdditionalInfo[]

错误附加信息。

code

string

错误代码。

details

ErrorDetail[]

错误详细信息。

message

string

错误消息。

target

string

错误目标。

ErrorResponse

错误响应

名称 类型 说明
error

ErrorDetail

错误对象。

HighWaterMarkChangeDetectionPolicy

定义数据更改检测策略,该策略根据高水位线列的值捕获更改。

名称 类型 说明
@odata.type string:

#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy

指定数据更改检测策略类型的 URI 片段。

highWaterMarkColumnName

string

高水位线列的名称。

SearchIndexerDataContainer

表示有关将编制索引的实体(例如 Azure SQL 表或 CosmosDB 集合)的信息。

名称 类型 说明
name

string

将编制索引的表或视图(对于 Azure SQL 数据源)、集合(对于 CosmosDB 数据源)、容器(对于 Azure Blob 和 ADLS Gen 2 数据源)、Azure 表(对于 Azure 表数据源)或湖屋(对于 Onelake 数据源)的名称。

query

string

应用于此数据容器的查询。 对于 CosmosDB,数据源查询可以平展和筛选数据。 对于 Azure Blob 和 ADLS Gen 2 查询可以按文件夹进行筛选。 对于 Azure 表查询,可以按行数据进行筛选。 对于 Onelake,查询可以按文件夹或快捷方式进行筛选。 Azure SQL 数据源不支持。

SearchIndexerDataSource

表示可用于配置索引器的数据源定义。

名称 类型 说明
@odata.etag

string

数据源的 ETag。

container

SearchIndexerDataContainer

数据源的数据容器。

credentials

DataSourceCredentials

数据源的凭据。

dataChangeDetectionPolicy DataChangeDetectionPolicy:

数据源的数据更改检测策略。

dataDeletionDetectionPolicy DataDeletionDetectionPolicy:

SoftDeleteColumnDeletionDetectionPolicy

数据源的数据删除检测策略。

description

string

数据源的描述。

encryptionKey

SearchResourceEncryptionKey

在 Azure Key Vault 中创建的加密密钥的说明。 当想要完全保证没有人(甚至 Microsoft)无法解密数据源定义时,此密钥用于为数据源定义提供额外的静态加密级别。 加密数据源定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;您的数据源定义将不受影响。 使用客户管理的密钥进行加密不适用于免费搜索服务,仅适用于 2019 年 1 月 1 日或之后创建的付费服务。

name

string

数据源的名称。

type

SearchIndexerDataSourceType

数据源的类型。

SearchIndexerDataSourceType

定义数据源的类型。

说明
azuresql

Azure SQL 数据源的定义,其凭据可以是标准 SQL 连接字符串或 SQL 资源的 ResourceId。 容器属性是指要编制索引的表或视图。 此数据源不支持查询参数。

cosmosdb

CosmosDB 数据源的定义,其凭据可以是格式化的连接字符串,其中包含基于密钥的连接的 AccountEndpoint、AccountKey 和 Database 的详细信息,也可以是无密钥连接的 ResourceID 和 ApiKind 的详细信息。 container 属性引用要编制索引的 cosmosdb 集合,可选查询属性引用集合上的 SQL 查询。

azureblob

Azure Blob 数据源的定义,其凭据可以是存储连接字符串或存储帐户的 ResourceId。 容器属性引用要编制索引的 blob 容器,可选查询属性引用容器中的特定子文件夹。

azuretable

Azure 表数据源的定义,其凭据可以是表连接字符串或存储帐户的 ResourceId。 容器属性是指要编制索引的 blob 容器,可选的查询属性可用于筛选行。

mysql

Azure SQL 数据源的定义,其凭据可以是标准 ADO.NET 格式化的 SQL 连接字符串或 SQL 资源的 ResourceId。 容器属性是指要编制索引的表或视图。 此数据源不支持查询参数。

adlsgen2

Azure ADLS Gen 2 数据源的定义,其凭据可以是存储连接字符串或存储帐户的 ResourceId。 容器属性引用要编制索引的 blob 容器,可选查询属性引用容器中的特定子文件夹。

onelake

Microsoft Fabric Onelake 数据源的定义,其凭据可以是 Fabric 工作区 GUID 或工作区 FQDN。 容器属性引用湖屋 GUID,可选查询属性引用湖屋中的文件夹或快捷方式。

SearchResourceEncryptionKey

Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。

名称 类型 说明
accessCredentials

AzureActiveDirectoryApplicationCredentials

用于访问 Azure Key Vault 的可选 Azure Active Directory 凭据。 如果改用托管标识,则不需要。

keyVaultKeyName

string

用于加密静态数据的 Azure Key Vault 密钥的名称。

keyVaultKeyVersion

string

用于加密静态数据的 Azure Key Vault 密钥版本。

keyVaultUri

string

Azure 密钥保管库的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 一个示例 URI 可能是 https://my-keyvault-name.vault.azure.net

SoftDeleteColumnDeletionDetectionPolicy

定义实现软删除策略的数据删除检测策略。 它根据指定的“软删除”列的值确定是否应删除项。

名称 类型 说明
@odata.type string:

#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy

指定数据删除检测策略类型的 URI 片段。

softDeleteColumnName

string

用于软删除检测的列的名称。

softDeleteMarkerValue

string

标识已删除项的标记值。

SqlIntegratedChangeTrackingPolicy

定义数据更改检测策略,该策略使用 Azure SQL 数据库的集成更改跟踪功能捕获更改。

名称 类型 说明
@odata.type string:

#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy

指定数据更改检测策略类型的 URI 片段。