共用方式為


Data Sources - Create Or Update

建立新的資料來源,或更新資料來源 (如果已存在)。

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

URI 參數

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

string

要建立或更新的資料來源名稱。

endpoint
path True

string

搜尋服務的端點 URL。

api-version
query True

string

用戶端 API 版本。

要求標頭

名稱 必要 類型 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

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 日或之後建立的付費服務。

回應

名稱 類型 Description
200 OK

SearchIndexerDataSource

201 Created

SearchIndexerDataSource

Other Status Codes

ErrorResponse

錯誤回應。

範例

SearchServiceCreateOrUpdateDataSource

範例要求

PUT https://stableexampleservice.search.windows.net/datasources('tempdatasource')?api-version=2025-09-01





{
  "name": "tempdatasource",
  "description": "My Azure Blob data source.",
  "type": "azureblob",
  "credentials": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
  },
  "container": {
    "name": "doc-extraction-skillset",
    "query": "E2E_Dsat"
  },
  "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 Blob data source.",
  "type": "azureblob",
  "credentials": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
  },
  "container": {
    "name": "doc-extraction-skillset",
    "query": "E2E_Dsat"
  },
  "dataChangeDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
    "highWaterMarkColumnName": "metadata_storage_last_modified"
  },
  "dataDeletionDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
    "softDeleteColumnName": "isDeleted",
    "softDeleteMarkerValue": "true"
  }
}
{
  "@odata.etag": "0x1234568AE7E58A1",
  "name": "tempdatasource",
  "description": "My Azure Blob data source.",
  "type": "azureblob",
  "credentials": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
  },
  "container": {
    "name": "doc-extraction-skillset",
    "query": "E2E_Dsat"
  },
  "dataChangeDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
    "highWaterMarkColumnName": "metadata_storage_last_modified"
  },
  "dataDeletionDetectionPolicy": {
    "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
    "softDeleteColumnName": "isDeleted",
    "softDeleteMarkerValue": "true"
  }
}

定義

名稱 Description
AzureActiveDirectoryApplicationCredentials

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

DataSourceCredentials

代表可用來連線至資料來源的認證。

ErrorAdditionalInfo

資源管理錯誤其他資訊。

ErrorDetail

錯誤詳細數據。

ErrorResponse

錯誤回應

HighWaterMarkChangeDetectionPolicy

定義資料變更偵測原則,以根據高臨界值資料行的值來擷取變更。

SearchIndexerDataContainer

代表將編製索引之實體 (例如 Azure SQL 資料表或 CosmosDB 集合) 的相關資訊。

SearchIndexerDataSource

代表資料來源定義,可用來設定索引子。

SearchIndexerDataSourceType

定義資料來源的類型。

SearchResourceEncryptionKey

Azure Key Vault 中的客戶管理加密金鑰。 您建立和管理的金鑰可用來加密或解密靜態資料,例如索引和同義字對映。

SoftDeleteColumnDeletionDetectionPolicy

定義實作軟刪除策略的資料刪除偵測原則。 它會根據指定的「虛刪除」資料行的值來決定是否應該刪除專案。

SqlIntegratedChangeTrackingPolicy

定義資料變更偵測原則,以使用 Azure SQL 資料庫的整合式變更追蹤功能來擷取變更。

AzureActiveDirectoryApplicationCredentials

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

名稱 類型 Description
applicationId

string

已授與 Azure 金鑰保存庫所需存取權限的 AAD 應用程式識別碼,可在加密待用資料時使用。 應用程式識別碼不應與 AAD 應用程式的物件識別碼混淆。

applicationSecret

string

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

DataSourceCredentials

代表可用來連線至資料來源的認證。

名稱 類型 Description
connectionString

string

資料來源的連接字串。 針對 Azure SQL、Azure Blob、ADLS Gen 2 和 Azure 資料表,如果使用受控識別,這將是連接字串或資源識別碼。 針對 CosmosDB,這會是格式化的連接字串,指定受控識別的 ApiKind 或資源識別碼。 針對 Onelake 檔案,連接字串會是工作區 GUID 或工作區 FQDN;Onelake 僅支援受控識別連線。 如果您不想更新連接字串,請設定為 <unchanged> (帶括弧)。 如果您想要從資料來源移除連接字串值,請設定為 <redacted>

ErrorAdditionalInfo

資源管理錯誤其他資訊。

名稱 類型 Description
info

object

其他資訊。

type

string

其他信息類型。

ErrorDetail

