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

Data Sources - Create Or Update

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

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

URI 参数

名称 必需 类型 说明
dataSourceName
path True

string

要创建或更新的数据源的名称。

endpoint
path True

string

搜索服务的终结点 URL。

api-version
query True

string

客户端 API 版本。

请求头

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

string

uuid

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

If-Match

string

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

If-None-Match

string

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

Prefer True

string

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

请求正文

名称 必需 类型 说明
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 密钥保管库 中创建的加密密钥的说明。 当你希望完全保证任何人都(甚至 Microsoft)无法解密数据源定义时,此密钥用于为数据源定义提供额外的静态加密级别。 加密数据源定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;数据源定义将不受影响。 使用客户管理的密钥加密不适用于免费搜索服务,并且仅适用于 2019 年 1 月 1 日或之后创建的付费服务。

响应

名称 类型 说明
200 OK

SearchIndexerDataSource

201 Created

SearchIndexerDataSource

Other Status Codes

SearchError

错误响应。

示例

SearchServiceCreateOrUpdateDataSource

示例请求

PUT https://myservice.search.windows.net/datasources('mydatasource')?api-version=2023-11-01


{
  "name": "mydocdbdatasource",
  "description": "My Cosmos DB data source.",
  "type": "cosmosdb",
  "credentials": {
    "connectionString": "AccountEndpoint=https://myDocDbEndpoint.documents.azure.com;AccountKey=myDocDbAuthKey;Database=myDocDbDatabaseId"
  },
  "container": {
    "name": "myDocDbCollectionId",
    "query": "SELECT c.id, c.userId, tag, c._ts FROM c JOIN tag IN c.tags WHERE c._ts >= @HighWaterMark ORDER BY c._ts"
  },
  "dataChangeDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
    "highWaterMarkColumnName": "_ts"
  },
  "dataDeletionDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
    "softDeleteColumnName": "isDeleted",
    "softDeleteMarkerValue": "true"
  },
  "encryptionKey": {
    "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
    "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
    "keyVaultUri": "https://myKeyVault.vault.azure.net",
    "accessCredentials": null
  }
}

示例响应

{
  "name": "mydocdbdatasource",
  "description": "My Cosmos DB data source.",
  "type": "cosmosdb",
  "credentials": {
    "connectionString": null
  },
  "container": {
    "name": "myDocDbCollectionId",
    "query": "SELECT c.id, c.userId, tag, c._ts FROM c JOIN tag IN c.tags WHERE c._ts >= @HighWaterMark ORDER BY c._ts"
  },
  "dataChangeDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
    "highWaterMarkColumnName": "_ts"
  },
  "dataDeletionDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
    "softDeleteColumnName": "isDeleted",
    "softDeleteMarkerValue": "true"
  },
  "encryptionKey": {
    "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
    "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
    "keyVaultUri": "https://myKeyVault.vault.azure.net",
    "accessCredentials": null
  }
}
{
  "name": "mydocdbdatasource",
  "description": "My Cosmos DB data source.",
  "type": "cosmosdb",
  "credentials": {
    "connectionString": null
  },
  "container": {
    "name": "myDocDbCollectionId",
    "query": "SELECT c.id, c.userId, tag, c._ts FROM c JOIN tag IN c.tags WHERE c._ts >= @HighWaterMark ORDER BY c._ts"
  },
  "dataChangeDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
    "highWaterMarkColumnName": "_ts"
  },
  "dataDeletionDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
    "softDeleteColumnName": "isDeleted",
    "softDeleteMarkerValue": "true"
  },
  "encryptionKey": {
    "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
    "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
    "keyVaultUri": "https://myKeyVault.vault.azure.net",
    "accessCredentials": null
  }
}

定义

名称 说明
AzureActiveDirectoryApplicationCredentials

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

DataSourceCredentials

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

HighWaterMarkChangeDetectionPolicy

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

SearchError

描述 API 的错误条件。

SearchIndexerDataContainer

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

SearchIndexerDataSource

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

SearchIndexerDataSourceType

定义数据源的类型。

SearchResourceEncryptionKey

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

SoftDeleteColumnDeletionDetectionPolicy

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

SqlIntegratedChangeTrackingPolicy

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

AzureActiveDirectoryApplicationCredentials

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

名称 类型 说明
applicationId

string

一个 AAD 应用程序 ID,该 ID 授予了对 Azure 密钥保管库所需的访问权限,该权限将在加密静态数据时使用。 应用程序 ID 不应与 AAD 应用程序的对象 ID 混淆。

applicationSecret

string

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

DataSourceCredentials

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

名称 类型 说明
connectionString

string

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

HighWaterMarkChangeDetectionPolicy

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

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

#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy

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

highWaterMarkColumnName

string

高水印列的名称。

SearchError

描述 API 的错误条件。

名称 类型 说明
code

string

服务器定义的一组错误代码中的一个。

details

SearchError[]

有关导致此项报告错误的特定错误的详细信息数组。

message

string

错误的用户可读表示形式。

SearchIndexerDataContainer

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

名称 类型 说明
name

string

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

query

string

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

SearchIndexerDataSource

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

名称 类型 说明
@odata.etag

string

数据源的 ETag。

container

SearchIndexerDataContainer

数据源的数据容器。

credentials

DataSourceCredentials

数据源的凭据。

dataChangeDetectionPolicy DataChangeDetectionPolicy:

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

dataDeletionDetectionPolicy DataDeletionDetectionPolicy:

SoftDeleteColumnDeletionDetectionPolicy

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

description

string

数据源的说明。

encryptionKey

SearchResourceEncryptionKey

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

name

string

数据源的名称。

type

SearchIndexerDataSourceType

数据源的类型。

SearchIndexerDataSourceType

定义数据源的类型。

名称 类型 说明
adlsgen2

string

指示 ADLS Gen2 数据源。

azureblob

string

指示 Azure Blob 数据源。

azuresql

string

指示 Azure SQL 数据源。

azuretable

string

指示 Azure 表数据源。

cosmosdb

string

指示 CosmosDB 数据源。

mysql

string

指示 MySql 数据源。

SearchResourceEncryptionKey

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

名称 类型 说明
accessCredentials

AzureActiveDirectoryApplicationCredentials

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

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

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

softDeleteColumnName

string

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

softDeleteMarkerValue

string

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

SqlIntegratedChangeTrackingPolicy

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

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

#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy

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