Data Sources - Create Or Update
建立新的資料來源,或更新資料來源 (如果已存在)。
PUT https:///datasources('{dataSourceName}')?api-version=2025-11-01-preview
PUT https:///datasources('{dataSourceName}')?api-version=2025-11-01-preview&ignoreResetRequirements={ignoreResetRequirements}
URI 參數
| 名稱 | 位於 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
data
|
path | True |
string |
數據源的名稱。 |
|
api-version
|
query | True |
string minLength: 1 |
用於此作業的 API 版本。 |
|
ignore
|
query |
boolean |
忽略快取重設需求。 |
要求標頭
| 名稱 | 必要 | 類型 | Description |
|---|---|---|---|
| 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) |
要求不透明、全域唯一、用戶端產生的字串標識碼。 |
要求本文
| 名稱 | 必要 | 類型 | Description |
|---|---|---|---|
| container | True |
數據源的數據容器。 |
|
| name | True |
string |
數據源的名稱。 |
| type | True |
數據源的類型。 |
|
| @odata.etag |
string |
數據源的 ETag。 |
|
| credentials.connectionString |
string |
數據源的連接字串。 如果您不想更新連接字串,請設定為 |
|
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
數據源的數據變更偵測原則。 |
|
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
數據源的數據刪除偵測原則。 |
|
| description |
string |
數據源的描述。 |
|
| encryptionKey |
您在 Azure Key Vault 中建立的加密金鑰描述。 當您想要完全保證沒有人 (甚至 Microsoft) 無法解密您的資料來源定義時,此金鑰可用來為您的資料來源定義提供額外的待用加密層級。 加密數據源定義之後,一律會保持加密狀態。 搜尋服務會忽略嘗試將此屬性設定為 Null。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的數據源定義不會受到影響。 使用客戶管理的金鑰加密不適用於免費搜尋服務,而且僅適用於 2019 年 1 月 1 日或之後建立的付費服務。 |
||
| identity | SearchIndexerDataIdentity: |
要用於此數據源的明確受控識別。 如果未指定,而且連接字串是受控識別,則會使用系統指派的受控識別。 如果未指定,該值會維持不變。 如果指定了 「none」 ,則會清除此屬性的值。 |
|
| indexerPermissionOptions |
具有各種型別許可權資料的擷取選項。 |
回應
| 名稱 | 類型 | Description |
|---|---|---|
| 200 OK |
要求已成功。 |
|
| 201 Created |
要求已成功,因此已建立新的資源。 |
|
| Other Status Codes |
未預期的錯誤回應。 |
安全性
api-key
類型:
apiKey
位於:
header
OAuth2Auth
類型:
oauth2
Flow:
implicit
授權 URL:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
範圍
| 名稱 | Description |
|---|---|
| https://search.azure.com/.default |
範例
SearchServiceCreateOrUpdateDataSource
範例要求
PUT https:///datasources('tempdatasource')?api-version=2025-11-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 |
|---|---|
| Accept |
接受標頭。 |
|
Error |
資源管理錯誤其他資訊。 |
|
Error |
錯誤詳細數據。 |
|
Error |
所有 Azure Resource Manager API 的常見錯誤回應,以傳回失敗作業的錯誤詳細數據。 (這也遵循 OData 錯誤回應格式。)。 |
|
High |
定義數據變更偵測原則,根據高水位線數據行的值擷取變更。 |
|
Indexer |
具有各種類型許可資料的選項,以編製索引。 |
|
Native |
定義使用 Azure Blob 記憶體原生虛刪除功能進行刪除偵測的數據刪除偵測原則。 |
| Prefer |
針對 HTTP PUT 要求,指示服務在成功時傳回建立/更新的資源。 |
|
Search |
表示將編製索引之實體的相關信息(例如 Azure SQL 數據表或 CosmosDB 集合)。 |
|
Search |
清除資料源的識別屬性。 |
|
Search |
表示數據源定義,可用來設定索引器。 |
|
Search |
定義資料來源的類型。 |
|
Search |
指定要使用之數據源的身分識別。 |
|
Search |
Azure Key Vault 中客戶管理的加密密鑰。 您建立和管理的金鑰可用來加密或解密靜態資料,例如索引和同義字對映。 |
|
Soft |
定義實作虛刪除策略的數據刪除偵測原則。 它會根據指定之「虛刪除」數據行的值,判斷是否應該刪除專案。 |
|
Sql |
定義數據變更偵測原則,以使用 Azure SQL Database 的整合式變更追蹤功能來擷取變更。 |
Accept
接受標頭。
| 值 | Description |
|---|---|
| application/json;odata.metadata=minimal |
ErrorAdditionalInfo
資源管理錯誤其他資訊。
| 名稱 | 類型 | Description |
|---|---|---|
| info |
附加資訊。 |
|
| type |
string |
其他資訊類型。 |
ErrorDetail
錯誤詳細數據。
| 名稱 | 類型 | Description |
|---|---|---|
| additionalInfo |
錯誤附加資訊。 |
|
| code |
string |
錯誤碼。 |
| details |
錯誤詳細數據。 |
|
| message |
string |
錯誤訊息。 |
| target |
string |
錯誤目標。 |
ErrorResponse
所有 Azure Resource Manager API 的常見錯誤回應,以傳回失敗作業的錯誤詳細數據。 (這也遵循 OData 錯誤回應格式。)。
| 名稱 | 類型 | Description |
|---|---|---|
| error |
錯誤物件。 |
HighWaterMarkChangeDetectionPolicy
定義數據變更偵測原則,根據高水位線數據行的值擷取變更。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
衍生型別的歧視性。 |
| highWaterMarkColumnName |
string |
高臨界值欄的名稱。 |
IndexerPermissionOption
具有各種類型許可資料的選項,以編製索引。
| 值 | Description |
|---|---|
| userIds |
索引子,將 ACL userId 從資料來源擷取至索引。 |
| groupIds |
索引子,將ACL groupId從資料來源擷取至索引。 |
| rbacScope |
索引子,可將 Azure RBAC 範圍從資料來源內嵌至索引。 |
NativeBlobSoftDeleteDeletionDetectionPolicy
定義使用 Azure Blob 記憶體原生虛刪除功能進行刪除偵測的數據刪除偵測原則。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
衍生型別的歧視性。 |
Prefer
針對 HTTP PUT 要求,指示服務在成功時傳回建立/更新的資源。
| 值 | Description |
|---|---|
| return=representation |
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.connectionString |
string |
數據源的連接字串。 如果您不想更新連接字串,請設定為 |
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
數據源的數據變更偵測原則。 |
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
數據源的數據刪除偵測原則。 |
| description |
string |
數據源的描述。 |
| encryptionKey |
您在 Azure Key Vault 中建立的加密金鑰描述。 當您想要完全保證沒有人 (甚至 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 資料來源。 |
| sharepoint |
指出 SharePoint 資料來源。 |
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.applicationId |
string |
AAD 應用程式識別碼,已將待用數據加密時要使用的 Azure Key Vault 所需訪問許可權授與。 應用程式標識碼不應與 AAD 應用程式的物件標識元混淆。 |
| accessCredentials.applicationSecret |
string |
指定 AAD 應用程式的驗證金鑰。 |
| identity | SearchIndexerDataIdentity: |
要用於此加密金鑰的明確受控識別。 如果未指定,且存取認證屬性為 Null,則會使用系統指派的受控識別。 更新資源時,如果未指定明確識別,則會維持不變。 如果指定了 「none」 ,則會清除此屬性的值。 |
| keyVaultKeyName |
string |
要用來加密待用數據的 Azure Key Vault 金鑰名稱。 |
| keyVaultKeyVersion |
string |
要用來加密待用數據的 Azure Key Vault 金鑰版本。 |
| keyVaultUri |
string |
Azure Key Vault 的 URI,也稱為 DNS 名稱,其中包含用來加密待用數據的密鑰。 範例 URI 可能會 |
SoftDeleteColumnDeletionDetectionPolicy
定義實作虛刪除策略的數據刪除偵測原則。 它會根據指定之「虛刪除」數據行的值,判斷是否應該刪除專案。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
衍生型別的歧視性。 |
| softDeleteColumnName |
string |
用於軟刪除偵測的資料行名稱。 |
| softDeleteMarkerValue |
string |
將項目識別為已刪除的標記值。 |
SqlIntegratedChangeTrackingPolicy
定義數據變更偵測原則,以使用 Azure SQL Database 的整合式變更追蹤功能來擷取變更。
| 名稱 | 類型 | Description |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
衍生型別的歧視性。 |