錯誤詳細數據。

名稱 類型 Description
additionalInfo

ErrorAdditionalInfo[]

錯誤其他資訊。

code

string

錯誤碼。

details

ErrorDetail[]

錯誤詳細數據。

message

string

錯誤訊息。

target

string

錯誤目標。

ErrorResponse

錯誤回應

名稱 類型 Description
error

ErrorDetail

error 物件。

HighWaterMarkChangeDetectionPolicy

定義資料變更偵測原則,以根據高臨界值資料行的值來擷取變更。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy

指定資料變更偵測原則類型的 URI 片段。

highWaterMarkColumnName

string

高臨界值欄的名稱。

SearchIndexerDataContainer

代表將編製索引之實體 (例如 Azure SQL 資料表或 CosmosDB 集合) 的相關資訊。

名稱 類型 Description
name

string

將編製索引的資料表或檢視 (適用於 Azure SQL 資料來源)、集合 (適用於 CosmosDB 資料來源)、容器 (適用於 Azure Blob 和 ADLS Gen 2 資料來源)、Azure 資料表 (適用於 Azure 資料表資料來源) 或 Lakehouse (適用於 Onelake 資料來源) 的名稱。

query

string

套用至此資料容器的查詢。 針對 CosmosDB 資料來源查詢,可以平面化和篩選資料。 針對 Azure Blob 和 ADLS Gen 2 查詢,可以依資料夾進行篩選。 針對 Azure 資料表查詢,可以依資料列資料進行篩選。 對於 Onelake,查詢可以按文件夾或快捷方式進行過濾。 Azure SQL 資料來源不支援。

SearchIndexerDataSource

代表資料來源定義,可用來設定索引子。

名稱 類型 Description
@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

定義資料來源的類型。

Description
azuresql

Azure SQL 資料來源的定義,其認證可以是標準 SQL 連接字串或 SQL 資源的 ResourceId。 容器屬性是指要索引的表格或視圖。 此資料來源不支援查詢參數。

cosmosdb

CosmosDB 資料來源的定義,其認證可以是格式化的連接字串,其中包含金鑰型連線的 AccountEndpoint、AccountKey 和 Database 詳細數據,或無金鑰連線的 ResourceID 和 ApiKind 詳細數據。 容器屬性是指要編製索引的 cosmosdb 集合,而選擇性查詢屬性則是指集合上的 SQL 查詢。

azureblob

Azure Blob 資料來源的定義,其認證可以是儲存體連接字串或儲存體帳戶的 ResourceId。 容器屬性是指要編製索引的 Blob 容器,而選擇性查詢屬性是指容器中的特定子資料夾。

azuretable

Azure 資料表資料來源的定義,其認證可以是資料表連接字串或儲存體帳戶的 ResourceId。 容器屬性是指要編製索引的 Blob 容器,而選擇性查詢屬性可用來篩選資料列。

mysql

Azure SQL 資料來源的定義,其認證可以是標準 ADO.NET 格式的 SQL 連接字串或 SQL 資源的 ResourceId。 容器屬性是指要索引的表格或視圖。 此資料來源不支援查詢參數。

adlsgen2

Azure ADLS Gen 2 資料來源的定義,其認證可以是儲存體連接字串或儲存體帳戶的 ResourceId。 容器屬性是指要編製索引的 Blob 容器,而選擇性查詢屬性是指容器中的特定子資料夾。

onelake

Microsoft Fabric Onelake 資料來源的定義,其認證可以是 Fabric 工作區 GUID 或工作區 FQDN。 容器屬性是指湖屋 GUID,而選擇性查詢屬性是指湖屋中的資料夾或快捷方式。

SearchResourceEncryptionKey

Azure Key Vault 中的客戶管理加密金鑰。 您建立和管理的金鑰可用來加密或解密靜態資料,例如索引和同義字對映。

名稱 類型 Description
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

定義實作軟刪除策略的資料刪除偵測原則。 它會根據指定的「虛刪除」資料行的值來決定是否應該刪除專案。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy

指定資料刪除偵測原則類型的 URI 片段。

softDeleteColumnName

string

用於軟刪除偵測的資料行名稱。

softDeleteMarkerValue

string

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

SqlIntegratedChangeTrackingPolicy

定義資料變更偵測原則,以使用 Azure SQL 資料庫的整合式變更追蹤功能來擷取變更。

名稱 類型 Description
@odata.type string:

#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy

指定資料變更偵測原則類型的 URI 片段。