共用方式為


Data Sources - Create Or Update

建立新的數據源,或在數據源已經存在時更新數據源。

PUT {endpoint}/datasources('{dataSourceName}')?api-version=2024-05-01-preview
PUT {endpoint}/datasources('{dataSourceName}')?api-version=2024-05-01-preview&ignoreResetRequirements={ignoreResetRequirements}

URI 參數

名稱 位於 必要 類型 Description
dataSourceName
path True

string

要建立或更新之數據源的名稱。

endpoint
path True

string

搜尋服務的端點 URL。

api-version
query True

string

用戶端 API 版本。

ignoreResetRequirements
query

boolean

忽略快取重設需求。

要求標頭

名稱 必要 類型 Description
x-ms-client-request-id

string

uuid

與要求一起傳送的追蹤標識碼,以協助偵錯。

If-Match

string

定義 If-Match 條件。 只有在伺服器上的 ETag 符合此值時,才會執行作業。

If-None-Match

string

定義 If-None-Match 條件。 只有在伺服器上的 ETag 不符合此值時,才會執行作業。

Prefer True

string

針對 HTTP PUT 要求,指示服務在成功時傳回已建立/更新的資源。

要求本文

名稱 必要 類型 Description
container True

SearchIndexerDataContainer

數據源的數據容器。

credentials True

DataSourceCredentials

數據源的認證。

name True

string

資料來源的名稱。

type True

SearchIndexerDataSourceType

數據源的類型。

@odata.etag

string

數據源的 ETag。

dataChangeDetectionPolicy DataChangeDetectionPolicy:

數據源的數據變更偵測原則。

dataDeletionDetectionPolicy DataDeletionDetectionPolicy:

數據源的數據刪除偵測原則。

description

string

數據源的描述。

encryptionKey

SearchResourceEncryptionKey

您在 Azure 金鑰保存庫 中建立的加密金鑰描述。 當您想要完整保證即使 Microsoft 也無法解密數據源定義時,此密鑰可用來為數據源定義提供額外的待用加密層級。 一旦您加密數據源定義,它一律會保持加密狀態。 搜尋服務會忽略將此屬性設定為 null 的嘗試。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的數據源定義將不會受到影響。 使用客戶管理的金鑰加密不適用於免費搜尋服務,而且僅適用於在 2019 年 1 月 1 日或之後建立的付費服務。

identity SearchIndexerDataIdentity:

要用於此數據源的明確受控識別。 如果未指定,且 連接字串 是受控識別,則會使用系統指派的受控識別。 如果未指定,該值會保持不變。 如果指定了 「none」 則會清除此屬性的值。

回應

名稱 類型 Description
200 OK

SearchIndexerDataSource

201 Created

SearchIndexerDataSource

Other Status Codes

ErrorResponse

錯誤回應。

範例

SearchServiceCreateOrUpdateDataSource

範例要求

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


{
  "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
  }
}

定義

名稱 Description
AzureActiveDirectoryApplicationCredentials

為搜尋服務建立的已註冊應用程式認證,用於驗證存取儲存在 Azure 金鑰保存庫 中的加密密鑰。

DataSourceCredentials

表示可以用來連接到資料來源的認證。

ErrorAdditionalInfo

資源管理錯誤其他資訊。

ErrorDetail

錯誤詳細數據。

ErrorResponse

錯誤回應

HighWaterMarkChangeDetectionPolicy

定義數據變更偵測原則,以根據高水印數據行的值擷取變更。

NativeBlobSoftDeleteDeletionDetectionPolicy

定義使用 Azure Blob 儲存體 原生虛刪除功能進行刪除偵測的數據刪除偵測原則。

SearchIndexerDataContainer

表示將編製索引之實體 (的相關信息,例如 Azure SQL 數據表或 CosmosDB 集合) 。

SearchIndexerDataNoneIdentity

清除資料源的識別屬性。

SearchIndexerDataSource

表示可用來設定索引器的數據源定義。

SearchIndexerDataSourceType

定義數據源的類型。

SearchIndexerDataUserAssignedIdentity

指定要使用之數據源的身分識別。

SearchResourceEncryptionKey

Azure 金鑰保存庫 中客戶管理的加密密鑰。 您建立和管理的金鑰可用來加密或解密待用數據,例如索引和同義字對應。

SoftDeleteColumnDeletionDetectionPolicy

定義實作虛刪除策略的數據刪除偵測原則。 它會根據指定的「虛刪除」數據行的值,判斷是否應該刪除專案。

SqlIntegratedChangeTrackingPolicy

定義數據變更偵測原則,此原則會使用 Azure SQL Database 的整合式 變更追蹤 功能來擷取變更。

AzureActiveDirectoryApplicationCredentials

為搜尋服務建立的已註冊應用程式認證,用於驗證存取儲存在 Azure 金鑰保存庫 中的加密密鑰。

名稱 類型 Description
applicationId

string

AAD 應用程式識別碼,該標識碼已授與 Azure 金鑰保存庫 的必要訪問許可權,該許可權會在加密待用數據時使用。 應用程式標識碼不應與 AAD 應用程式的物件標識元混淆。

applicationSecret

string

指定 AAD 應用程式的驗證金鑰。

DataSourceCredentials

表示可以用來連接到資料來源的認證。

名稱 類型 Description
connectionString

string

數據源的 連接字串。 <unchanged> 如果您不想更新 連接字串,請將 (與方括弧) 。 <redacted>如果您要從資料來源移除 連接字串 值,請將 設定為 。

ErrorAdditionalInfo

資源管理錯誤其他資訊。

名稱 類型 Description
info

object

其他資訊。

