Data Sources - Create Or Update
创建新数据源或更新数据源(如果已存在)。
PUT {endpoint}/datasources('{dataSourceName}')?api-version=2026-04-01
URI 参数
| 名称 | 在 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
data
|
path | True |
string |
数据源的名称。 |
|
endpoint
|
path | True |
string (uri) |
搜索服务的终结点 URL。 |
|
api-version
|
query | True |
string minLength: 1 |
用于此操作的 API 版本。 |
请求头
| 名称 | 必需 | 类型 | 说明 |
|---|---|---|---|
| Accept |
接受(Accept)首部。 |
||
| If-Match |
string |
定义 If-Match 条件。 仅当服务器上的 ETag 与此值匹配时,才会执行该作。 |
|
| If-None-Match |
string |
定义 If-None-Match 条件。 仅当服务器上的 ETag 与此值不匹配时,才会执行该作。 |
|
| Prefer | True |
对于 HTTP PUT 请求,指示服务在成功时返回创建/更新的资源。 |
|
| x-ms-client-request-id |
string (uuid) |
请求的不透明、全局唯一的客户端生成的字符串标识符。 |
请求正文
| 名称 | 必需 | 类型 | 说明 |
|---|---|---|---|
| container | True |
数据源的数据容器。 |
|
| name | True |
string |
数据源的名称。 |
| type | True |
数据源的类型。 |
|
| @odata.etag |
string |
数据源的 ETag。 |
|
| credentials.connectionString |
string |
数据源的连接字符串。 如果不想更新连接字符串,请设置为 |
|
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
数据源的数据更改检测策略。 |
|
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
数据源的数据删除检测策略。 |
|
| description |
string |
数据源的说明。 |
|
| encryptionKey |
描述在 Azure 密钥保管库 中创建的加密密钥。 当想要完全保证没有人(甚至 Microsoft)无法解密数据源定义时,此密钥用于为数据源定义提供额外的静态加密级别。 加密数据源定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果需要轮换加密密钥,可以根据需要更改此属性;数据源定义将不受影响。 使用客户管理的密钥加密不适用于免费搜索服务,并且仅适用于在 2019 年 1 月 1 日或之后创建的付费服务。 |
||
| identity | SearchIndexerDataIdentity: |
要用于此数据源的显式托管标识。 如果未指定,并且连接字符串是托管标识,则使用系统分配的托管标识。 如果未指定,该值保持不变。 如果指定了“none”,则清除此属性的值。 |
响应
| 名称 | 类型 | 说明 |
|---|---|---|
| 200 OK |
请求已成功。 |
|
| 201 Created |
请求已成功,因此创建了一个新资源。 |
|
| Other Status Codes |
意外的错误响应。 |
安全性
api-key
类型:
apiKey
在:
header
OAuth2Auth
类型:
oauth2
流向:
implicit
授权 URL:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
作用域
| 名称 | 说明 |
|---|---|
| https://search.azure.com/.default |
示例
SearchServiceCreateOrUpdateDataSource
示例请求
PUT https://exampleservice.search.windows.net/datasources('tempdatasource')?api-version=2026-04-01
{
"name": "tempdatasource",
"description": "My Azure Adls Gen2 data source with ACLs.",
"type": "adlsgen2",
"credentials": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
},
"container": {
"name": "adls-gen2-doc-extraction-acl",
"query": "folder_has_final_acl"
},
"identity": {
"@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity"
},
"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 Adls Gen2 data source with ACLs.",
"type": "adlsgen2",
"credentials": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
},
"container": {
"name": "adls-gen2-doc-extraction-acl",
"query": "folder_has_final_acl"
},
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "metadata_storage_last_modified"
},
"dataDeletionDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName": "isDeleted",
"softDeleteMarkerValue": "true"
},
"identity": {
"@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity"
}
}
{
"@odata.etag": "0x1234568AE7E58A1",
"name": "tempdatasource",
"description": "My Azure Adls Gen2 data source with ACLs.",
"type": "adlsgen2",
"credentials": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
},
"container": {
"name": "adls-gen2-doc-extraction-acl",
"query": "folder_has_final_acl"
},
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "metadata_storage_last_modified"
},
"dataDeletionDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName": "isDeleted",
"softDeleteMarkerValue": "true"
},
"identity": {
"@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity"
}
}
定义
| 名称 | 说明 |
|---|---|
| Accept |
接受(Accept)首部。 |
|
Error |
资源管理错误附加信息。 |
|
Error |
错误详细信息。 |
|
Error |
所有 Azure 资源管理器 API 的通用错误响应,用于返回失败操作的错误细节。 (这也遵循 OData 错误响应格式)。 |
|
High |
定义数据更改检测策略,该策略根据高水印列的值捕获更改。 |
|
Native |
定义使用 Azure Blob 存储的本机软删除功能进行删除检测的数据删除检测策略。 |
| Prefer |
对于 HTTP PUT 请求,指示服务在成功时返回创建/更新的资源。 |
|
Search |
表示要编制索引的实体(如 Azure SQL 表或 CosmosDB 集合)的相关信息。 |
|
Search |
清除数据源的标识属性。 |
|
Search |
表示可用于配置索引器的数据源定义。 |
|
Search |
定义数据源的类型。 |
|
Search |
指定要使用的数据源的标识。 |
|
Search |
Azure 密钥保管库 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。 |
|
Soft |
定义实现软删除策略的数据删除检测策略。 它确定是否应根据指定的“软删除”列的值删除项。 |
|
Sql |
定义使用 Azure SQL 数据库的集成更改跟踪功能捕获更改的数据更改检测策略。 |
Accept
接受(Accept)首部。
| 值 | 说明 |
|---|---|
| application/json;odata.metadata=minimal |
ErrorAdditionalInfo
资源管理错误附加信息。
| 名称 | 类型 | 说明 |
|---|---|---|
| info |
附加信息。 |
|
| type |
string |
附加信息类型。 |
ErrorDetail
错误详细信息。
| 名称 | 类型 | 说明 |
|---|---|---|
| additionalInfo |
错误附加信息。 |
|
| code |
string |
错误代码。 |
| details |
错误详细信息。 |
|
| message |
string |
错误消息。 |
| target |
string |
错误目标。 |
ErrorResponse
所有 Azure 资源管理器 API 的通用错误响应,用于返回失败操作的错误细节。 (这也遵循 OData 错误响应格式)。
| 名称 | 类型 | 说明 |
|---|---|---|
| error |
错误对象。 |
HighWaterMarkChangeDetectionPolicy
定义数据更改检测策略,该策略根据高水印列的值捕获更改。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
派生类型的歧视性。 |
| highWaterMarkColumnName |
string |
高水印列的名称。 |
NativeBlobSoftDeleteDeletionDetectionPolicy
定义使用 Azure Blob 存储的本机软删除功能进行删除检测的数据删除检测策略。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
派生类型的歧视性。 |
Prefer
对于 HTTP PUT 请求,指示服务在成功时返回创建/更新的资源。
| 值 | 说明 |
|---|---|
| return=representation |
SearchIndexerDataContainer
表示要编制索引的实体(如 Azure SQL 表或 CosmosDB 集合)的相关信息。
| 名称 | 类型 | 说明 |
|---|---|---|
| name |
string |
将编制索引的表或视图(对于 Azure SQL 数据源)或集合(对于 CosmosDB 数据源)的名称。 |
| query |
string |
应用于此数据容器的查询。 此参数的语法和含义特定于数据源。 Azure SQL 数据源不支持。 |
SearchIndexerDataNoneIdentity
清除数据源的标识属性。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定身份类型的 URI 片段。 |
SearchIndexerDataSource
表示可用于配置索引器的数据源定义。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.etag |
string |
数据源的 ETag。 |
| container |
数据源的数据容器。 |
|
| credentials.connectionString |
string |
数据源的连接字符串。 如果不想更新连接字符串,请设置为 |
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
数据源的数据更改检测策略。 |
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
数据源的数据删除检测策略。 |
| description |
string |
数据源的说明。 |
| encryptionKey |
描述在 Azure 密钥保管库 中创建的加密密钥。 当想要完全保证没有人(甚至 Microsoft)无法解密数据源定义时,此密钥用于为数据源定义提供额外的静态加密级别。 加密数据源定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果需要轮换加密密钥,可以根据需要更改此属性;数据源定义将不受影响。 使用客户管理的密钥加密不适用于免费搜索服务,并且仅适用于在 2019 年 1 月 1 日或之后创建的付费服务。 |
|
| identity | SearchIndexerDataIdentity: |
要用于此数据源的显式托管标识。 如果未指定,并且连接字符串是托管标识,则使用系统分配的托管标识。 如果未指定,该值保持不变。 如果指定了“none”,则清除此属性的值。 |
| name |
string |
数据源的名称。 |
| type |
数据源的类型。 |
SearchIndexerDataSourceType
定义数据源的类型。
| 值 | 说明 |
|---|---|
| azuresql |
指示 Azure SQL 数据源。 |
| cosmosdb |
指示 CosmosDB 数据源。 |
| azureblob |
指示 Azure Blob 数据源。 |
| azuretable |
指示 Azure 表数据源。 |
| mysql |
表示 MySQL 数据源。 |
| adlsgen2 |
指示 ADLS Gen2 数据源。 |
| onelake |
指示 Microsoft Fabric OneLake 数据源。 |
| sharepoint |
表示是SharePoint的数据源。 |
SearchIndexerDataUserAssignedIdentity
指定要使用的数据源的标识。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定身份类型的 URI 片段。 |
| userAssignedIdentity |
string |
用户分配的托管标识的完全限定的 Azure 资源 ID 通常以“/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentity/myId”的形式分配给搜索服务。 |
SearchResourceEncryptionKey
Azure 密钥保管库 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。
| 名称 | 类型 | 说明 |
|---|---|---|
| accessCredentials.applicationId |
string |
向 AAD 应用程序 ID 授予对静态数据加密时要使用的 Azure 密钥保管库 所需的访问权限。 应用程序 ID 不应与 AAD 应用程序的对象 ID 混淆。 |
| accessCredentials.applicationSecret |
string |
指定的 AAD 应用程序的身份验证密钥。 |
| identity | SearchIndexerDataIdentity: |
用于此加密密钥的显式托管标识。 如果未指定并且访问凭据属性为 null,则使用系统分配的托管标识。 更新资源时,如果未指定显式标识,则保持不变。 如果指定了“none”,则清除此属性的值。 |
| keyVaultKeyName |
string |
用于加密静态数据的 Azure 密钥保管库 密钥的名称。 |
| keyVaultKeyVersion |
string |
用于加密静态数据的 Azure 密钥保管库 密钥的版本。 |
| keyVaultUri |
string |
Azure 密钥保管库 的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 示例 URI 可能是 |
SoftDeleteColumnDeletionDetectionPolicy
定义实现软删除策略的数据删除检测策略。 它确定是否应根据指定的“软删除”列的值删除项。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
派生类型的歧视性。 |
| softDeleteColumnName |
string |
用于软删除检测的列的名称。 |
| softDeleteMarkerValue |
string |
将项标识为已删除的标记值。 |
SqlIntegratedChangeTrackingPolicy
定义使用 Azure SQL 数据库的集成更改跟踪功能捕获更改的数据更改检测策略。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
派生类型的歧视性。 |