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

Data Sources - Create Or Update

创建新数据源或更新数据源(如果已存在)。

PUT {endpoint}/datasources('{dataSourceName}')?api-version=2026-04-01

URI 参数

名称 在 必需 类型 说明
dataSourceName
path True

string

数据源的名称。

endpoint
path True

string (uri)

搜索服务的终结点 URL。

api-version
query True

string

minLength: 1

用于此操作的 API 版本。

请求头

名称 必需 类型 说明
Accept

Accept

接受(Accept)首部。

If-Match

string

定义 If-Match 条件。 仅当服务器上的 ETag 与此值匹配时,才会执行该作。

If-None-Match

string

定义 If-None-Match 条件。 仅当服务器上的 ETag 与此值不匹配时,才会执行该作。

Prefer True

Prefer

对于 HTTP PUT 请求,指示服务在成功时返回创建/更新的资源。

x-ms-client-request-id

string (uuid)

请求的不透明、全局唯一的客户端生成的字符串标识符。

请求正文

名称 必需 类型 说明
container True

SearchIndexerDataContainer

数据源的数据容器。

name True

string

数据源的名称。

type True

SearchIndexerDataSourceType

数据源的类型。

@odata.etag

string

数据源的 ETag。

credentials.connectionString

string

数据源的连接字符串。 如果不想更新连接字符串,请设置为 <unchanged> (带括号)。 如果要从数据源中删除连接字符串值,请设置为 <redacted> 。

dataChangeDetectionPolicy DataChangeDetectionPolicy:

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

dataDeletionDetectionPolicy DataDeletionDetectionPolicy:

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

description

string

数据源的说明。

encryptionKey

SearchResourceEncryptionKey

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

identity SearchIndexerDataIdentity:

要用于此数据源的显式托管标识。 如果未指定,并且连接字符串是托管标识,则使用系统分配的托管标识。 如果未指定,该值保持不变。 如果指定了“none”,则清除此属性的值。

响应

名称 类型 说明
200 OK

SearchIndexerDataSource

请求已成功。

201 Created

SearchIndexerDataSource

请求已成功,因此创建了一个新资源。

Other Status Codes

ErrorResponse

意外的错误响应。

安全性

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)首部。

ErrorAdditionalInfo

资源管理错误附加信息。

ErrorDetail

错误详细信息。

ErrorResponse

所有 Azure 资源管理器 API 的通用错误响应,用于返回失败操作的错误细节。 (这也遵循 OData 错误响应格式)。

HighWaterMarkChangeDetectionPolicy

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

NativeBlobSoftDeleteDeletionDetectionPolicy

定义使用 Azure Blob 存储的本机软删除功能进行删除检测的数据删除检测策略。

Prefer

对于 HTTP PUT 请求,指示服务在成功时返回创建/更新的资源。

SearchIndexerDataContainer

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

SearchIndexerDataNoneIdentity

清除数据源的标识属性。

SearchIndexerDataSource

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

SearchIndexerDataSourceType

定义数据源的类型。

SearchIndexerDataUserAssignedIdentity

指定要使用的数据源的标识。

SearchResourceEncryptionKey

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

SoftDeleteColumnDeletionDetectionPolicy

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

SqlIntegratedChangeTrackingPolicy

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

Accept

接受(Accept)首部。

值 说明
application/json;odata.metadata=minimal

ErrorAdditionalInfo

资源管理错误附加信息。

名称 类型 说明
info

附加信息。

type

string

附加信息类型。

ErrorDetail

错误详细信息。

名称 类型 说明
additionalInfo

ErrorAdditionalInfo[]

错误附加信息。

code

string

错误代码。

details

ErrorDetail[]

错误详细信息。

message

string

错误消息。

target

string

错误目标。

ErrorResponse

所有 Azure 资源管理器 API 的通用错误响应,用于返回失败操作的错误细节。 (这也遵循 OData 错误响应格式)。

名称 类型 说明
error

ErrorDetail

错误对象。

HighWaterMarkChangeDetectionPolicy

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

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

#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy

派生类型的歧视性。

highWaterMarkColumnName

string

高水印列的名称。

NativeBlobSoftDeleteDeletionDetectionPolicy

定义使用 Azure Blob 存储的本机软删除功能进行删除检测的数据删除检测策略。

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

#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy

派生类型的歧视性。

Prefer

对于 HTTP PUT 请求,指示服务在成功时返回创建/更新的资源。

值 说明
return=representation

SearchIndexerDataContainer

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

名称 类型 说明
name

string

将编制索引的表或视图(对于 Azure SQL 数据源)或集合(对于 CosmosDB 数据源)的名称。

query

string

应用于此数据容器的查询。 此参数的语法和含义特定于数据源。 Azure SQL 数据源不支持。

SearchIndexerDataNoneIdentity

清除数据源的标识属性。

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

#Microsoft.Azure.Search.DataNoneIdentity

指定身份类型的 URI 片段。

SearchIndexerDataSource

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

名称 类型 说明
@odata.etag

string

数据源的 ETag。

container

SearchIndexerDataContainer

数据源的数据容器。

credentials.connectionString

string

数据源的连接字符串。 如果不想更新连接字符串,请设置为 <unchanged> (带括号)。 如果要从数据源中删除连接字符串值,请设置为 <redacted> 。

dataChangeDetectionPolicy DataChangeDetectionPolicy:

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

dataDeletionDetectionPolicy DataDeletionDetectionPolicy:

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

description

string

数据源的说明。

encryptionKey

SearchResourceEncryptionKey

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

identity SearchIndexerDataIdentity:

要用于此数据源的显式托管标识。 如果未指定,并且连接字符串是托管标识,则使用系统分配的托管标识。 如果未指定,该值保持不变。 如果指定了“none”,则清除此属性的值。

name

string

数据源的名称。

type

SearchIndexerDataSourceType

数据源的类型。

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.Azure.Search.DataUserAssignedIdentity

指定身份类型的 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 可能是 https://my-keyvault-name.vault.azure.net。

SoftDeleteColumnDeletionDetectionPolicy

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

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

#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy

派生类型的歧视性。

softDeleteColumnName

string

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

softDeleteMarkerValue

string

将项标识为已删除的标记值。

SqlIntegratedChangeTrackingPolicy

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

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

#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy

派生类型的歧视性。