Data Sources - Create Or Update
建立新的資料來源,或更新資料來源 (如果已存在)。
PUT {endpoint}/datasources('{dataSourceName}')?api-version=2025-08-01-preview
PUT {endpoint}/datasources('{dataSourceName}')?api-version=2025-08-01-preview&ignoreResetRequirements={ignoreResetRequirements}
URI 參數
| 名稱 | 位於 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
data
|
path | True |
string |
要建立或更新的資料來源名稱。 |
|
endpoint
|
path | True |
string |
搜尋服務的端點 URL。 |
|
api-version
|
query | True |
string |
用戶端 API 版本。 |
|
ignore
|
query |
boolean |
忽略快取重設需求。 |
要求標頭
| 名稱 | 必要 | 類型 | Description |
|---|---|---|---|
| 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 要求,指示服務在成功時傳回建立/更新的資源。 |
要求本文
| 名稱 | 必要 | 類型 | Description |
|---|---|---|---|
| container | True |
資料來源的資料容器。 |
|
| credentials | True |
資料來源的認證。 |
|
| name | True |
string |
資料來源的名稱。 |
| type | True |
資料來源的類型。 |
|
| @odata.etag |
string |
資料來源的 ETag。 |
|
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
資料來源的資料變更偵測原則。 |
|
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
資料來源的資料刪除偵測原則。 |
|
| description |
string |
資料來源的說明。 |
|
| encryptionKey |
您在 Azure 金鑰保存庫中建立的加密金鑰描述。 當您想要完全保證沒有人 (甚至 Microsoft) 無法解密您的資料來源定義時,此金鑰可用來為您的資料來源定義提供額外的待用加密層級。 加密資料來源定義之後,它將一律保持加密狀態。 搜尋服務會忽略嘗試將此屬性設定為 Null。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的資料來源定義不會受到影響。 使用客戶管理的金鑰進行加密不適用於免費搜尋服務,且僅適用於 2019 年 1 月 1 日或之後建立的付費服務。 |
||
| identity | SearchIndexerDataIdentity: |
要用於此資料來源的明確受控識別。 如果未指定,且連接字串是受控識別,則會使用系統指派的受控識別。 如果未指定,則值保持不變。 如果指定 “none” ,則會清除此屬性的值。 |
|
| indexerPermissionOptions |
具有各種型別許可權資料的擷取選項。 |
回應
| 名稱 | 類型 | Description |
|---|---|---|
| 200 OK | ||
| 201 Created | ||
| Other Status Codes |
錯誤回應。 |
範例
SearchServiceCreateOrUpdateDataSource
範例要求
PUT https://previewexampleservice.search.windows.net/datasources('tempdatasource')?api-version=2025-08-01-preview&ignoreResetRequirements=
{
"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"
},
"indexerPermissionOptions": [
"userIds",
"groupIds",
"rbacScope"
],
"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",
"indexerPermissionOptions": [
"userIds",
"groupIds",
"rbacScope"
],
"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",
"indexerPermissionOptions": [
"userIds",
"groupIds",
"rbacScope"
],
"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"
}
}
定義
| 名稱 | Description |
|---|---|
|
Azure |
針對搜尋服務建立之已註冊應用程式認證,用於對儲存在 Azure 金鑰保存庫中的加密金鑰進行驗證存取。 |
|
Data |
代表可用來連線至資料來源的認證。 |
|
Error |
資源管理錯誤其他資訊。 |
|
Error |
錯誤詳細數據。 |
|
Error |
錯誤回應 |
|
High |
定義資料變更偵測原則,以根據高臨界值資料行的值來擷取變更。 |
|
Indexer |
具有各種類型許可資料的選項,以編製索引。 |
|
Native |
定義資料刪除偵測原則,利用 Azure Blob 儲存體的原生虛刪除功能進行刪除偵測。 |
|
Search |
代表將編製索引之實體 (例如 Azure SQL 資料表或 CosmosDB 集合) 的相關資訊。 |
|
Search |
清除資料來源的身分識別屬性。 |
|
Search |
代表資料來源定義,可用來設定索引子。 |
|
Search |
定義資料來源的類型。 |
|
Search |
指定要使用的資料來源身分識別。 |
|
Search |
Azure Key Vault 中的客戶管理加密金鑰。 您建立和管理的金鑰可用來加密或解密靜態資料,例如索引和同義字對映。 |
|
Soft |
定義實作軟刪除策略的資料刪除偵測原則。 它會根據指定的「虛刪除」資料行的值來決定是否應該刪除專案。 |
|
Sql |
定義資料變更偵測原則,以使用 Azure SQL 資料庫的整合式變更追蹤功能來擷取變更。 |
AzureActiveDirectoryApplicationCredentials
針對搜尋服務建立之已註冊應用程式認證,用於對儲存在 Azure 金鑰保存庫中的加密金鑰進行驗證存取。
| 名稱 | 類型 | Description |
|---|---|---|
| applicationId |
string |
已授與 Azure 金鑰保存庫所需存取權限的 AAD 應用程式識別碼,可在加密待用資料時使用。 應用程式識別碼不應與 AAD 應用程式的物件識別碼混淆。 |
| applicationSecret |
string |
指定 AAD 應用程式的驗證金鑰。 |
DataSourceCredentials
代表可用來連線至資料來源的認證。
| 名稱 | 類型 | Description |
|---|---|---|
| connectionString |
string |
資料來源的連接字串。 如果您不想更新連接字串,請設定為 |
ErrorAdditionalInfo
資源管理錯誤其他資訊。
| 名稱 | 類型 | Description |
|---|---|---|
| info |
object |
其他資訊。 |
| type |
string |
其他信息類型。 |
ErrorDetail
錯誤詳細數據。
| 名稱 | 類型 | Description |
|---|---|---|
| additionalInfo |
錯誤其他資訊。 |
|
| code |
string |
錯誤碼。 |
| details |
錯誤詳細資料。 |
|
| message |
string |
錯誤訊息。 |
| target |
string |
錯誤目標。 |
ErrorResponse
錯誤回應
| 名稱 | 類型 | Description |
|---|---|---|
| error |
error 物件。 |
HighWaterMarkChangeDetectionPolicy
定義資料變更偵測原則,以根據高臨界值資料行的值來擷取變更。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定資料變更偵測原則類型的 URI 片段。 |
| highWaterMarkColumnName |
string |
高臨界值欄的名稱。 |
IndexerPermissionOption
具有各種類型許可資料的選項,以編製索引。
| 值 | Description |
|---|---|
| userIds |
索引子,將 ACL userId 從資料來源擷取至索引。 |
| groupIds |
索引子,將ACL groupId從資料來源擷取至索引。 |
| rbacScope |
索引子,可將 Azure RBAC 範圍從資料來源內嵌至索引。 |
NativeBlobSoftDeleteDeletionDetectionPolicy
定義資料刪除偵測原則,利用 Azure Blob 儲存體的原生虛刪除功能進行刪除偵測。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定資料刪除偵測原則類型的 URI 片段。 |
SearchIndexerDataContainer
代表將編製索引之實體 (例如 Azure SQL 資料表或 CosmosDB 集合) 的相關資訊。
| 名稱 | 類型 | Description |
|---|---|---|
| name |
string |
將編製索引的資料表或檢視 (適用於 Azure SQL 資料來源) 或集合 (適用於 CosmosDB 資料來源) 的名稱。 |
| query |
string |
套用至此資料容器的查詢。 此參數的語法和意義是數據源特定的。 Azure SQL 資料來源不支援。 |
SearchIndexerDataNoneIdentity
清除資料來源的身分識別屬性。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定身分類型的 URI 片段。 |
SearchIndexerDataSource
代表資料來源定義,可用來設定索引子。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.etag |
string |
資料來源的 ETag。 |
| container |
資料來源的資料容器。 |
|
| credentials |
資料來源的認證。 |
|
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
資料來源的資料變更偵測原則。 |
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
資料來源的資料刪除偵測原則。 |
| description |
string |
資料來源的說明。 |
| encryptionKey |
您在 Azure 金鑰保存庫中建立的加密金鑰描述。 當您想要完全保證沒有人 (甚至 Microsoft) 無法解密您的資料來源定義時,此金鑰可用來為您的資料來源定義提供額外的待用加密層級。 加密資料來源定義之後,它將一律保持加密狀態。 搜尋服務會忽略嘗試將此屬性設定為 Null。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的資料來源定義不會受到影響。 使用客戶管理的金鑰進行加密不適用於免費搜尋服務,且僅適用於 2019 年 1 月 1 日或之後建立的付費服務。 |
|
| identity | SearchIndexerDataIdentity: |
要用於此資料來源的明確受控識別。 如果未指定,且連接字串是受控識別,則會使用系統指派的受控識別。 如果未指定,則值保持不變。 如果指定 “none” ,則會清除此屬性的值。 |
| indexerPermissionOptions |
具有各種型別許可權資料的擷取選項。 |
|
| name |
string |
資料來源的名稱。 |
| subType |
string |
特定類型的資料來源,以防資源能夠使用不同的模式。 例如,某些 'cosmosDb' 帳戶的 'MongoDb'。 |
| type |
資料來源的類型。 |
SearchIndexerDataSourceType
定義資料來源的類型。
| 值 | Description |
|---|---|
| azuresql |
指出 Azure SQL 資料來源。 |
| cosmosdb |
指出 CosmosDB 資料來源。 |
| azureblob |
指出 Azure Blob 資料來源。 |
| azuretable |
指出 Azure 資料表資料來源。 |
| mysql |
指出 MySQL 資料來源。 |
| adlsgen2 |
指出 ADLS Gen2 資料來源。 |
| onelake |
指出 Microsoft Fabric OneLake 資料來源。 |
SearchIndexerDataUserAssignedIdentity
指定要使用的資料來源身分識別。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定身分類型的 URI 片段。 |
| userAssignedIdentity |
string |
使用者指派受控識別的完整 Azure 資源識別碼,通常採用「/subscriptions/12345678-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId」格式,應該已指派給搜尋服務。 |
SearchResourceEncryptionKey
Azure Key Vault 中的客戶管理加密金鑰。 您建立和管理的金鑰可用來加密或解密靜態資料,例如索引和同義字對映。
| 名稱 | 類型 | Description |
|---|---|---|
| accessCredentials |
用來存取 Azure 金鑰保存庫的選擇性 Azure Active Directory 認證。 如果改用受控識別,則不需要。 |
|
| identity | SearchIndexerDataIdentity: |
用於此加密金鑰的明確受控識別。 如果未指定且存取認證屬性為 Null,則會使用系統指派的受控識別。 更新資源時,如果未指定明確身分識別,則會保持不變。 如果指定 “none” ,則會清除此屬性的值。 |
| keyVaultKeyName |
string |
要用來加密待用資料的 Azure 金鑰保存庫名稱。 |
| keyVaultKeyVersion |
string |
要用來加密待用資料的 Azure 金鑰版本。 |
| keyVaultUri |
string |
Azure 金鑰保存庫的 URI,也稱為 DNS 名稱,其中包含要用來加密待用資料的金鑰。 範例 URI 可能是 |
SoftDeleteColumnDeletionDetectionPolicy
定義實作軟刪除策略的資料刪除偵測原則。 它會根據指定的「虛刪除」資料行的值來決定是否應該刪除專案。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定資料刪除偵測原則類型的 URI 片段。 |
| softDeleteColumnName |
string |
用於軟刪除偵測的資料行名稱。 |
| softDeleteMarkerValue |
string |
將項目識別為已刪除的標記值。 |
SqlIntegratedChangeTrackingPolicy
定義資料變更偵測原則,以使用 Azure SQL 資料庫的整合式變更追蹤功能來擷取變更。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定資料變更偵測原則類型的 URI 片段。 |