type

string

其他信息類型。

ErrorDetail

錯誤詳細數據。

名稱 類型 Description
additionalInfo

ErrorAdditionalInfo[]

錯誤其他資訊。

code

string

錯誤碼。

details

ErrorDetail[]

錯誤詳細資料。

message

string

錯誤訊息。

target

string

錯誤目標。

ErrorResponse

錯誤回應

名稱 類型 Description
error

ErrorDetail

錯誤物件。

HighWaterMarkChangeDetectionPolicy

定義數據變更偵測原則,以根據高水印數據行的值擷取變更。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy

指定數據變更偵測原則類型的 URI 片段。

highWaterMarkColumnName

string

高水印數據行的名稱。

NativeBlobSoftDeleteDeletionDetectionPolicy

定義使用 Azure Blob 儲存體 原生虛刪除功能進行刪除偵測的數據刪除偵測原則。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy

指定數據刪除偵測原則類型的 URI 片段。

SearchIndexerDataContainer

表示將編製索引之實體 (的相關信息,例如 Azure SQL 數據表或 CosmosDB 集合) 。

名稱 類型 Description
name

string

要編製索引之 CosmosDB) 數據源) 或集合 (Azure SQL 數據表或檢視表 (的名稱。

query

string

套用至此數據容器的查詢。 此參數的語法和意義是數據源專屬的。 Azure SQL 數據源不支援。

SearchIndexerDataNoneIdentity

清除資料源的識別屬性。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.DataNoneIdentity

指定身分識別類型的 URI 片段。

SearchIndexerDataSource

表示可用來設定索引器的數據源定義。

名稱 類型 Description
@odata.etag

string

數據源的 ETag。

container

SearchIndexerDataContainer

數據源的數據容器。

credentials

DataSourceCredentials

數據源的認證。

dataChangeDetectionPolicy DataChangeDetectionPolicy:

數據源的數據變更偵測原則。

dataDeletionDetectionPolicy DataDeletionDetectionPolicy:

數據源的數據刪除偵測原則。

description

string

數據源的描述。

encryptionKey

SearchResourceEncryptionKey

您在 Azure 金鑰保存庫 中建立的加密金鑰描述。 當您想要完整保證即使 Microsoft 也無法解密數據源定義時,此密鑰可用來為數據源定義提供額外的待用加密層級。 一旦您加密數據源定義,它一律會保持加密狀態。 搜尋服務會忽略將此屬性設定為 null 的嘗試。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的數據源定義將不會受到影響。 使用客戶管理的金鑰加密不適用於免費搜尋服務,而且僅適用於在 2019 年 1 月 1 日或之後建立的付費服務。

identity SearchIndexerDataIdentity:

要用於此數據源的明確受控識別。 如果未指定,且 連接字串 是受控識別,則會使用系統指派的受控識別。 如果未指定,該值會保持不變。 如果指定了 「none」 則會清除此屬性的值。

name

string

資料來源的名稱。

type

SearchIndexerDataSourceType

數據源的類型。

SearchIndexerDataSourceType

定義數據源的類型。

名稱 類型 Description
adlsgen2

string

表示 ADLS Gen2 數據源。

azureblob

string

表示 Azure Blob 數據源。

azuresql

string

指出 Azure SQL 資料來源。

azuretable

string

表示 Azure 數據表數據源。

cosmosdb

string

表示 CosmosDB 數據源。

mysql

string

表示 MySql 數據源。

onelake

string

指出 Microsoft Fabric OneLake 數據源。

SearchIndexerDataUserAssignedIdentity

指定要使用之數據源的身分識別。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.DataUserAssignedIdentity

指定身分識別類型的 URI 片段。

userAssignedIdentity

string

使用者指派受控識別的完整 Azure 資源標識符,通常格式為 “/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId”,應該已指派給搜尋服務。

SearchResourceEncryptionKey

Azure 金鑰保存庫 中客戶管理的加密密鑰。 您建立和管理的金鑰可用來加密或解密待用數據,例如索引和同義字對應。

名稱 類型 Description
accessCredentials

AzureActiveDirectoryApplicationCredentials

用來存取 Azure 金鑰保存庫 的選擇性 Azure Active Directory 認證。 如果改為使用受控識別,則不需要。

identity SearchIndexerDataIdentity:

要用於此加密金鑰的明確受控識別。 如果未指定,且存取認證屬性為 Null,則會使用系統指派的受控識別。 更新資源時,如果未指定明確的身分識別,則會維持不變。 如果指定了 「none」 則會清除此屬性的值。

keyVaultKeyName

string

要用來加密待用數據的 Azure 金鑰保存庫 金鑰名稱。

keyVaultKeyVersion

string

要用來加密待用數據的 Azure 金鑰保存庫 金鑰版本。

keyVaultUri

string

Azure 金鑰保存庫 的 URI,也稱為 DNS 名稱,其中包含用來加密待用數據的密鑰。 範例 URI 可能是 https://my-keyvault-name.vault.azure.net

SoftDeleteColumnDeletionDetectionPolicy

定義實作虛刪除策略的數據刪除偵測原則。 它會根據指定的「虛刪除」數據行的值,判斷是否應該刪除專案。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy

指定數據刪除偵測原則類型的 URI 片段。

softDeleteColumnName

string

要用於虛刪除偵測的數據行名稱。

softDeleteMarkerValue

string

將項目識別為已刪除的標記值。

SqlIntegratedChangeTrackingPolicy

定義數據變更偵測原則,此原則會使用 Azure SQL Database 的整合式 變更追蹤 功能來擷取變更。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy

指定數據變更偵測原則類型的 URI 片段。