你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Bicep 资源定义
可以使用目标操作部署 searchServices 资源类型:
- 资源组 - 参见 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
用法示例
Bicep示例
部署 Search Service 的基本示例。
param resourceName string = 'acctest0001'
param location string = 'westeurope'
resource searchService 'Microsoft.Search/searchServices@2022-09-01' = {
name: resourceName
location: location
sku: {
name: 'standard'
}
properties: {
authOptions: {
apiKeyOnly: {}
}
disableLocalAuth: false
encryptionWithCmk: {
enforcement: 'Disabled'
}
hostingMode: 'default'
networkRuleSet: {
ipRules: []
}
partitionCount: 1
publicNetworkAccess: 'Enabled'
replicaCount: 1
}
tags: {
environment: 'staging'
}
}
Azure 验证模块
以下 Azure 验证模块可用于部署该资源类型。
| 模块 | 说明 |
|---|---|
| 搜索服务 | 搜索服务的 AVM 资源模块 |
Azure 快速入门示例
以下 Azure 快速入门模板 包含用于部署此资源类型的 Bicep 示例。
| Bicep 文件 | 说明 |
|---|---|
| Azure AI Foundry 网络受限 | 这组模板演示了如何在禁用专用链接和出口的情况下设置 Azure AI Foundry,使用 Microsoft 管理的密钥进行加密,并使用 Microsoft 管理的标识配置为 AI 资源。 |
| Azure 认知搜索服务 | 此模板创建 Azure 认知搜索服务 |
| 使用用户托管标识 网络安全代理 | 此模板集演示如何使用用户托管标识身份验证为 AI 服务/AOAI 连接设置虚拟网络隔离的 Azure AI 代理服务,以及专用网络链接,以将代理连接到安全数据。 |
| 标准代理设置 | 此模板集演示如何使用标准设置设置设置 Azure AI 代理服务,这意味着已启用项目/中心连接的托管标识身份验证和公共 Internet 访问。 代理使用客户拥有的单租户搜索和存储资源。 通过此设置,可以完全控制这些资源并查看这些资源,但会根据使用情况产生成本。 |
资源格式
若要创建 Microsoft.Search/searchServices 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Search/searchServices@2026-03-01-preview' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
properties: {
authOptions: {
aadOrApiKey: {
aadAuthFailureMode: 'string'
}
apiKeyOnly: any(...)
}
computeType: 'string'
dataExfiltrationProtections: [
'string'
]
disableLocalAuth: bool
encryptionWithCmk: {
enforcement: 'string'
serviceLevelEncryptionKey: {
accessCredentials: {
applicationId: 'string'
applicationSecret: 'string'
}
identity: {
@odata.type: 'string'
// For remaining properties, see DataIdentity objects
}
keyVaultKeyName: 'string'
keyVaultKeyVersion: 'string'
keyVaultUri: 'string'
}
}
endpoint: 'string'
hostingMode: 'string'
knowledgeRetrieval: 'string'
networkRuleSet: {
bypass: 'string'
ipRules: [
{
value: 'string'
}
]
}
partitionCount: int
publicNetworkAccess: 'string'
replicaCount: int
semanticSearch: 'string'
upgradeAvailable: 'string'
}
sku: {
name: 'string'
}
tags: {
{customized property}: 'string'
}
}
DataIdentity 对象
设置 @odata.type 属性以指定对象的类型。
对于 #Microsoft.Azure.Search.DataNoneIdentity,请使用:
{
@odata.type: '#Microsoft.Azure.Search.DataNoneIdentity'
}
对于 #Microsoft.Azure.Search.DataUserAssignedIdentity,请使用:
{
@odata.type: '#Microsoft.Azure.Search.DataUserAssignedIdentity'
federatedIdentityClientId: 'string'
userAssignedIdentity: 'string'
}
属性值
Microsoft.Search/searchServices
| 名称 | 说明 | 价值 |
|---|---|---|
| 标识 | 资源的标识。 | 身份 |
| 位置 | 资源所在的地理位置 | string (必需) |
| 名字 | 资源名称 | string 约束: 模式 = ^(?=.{2,60}$)[a-z0-9][a-z0-9]+(-[a-z0-9]+)*$ (必需) |
| 性能 | 搜索服务的属性。 | SearchServiceProperties |
| sku | 搜索服务的 SKU,用于确定价格层和容量限制。 创建新搜索服务时,此属性是必需的。 | Sku |
| 标记 | 资源标记 | 标记名称和值的字典。 请参见模板中的标签 |
AzureActiveDirectoryApplicationCredentials
| 名称 | 说明 | 价值 |
|---|---|---|
| 应用ID | 租户中应用注册的应用(客户端)ID。 | 字符串 |
| 应用程序密钥 | 这是为应用注册生成的AAD客户端秘密,用于与Azure 密钥保管库进行身份验证。 | string 约束: 敏感值。 以安全参数的形式传入。 |
数据身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 对于类型 DataNoneIdentity,设置为“#Microsoft.Azure.Search.DataNoneIdentity”。 对于类型 DataUserAssignedIdentity,设置为“#Microsoft.Azure.Search.DataUserAssignedIdentity”。 | “#Microsoft.Azure.Search.DataNoneIdentity” “#Microsoft.Azure.Search.DataUserAssignedIdentity”(必需) |
数据无身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 指定身份类型的 URI 片段。 | “#Microsoft.Azure.Search.DataNoneIdentity”(必需) |
DataPlaneAadOrApiKeyAuthOption
| 名称 | 说明 | 价值 |
|---|---|---|
| aadAuthFailureMode | 描述搜索服务的数据平面 API 针对身份验证失败的请求发送的响应。 | “http401WithBearerChallenge” “http403” |
DataPlaneAuthOptions
| 名称 | 说明 | 价值 |
|---|---|---|
| aadOrApiKey | 指示 API 密钥或来自 Microsoft Entra ID 租户的访问令牌可用于身份验证。 | DataPlaneAadOrApiKeyAuthOption |
| apiKeyOnly | 指示只能使用 API 密钥进行身份验证。 | 任意 |
数据用户分配身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 指定身份类型的 URI 片段。 | “#Microsoft.Azure.Search.DataUserAssignedIdentity”(必需) |
| federatedIdentityClientId | 多租户 User-Assigned 管理身份CMK支持可选:多租户应用注册的客户端ID(作为UUID),该配置为与userAssignedIdentity联合。 | 字符串 |
| userAssignedIdentity | 用户分配的托管标识的完全限定的 Azure 资源 ID,通常采用“/subscriptions/12345678-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId”的形式,应分配给搜索服务。 | string (必需) |
EncryptionWithCmk 的
| 名称 | 说明 | 价值 |
|---|---|---|
| 执法 | 描述如果搜索服务查找未使用客户管理的密钥加密的对象,则搜索服务应如何强制实施符合性。 | 'Disabled' 'Enabled' “Unspecified” |
| serviceLevel加密密钥 | 描述由客户管理的搜索服务加密密钥配置。 | SearchResourceEncryptionKey |
身份
| 名称 | 说明 | 价值 |
|---|---|---|
| 类型 | 用于资源的标识类型。 类型“SystemAssigned, UserAssigned”包含系统创建的一个标识,以及用户分配的一组标识。 类型“None”将从服务中删除所有标识。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned”(必需) |
| userAssignedIdentities | 与资源关联的用户标识列表。 用户标识字典密钥引用的格式为 ARM 资源 ID:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 | IdentityUserAssignedIdentities |
IdentityUserAssignedIdentities
| 名称 | 说明 | 价值 |
|---|
IpRule (英语)
| 名称 | 说明 | 价值 |
|---|---|---|
| value | 与单个 IPv4 地址(例如,123.1.2.3)或 CIDR 格式(例如,允许 123.1.2.3/24)的 IP 范围对应的值。 | 字符串 |
NetworkRuleSet 网络规则集
| 名称 | 说明 | 价值 |
|---|---|---|
| 旁路 | 可以绕过“ipRules”部分中定义的规则的入站流量的可能来源。 | “AzurePortal” 'AzureServices' “None” |
| ipRules | 定义入站网络(s)的 IP 限制规则列表,允许访问搜索服务终结点。 同时,防火墙会阻止所有其他公共 IP 网络。 仅当搜索服务的“publicNetworkAccess”为“enabled”时,才应用这些限制规则;否则,即使使用任何公共 IP 规则,也不允许通过公共接口的流量,专用终结点连接将是独占访问方法。 | IpRule[] |
搜索资源加密密钥
| 名称 | 说明 | 价值 |
|---|---|---|
| 访问凭据 | 用于访问 Azure 密钥保管库 的可选 Azure Active Directory 凭据。 如果改用托管标识,则不需要。 | AzureActiveDirectoryApplicationCredentials |
| 标识 | 用于此加密密钥的显式托管标识。 如果未指定并且访问凭据属性为 null,则使用系统分配的托管标识。 更新资源时,如果未指定显式标识,则保持不变。 如果指定了“none”,则清除此属性的值。 | 数据身份 |
| keyVaultKeyName | 用于加密静态数据的 Azure 密钥保管库 密钥的名称。 | 字符串 |
| keyVaultKeyVersion | 用于加密静态数据的 Azure 密钥保管库 密钥的版本。 | 字符串 |
| keyVaultUri | Azure 密钥保管库 的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 示例 URI 可能是 https://my-keyvault-name.vault.azure.net。 |
字符串 |
SearchServiceProperties
| 名称 | 说明 | 价值 |
|---|---|---|
| authOptions | 定义搜索服务的数据平面 API 如何对请求进行身份验证的选项。 如果“disableLocalAuth”设置为 true,则无法设置此项。 | DataPlaneAuthOptions |
| computeType | 配置此属性以支持使用默认计算或 Azure 机密计算的搜索服务。 | “机密” 'Default' |
| dataExfiltrationProtections | 显式禁止搜索服务的数据外泄方案列表。 目前,唯一支持的值是“全部”,用于禁用所有可能的数据导出方案,并计划将来进行更精细的控制。 | 包含任一项的字符串数组: 'BlockAll' |
| disableLocalAuth | 如果设置为 true,则不允许调用搜索服务以使用 API 密钥进行身份验证。 如果定义了“dataPlaneAuthOptions”,则无法将其设置为 true。 | 布尔 |
| encryptionWithCmk | 指定有关使用搜索服务中的客户经理密钥加密资源(如索引)的任何策略。 | EncryptionWithCmk 的 |
| 终结点 | Azure AI 搜索服务的终结点。 | 字符串 |
| hostingMode | 仅适用于 standard3 SKU。 可以将此属性设置为最多允许 3 个高密度分区,允许最多 1000 个索引,这远远高于任何其他 SKU 允许的最大索引。 对于 standard3 SKU,该值为“默认”或“高密度”。 对于所有其他 SKU,此值必须为“默认”。 | 'Default' “高密度” |
| 知识检索 | 指定Azure AI搜索服务代理检索的计费计划。 该配置仅适用于特定地区的特定价格等级。 | “free” 'standard' |
| networkRuleSet 网络规则集 | 确定如何访问 Azure AI 搜索服务的网络特定规则。 | NetworkRuleSet 网络规则集 |
| partitionCount | 专用搜索服务中的分区数量;如果需要指定,可以是1、2、3、4、6或12。 大于 1 的值仅适用于标准 SKU。 对于 hostingMode 设置为“highDensity”的“standard3”服务,允许的值介于 1 到 3 之间。 | int 约束: 最小值 = 1 最大值 = 12 |
| 公用网络访问 | 可以将此值设置为“已启用”,以避免对现有客户资源和模板进行中断性更改。 如果设置为“禁用”,则不允许通过公共接口的流量,专用终结点连接将是独占访问方法。 | 'Disabled' 'Enabled' “SecuredByPerimeter” |
| replicaCount | 专用搜索服务中的副本数量。 如果指定,它必须是标准 SKU 的 1 到 12(含 1 到 3)之间的值,对于基本 SKU,该值必须介于 1 和 3 之间。 | int 约束: 最小值 = 1 最大值 = 12 |
| 语义搜索 | 规定Azure AI搜索服务语义搜索的可用性和计费计划。 该配置仅适用于特定地区的特定价格等级。 | “disabled” “free” 'standard' |
| upgrade可用 | 指示搜索服务是否有可用的升级。 | “available” 'notAvailable' |
Sku
| 名称 | 说明 | 价值 |
|---|---|---|
| 名字 | 搜索服务的 SKU。 有效值包括:“free”:共享服务。 “basic”:最多包含 3 个副本的专用服务。 “standard”:最多包含 12 个分区和 12 个副本的专用服务。 “standard2”:类似于标准,但每个搜索单位的容量更多。 “standard3”:最大标准产品/服务最多包含 12 个分区和 12 个副本(如果同时将 hostingMode 属性设置为“highDensity”,则最多具有 3 个具有更多索引的分区)。 “storage_optimized_l1”:支持每个分区 1TB,最多支持 12 个分区。 “storage_optimized_l2”:支持每个分区2TB,最多12个分区。 “无服务器”:无服务器层,具备自动扩展功能。 | 'basic' “free” “无服务器” 'standard' “standard2” “standard3” “storage_optimized_l1” “storage_optimized_l2” |
TrackedResourceTags
| 名称 | 说明 | 价值 |
|---|
UserAssignedIdentity
| 名称 | 说明 | 价值 |
|---|
ARM 模板资源定义
可以使用目标操作部署 searchServices 资源类型:
用法示例
Azure 快速入门模板
以下 Azure 快速入门模板 部署此资源类型。
| 模板 | 说明 |
|---|---|
|
Azure AI Foundry 网络受限 |
这组模板演示了如何在禁用专用链接和出口的情况下设置 Azure AI Foundry,使用 Microsoft 管理的密钥进行加密,并使用 Microsoft 管理的标识配置为 AI 资源。 |
|
Azure 认知搜索服务 |
此模板创建 Azure 认知搜索服务 |
| 使用专用终结点 |
此模板使用专用终结点创建 Azure 认知搜索服务。 |
| 使用用户托管标识 网络安全代理 |
此模板集演示如何使用用户托管标识身份验证为 AI 服务/AOAI 连接设置虚拟网络隔离的 Azure AI 代理服务,以及专用网络链接,以将代理连接到安全数据。 |
|
标准代理设置 |
此模板集演示如何使用标准设置设置设置 Azure AI 代理服务,这意味着已启用项目/中心连接的托管标识身份验证和公共 Internet 访问。 代理使用客户拥有的单租户搜索和存储资源。 通过此设置,可以完全控制这些资源并查看这些资源,但会根据使用情况产生成本。 |
|
Web 应用,包含 SQL 数据库、Azure Cosmos DB、Azure 搜索 |
该模板可提供Web App、SQL数据库、Azure Cosmos DB、Azure Search和Application Insights。 |
资源格式
若要创建 Microsoft.Search/searchServices 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Search/searchServices",
"apiVersion": "2026-03-01-preview",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"properties": {
"authOptions": {
"aadOrApiKey": {
"aadAuthFailureMode": "string"
},
"apiKeyOnly": {}
},
"computeType": "string",
"dataExfiltrationProtections": [ "string" ],
"disableLocalAuth": "bool",
"encryptionWithCmk": {
"enforcement": "string",
"serviceLevelEncryptionKey": {
"accessCredentials": {
"applicationId": "string",
"applicationSecret": "string"
},
"identity": {
"@odata.type": "string"
// For remaining properties, see DataIdentity objects
},
"keyVaultKeyName": "string",
"keyVaultKeyVersion": "string",
"keyVaultUri": "string"
}
},
"endpoint": "string",
"hostingMode": "string",
"knowledgeRetrieval": "string",
"networkRuleSet": {
"bypass": "string",
"ipRules": [
{
"value": "string"
}
]
},
"partitionCount": "int",
"publicNetworkAccess": "string",
"replicaCount": "int",
"semanticSearch": "string",
"upgradeAvailable": "string"
},
"sku": {
"name": "string"
},
"tags": {
"{customized property}": "string"
}
}
DataIdentity 对象
设置 @odata.type 属性以指定对象的类型。
对于 #Microsoft.Azure.Search.DataNoneIdentity,请使用:
{
"@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity"
}
对于 #Microsoft.Azure.Search.DataUserAssignedIdentity,请使用:
{
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"federatedIdentityClientId": "string",
"userAssignedIdentity": "string"
}
属性值
Microsoft.Search/searchServices
| 名称 | 说明 | 价值 |
|---|---|---|
| apiVersion | API 版本 | '2026-03-01-预览' |
| 标识 | 资源的标识。 | 身份 |
| 位置 | 资源所在的地理位置 | string (必需) |
| 名字 | 资源名称 | string 约束: 模式 = ^(?=.{2,60}$)[a-z0-9][a-z0-9]+(-[a-z0-9]+)*$ (必需) |
| 性能 | 搜索服务的属性。 | SearchServiceProperties |
| sku | 搜索服务的 SKU,用于确定价格层和容量限制。 创建新搜索服务时,此属性是必需的。 | Sku |
| 标记 | 资源标记 | 标记名称和值的字典。 请参见模板中的标签 |
| 类型 | 资源类型 | “Microsoft.Search/searchServices” |
AzureActiveDirectoryApplicationCredentials
| 名称 | 说明 | 价值 |
|---|---|---|
| 应用ID | 租户中应用注册的应用(客户端)ID。 | 字符串 |
| 应用程序密钥 | 这是为应用注册生成的AAD客户端秘密,用于与Azure 密钥保管库进行身份验证。 | string 约束: 敏感值。 以安全参数的形式传入。 |
数据身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 对于类型 DataNoneIdentity,设置为“#Microsoft.Azure.Search.DataNoneIdentity”。 对于类型 DataUserAssignedIdentity,设置为“#Microsoft.Azure.Search.DataUserAssignedIdentity”。 | “#Microsoft.Azure.Search.DataNoneIdentity” “#Microsoft.Azure.Search.DataUserAssignedIdentity”(必需) |
数据无身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 指定身份类型的 URI 片段。 | “#Microsoft.Azure.Search.DataNoneIdentity”(必需) |
DataPlaneAadOrApiKeyAuthOption
| 名称 | 说明 | 价值 |
|---|---|---|
| aadAuthFailureMode | 描述搜索服务的数据平面 API 针对身份验证失败的请求发送的响应。 | “http401WithBearerChallenge” “http403” |
DataPlaneAuthOptions
| 名称 | 说明 | 价值 |
|---|---|---|
| aadOrApiKey | 指示 API 密钥或来自 Microsoft Entra ID 租户的访问令牌可用于身份验证。 | DataPlaneAadOrApiKeyAuthOption |
| apiKeyOnly | 指示只能使用 API 密钥进行身份验证。 | 任意 |
数据用户分配身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 指定身份类型的 URI 片段。 | “#Microsoft.Azure.Search.DataUserAssignedIdentity”(必需) |
| federatedIdentityClientId | 多租户 User-Assigned 管理身份CMK支持可选:多租户应用注册的客户端ID(作为UUID),该配置为与userAssignedIdentity联合。 | 字符串 |
| userAssignedIdentity | 用户分配的托管标识的完全限定的 Azure 资源 ID,通常采用“/subscriptions/12345678-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId”的形式,应分配给搜索服务。 | string (必需) |
EncryptionWithCmk 的
| 名称 | 说明 | 价值 |
|---|---|---|
| 执法 | 描述如果搜索服务查找未使用客户管理的密钥加密的对象,则搜索服务应如何强制实施符合性。 | 'Disabled' 'Enabled' “Unspecified” |
| serviceLevel加密密钥 | 描述由客户管理的搜索服务加密密钥配置。 | SearchResourceEncryptionKey |
身份
| 名称 | 说明 | 价值 |
|---|---|---|
| 类型 | 用于资源的标识类型。 类型“SystemAssigned, UserAssigned”包含系统创建的一个标识,以及用户分配的一组标识。 类型“None”将从服务中删除所有标识。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned”(必需) |
| userAssignedIdentities | 与资源关联的用户标识列表。 用户标识字典密钥引用的格式为 ARM 资源 ID:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 | IdentityUserAssignedIdentities |
IdentityUserAssignedIdentities
| 名称 | 说明 | 价值 |
|---|
IpRule (英语)
| 名称 | 说明 | 价值 |
|---|---|---|
| value | 与单个 IPv4 地址(例如,123.1.2.3)或 CIDR 格式(例如,允许 123.1.2.3/24)的 IP 范围对应的值。 | 字符串 |
NetworkRuleSet 网络规则集
| 名称 | 说明 | 价值 |
|---|---|---|
| 旁路 | 可以绕过“ipRules”部分中定义的规则的入站流量的可能来源。 | “AzurePortal” 'AzureServices' “None” |
| ipRules | 定义入站网络(s)的 IP 限制规则列表,允许访问搜索服务终结点。 同时,防火墙会阻止所有其他公共 IP 网络。 仅当搜索服务的“publicNetworkAccess”为“enabled”时,才应用这些限制规则;否则,即使使用任何公共 IP 规则,也不允许通过公共接口的流量,专用终结点连接将是独占访问方法。 | IpRule[] |
搜索资源加密密钥
| 名称 | 说明 | 价值 |
|---|---|---|
| 访问凭据 | 用于访问 Azure 密钥保管库 的可选 Azure Active Directory 凭据。 如果改用托管标识,则不需要。 | AzureActiveDirectoryApplicationCredentials |
| 标识 | 用于此加密密钥的显式托管标识。 如果未指定并且访问凭据属性为 null,则使用系统分配的托管标识。 更新资源时,如果未指定显式标识,则保持不变。 如果指定了“none”,则清除此属性的值。 | 数据身份 |
| keyVaultKeyName | 用于加密静态数据的 Azure 密钥保管库 密钥的名称。 | 字符串 |
| keyVaultKeyVersion | 用于加密静态数据的 Azure 密钥保管库 密钥的版本。 | 字符串 |
| keyVaultUri | Azure 密钥保管库 的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 示例 URI 可能是 https://my-keyvault-name.vault.azure.net。 |
字符串 |
SearchServiceProperties
| 名称 | 说明 | 价值 |
|---|---|---|
| authOptions | 定义搜索服务的数据平面 API 如何对请求进行身份验证的选项。 如果“disableLocalAuth”设置为 true,则无法设置此项。 | DataPlaneAuthOptions |
| computeType | 配置此属性以支持使用默认计算或 Azure 机密计算的搜索服务。 | “机密” 'Default' |
| dataExfiltrationProtections | 显式禁止搜索服务的数据外泄方案列表。 目前,唯一支持的值是“全部”,用于禁用所有可能的数据导出方案,并计划将来进行更精细的控制。 | 包含任一项的字符串数组: 'BlockAll' |
| disableLocalAuth | 如果设置为 true,则不允许调用搜索服务以使用 API 密钥进行身份验证。 如果定义了“dataPlaneAuthOptions”,则无法将其设置为 true。 | 布尔 |
| encryptionWithCmk | 指定有关使用搜索服务中的客户经理密钥加密资源(如索引)的任何策略。 | EncryptionWithCmk 的 |
| 终结点 | Azure AI 搜索服务的终结点。 | 字符串 |
| hostingMode | 仅适用于 standard3 SKU。 可以将此属性设置为最多允许 3 个高密度分区,允许最多 1000 个索引,这远远高于任何其他 SKU 允许的最大索引。 对于 standard3 SKU,该值为“默认”或“高密度”。 对于所有其他 SKU,此值必须为“默认”。 | 'Default' “高密度” |
| 知识检索 | 指定Azure AI搜索服务代理检索的计费计划。 该配置仅适用于特定地区的特定价格等级。 | “free” 'standard' |
| networkRuleSet 网络规则集 | 确定如何访问 Azure AI 搜索服务的网络特定规则。 | NetworkRuleSet 网络规则集 |
| partitionCount | 专用搜索服务中的分区数量;如果需要指定,可以是1、2、3、4、6或12。 大于 1 的值仅适用于标准 SKU。 对于 hostingMode 设置为“highDensity”的“standard3”服务,允许的值介于 1 到 3 之间。 | int 约束: 最小值 = 1 最大值 = 12 |
| 公用网络访问 | 可以将此值设置为“已启用”,以避免对现有客户资源和模板进行中断性更改。 如果设置为“禁用”,则不允许通过公共接口的流量,专用终结点连接将是独占访问方法。 | 'Disabled' 'Enabled' “SecuredByPerimeter” |
| replicaCount | 专用搜索服务中的副本数量。 如果指定,它必须是标准 SKU 的 1 到 12(含 1 到 3)之间的值,对于基本 SKU,该值必须介于 1 和 3 之间。 | int 约束: 最小值 = 1 最大值 = 12 |
| 语义搜索 | 规定Azure AI搜索服务语义搜索的可用性和计费计划。 该配置仅适用于特定地区的特定价格等级。 | “disabled” “free” 'standard' |
| upgrade可用 | 指示搜索服务是否有可用的升级。 | “available” 'notAvailable' |
Sku
| 名称 | 说明 | 价值 |
|---|---|---|
| 名字 | 搜索服务的 SKU。 有效值包括:“free”:共享服务。 “basic”:最多包含 3 个副本的专用服务。 “standard”:最多包含 12 个分区和 12 个副本的专用服务。 “standard2”:类似于标准,但每个搜索单位的容量更多。 “standard3”:最大标准产品/服务最多包含 12 个分区和 12 个副本(如果同时将 hostingMode 属性设置为“highDensity”,则最多具有 3 个具有更多索引的分区)。 “storage_optimized_l1”:支持每个分区 1TB,最多支持 12 个分区。 “storage_optimized_l2”:支持每个分区2TB,最多12个分区。 “无服务器”:无服务器层,具备自动扩展功能。 | 'basic' “free” “无服务器” 'standard' “standard2” “standard3” “storage_optimized_l1” “storage_optimized_l2” |
TrackedResourceTags
| 名称 | 说明 | 价值 |
|---|
UserAssignedIdentity
| 名称 | 说明 | 价值 |
|---|
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 searchServices 资源类型:
- 资源组 关于每个API版本中变更属性的列表,请参见 更改日志。
用法示例
Terraform 示例
部署 Search Service 的基本示例。
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "searchService" {
type = "Microsoft.Search/searchServices@2022-09-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
authOptions = {
apiKeyOnly = {
}
}
disableLocalAuth = false
encryptionWithCmk = {
enforcement = "Disabled"
}
hostingMode = "default"
networkRuleSet = {
ipRules = [
]
}
partitionCount = 1
publicNetworkAccess = "Enabled"
replicaCount = 1
}
sku = {
name = "standard"
}
tags = {
environment = "staging"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
Azure 验证模块
以下 Azure 验证模块可用于部署该资源类型。
| 模块 | 说明 |
|---|---|
| 搜索服务 | 搜索服务的 AVM 资源模块 |
资源格式
若要创建 Microsoft.Search/searchServices 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Search/searchServices@2026-03-01-preview"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
authOptions = {
aadOrApiKey = {
aadAuthFailureMode = "string"
}
apiKeyOnly = ?
}
computeType = "string"
dataExfiltrationProtections = [
"string"
]
disableLocalAuth = bool
encryptionWithCmk = {
enforcement = "string"
serviceLevelEncryptionKey = {
accessCredentials = {
applicationId = "string"
applicationSecret = "string"
}
identity = {
@odata.type = "string"
// For remaining properties, see DataIdentity objects
}
keyVaultKeyName = "string"
keyVaultKeyVersion = "string"
keyVaultUri = "string"
}
}
endpoint = "string"
hostingMode = "string"
knowledgeRetrieval = "string"
networkRuleSet = {
bypass = "string"
ipRules = [
{
value = "string"
}
]
}
partitionCount = int
publicNetworkAccess = "string"
replicaCount = int
semanticSearch = "string"
upgradeAvailable = "string"
}
sku = {
name = "string"
}
}
}
DataIdentity 对象
设置 @odata.type 属性以指定对象的类型。
对于 #Microsoft.Azure.Search.DataNoneIdentity,请使用:
{
@odata.type = "#Microsoft.Azure.Search.DataNoneIdentity"
}
对于 #Microsoft.Azure.Search.DataUserAssignedIdentity,请使用:
{
@odata.type = "#Microsoft.Azure.Search.DataUserAssignedIdentity"
federatedIdentityClientId = "string"
userAssignedIdentity = "string"
}
属性值
Microsoft.Search/searchServices
| 名称 | 说明 | 价值 |
|---|---|---|
| 标识 | 资源的标识。 | 身份 |
| 位置 | 资源所在的地理位置 | string (必需) |
| 名字 | 资源名称 | string 约束: 模式 = ^(?=.{2,60}$)[a-z0-9][a-z0-9]+(-[a-z0-9]+)*$ (必需) |
| 性能 | 搜索服务的属性。 | SearchServiceProperties |
| sku | 搜索服务的 SKU,用于确定价格层和容量限制。 创建新搜索服务时,此属性是必需的。 | Sku |
| 标记 | 资源标记 | 标记名称和值的字典。 |
| 类型 | 资源类型 | “Microsoft.搜索/searchServices@2026-03-01-预览” |
AzureActiveDirectoryApplicationCredentials
| 名称 | 说明 | 价值 |
|---|---|---|
| 应用ID | 租户中应用注册的应用(客户端)ID。 | 字符串 |
| 应用程序密钥 | 这是为应用注册生成的AAD客户端秘密,用于与Azure 密钥保管库进行身份验证。 | string 约束: 敏感值。 以安全参数的形式传入。 |
数据身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 对于类型 DataNoneIdentity,设置为“#Microsoft.Azure.Search.DataNoneIdentity”。 对于类型 DataUserAssignedIdentity,设置为“#Microsoft.Azure.Search.DataUserAssignedIdentity”。 | “#Microsoft.Azure.Search.DataNoneIdentity” “#Microsoft.Azure.Search.DataUserAssignedIdentity”(必需) |
数据无身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 指定身份类型的 URI 片段。 | “#Microsoft.Azure.Search.DataNoneIdentity”(必需) |
DataPlaneAadOrApiKeyAuthOption
| 名称 | 说明 | 价值 |
|---|---|---|
| aadAuthFailureMode | 描述搜索服务的数据平面 API 针对身份验证失败的请求发送的响应。 | “http401WithBearerChallenge” “http403” |
DataPlaneAuthOptions
| 名称 | 说明 | 价值 |
|---|---|---|
| aadOrApiKey | 指示 API 密钥或来自 Microsoft Entra ID 租户的访问令牌可用于身份验证。 | DataPlaneAadOrApiKeyAuthOption |
| apiKeyOnly | 指示只能使用 API 密钥进行身份验证。 | 任意 |
数据用户分配身份
| 名称 | 说明 | 价值 |
|---|---|---|
| @odata.type | 指定身份类型的 URI 片段。 | “#Microsoft.Azure.Search.DataUserAssignedIdentity”(必需) |
| federatedIdentityClientId | 多租户 User-Assigned 管理身份CMK支持可选:多租户应用注册的客户端ID(作为UUID),该配置为与userAssignedIdentity联合。 | 字符串 |
| userAssignedIdentity | 用户分配的托管标识的完全限定的 Azure 资源 ID,通常采用“/subscriptions/12345678-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId”的形式,应分配给搜索服务。 | string (必需) |
EncryptionWithCmk 的
| 名称 | 说明 | 价值 |
|---|---|---|
| 执法 | 描述如果搜索服务查找未使用客户管理的密钥加密的对象,则搜索服务应如何强制实施符合性。 | 'Disabled' 'Enabled' “Unspecified” |
| serviceLevel加密密钥 | 描述由客户管理的搜索服务加密密钥配置。 | SearchResourceEncryptionKey |
身份
| 名称 | 说明 | 价值 |
|---|---|---|
| 类型 | 用于资源的标识类型。 类型“SystemAssigned, UserAssigned”包含系统创建的一个标识,以及用户分配的一组标识。 类型“None”将从服务中删除所有标识。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned”(必需) |
| userAssignedIdentities | 与资源关联的用户标识列表。 用户标识字典密钥引用的格式为 ARM 资源 ID:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 | IdentityUserAssignedIdentities |
IdentityUserAssignedIdentities
| 名称 | 说明 | 价值 |
|---|
IpRule (英语)
| 名称 | 说明 | 价值 |
|---|---|---|
| value | 与单个 IPv4 地址(例如,123.1.2.3)或 CIDR 格式(例如,允许 123.1.2.3/24)的 IP 范围对应的值。 | 字符串 |
NetworkRuleSet 网络规则集
| 名称 | 说明 | 价值 |
|---|---|---|
| 旁路 | 可以绕过“ipRules”部分中定义的规则的入站流量的可能来源。 | “AzurePortal” 'AzureServices' “None” |
| ipRules | 定义入站网络(s)的 IP 限制规则列表,允许访问搜索服务终结点。 同时,防火墙会阻止所有其他公共 IP 网络。 仅当搜索服务的“publicNetworkAccess”为“enabled”时,才应用这些限制规则;否则,即使使用任何公共 IP 规则,也不允许通过公共接口的流量,专用终结点连接将是独占访问方法。 | IpRule[] |
搜索资源加密密钥
| 名称 | 说明 | 价值 |
|---|---|---|
| 访问凭据 | 用于访问 Azure 密钥保管库 的可选 Azure Active Directory 凭据。 如果改用托管标识,则不需要。 | AzureActiveDirectoryApplicationCredentials |
| 标识 | 用于此加密密钥的显式托管标识。 如果未指定并且访问凭据属性为 null,则使用系统分配的托管标识。 更新资源时,如果未指定显式标识,则保持不变。 如果指定了“none”,则清除此属性的值。 | 数据身份 |
| keyVaultKeyName | 用于加密静态数据的 Azure 密钥保管库 密钥的名称。 | 字符串 |
| keyVaultKeyVersion | 用于加密静态数据的 Azure 密钥保管库 密钥的版本。 | 字符串 |
| keyVaultUri | Azure 密钥保管库 的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 示例 URI 可能是 https://my-keyvault-name.vault.azure.net。 |
字符串 |
SearchServiceProperties
| 名称 | 说明 | 价值 |
|---|---|---|
| authOptions | 定义搜索服务的数据平面 API 如何对请求进行身份验证的选项。 如果“disableLocalAuth”设置为 true,则无法设置此项。 | DataPlaneAuthOptions |
| computeType | 配置此属性以支持使用默认计算或 Azure 机密计算的搜索服务。 | “机密” 'Default' |
| dataExfiltrationProtections | 显式禁止搜索服务的数据外泄方案列表。 目前,唯一支持的值是“全部”,用于禁用所有可能的数据导出方案,并计划将来进行更精细的控制。 | 包含任一项的字符串数组: 'BlockAll' |
| disableLocalAuth | 如果设置为 true,则不允许调用搜索服务以使用 API 密钥进行身份验证。 如果定义了“dataPlaneAuthOptions”,则无法将其设置为 true。 | 布尔 |
| encryptionWithCmk | 指定有关使用搜索服务中的客户经理密钥加密资源(如索引)的任何策略。 | EncryptionWithCmk 的 |
| 终结点 | Azure AI 搜索服务的终结点。 | 字符串 |
| hostingMode | 仅适用于 standard3 SKU。 可以将此属性设置为最多允许 3 个高密度分区,允许最多 1000 个索引,这远远高于任何其他 SKU 允许的最大索引。 对于 standard3 SKU,该值为“默认”或“高密度”。 对于所有其他 SKU,此值必须为“默认”。 | 'Default' “高密度” |
| 知识检索 | 指定Azure AI搜索服务代理检索的计费计划。 该配置仅适用于特定地区的特定价格等级。 | “free” 'standard' |
| networkRuleSet 网络规则集 | 确定如何访问 Azure AI 搜索服务的网络特定规则。 | NetworkRuleSet 网络规则集 |
| partitionCount | 专用搜索服务中的分区数量;如果需要指定,可以是1、2、3、4、6或12。 大于 1 的值仅适用于标准 SKU。 对于 hostingMode 设置为“highDensity”的“standard3”服务,允许的值介于 1 到 3 之间。 | int 约束: 最小值 = 1 最大值 = 12 |
| 公用网络访问 | 可以将此值设置为“已启用”,以避免对现有客户资源和模板进行中断性更改。 如果设置为“禁用”,则不允许通过公共接口的流量,专用终结点连接将是独占访问方法。 | 'Disabled' 'Enabled' “SecuredByPerimeter” |
| replicaCount | 专用搜索服务中的副本数量。 如果指定,它必须是标准 SKU 的 1 到 12(含 1 到 3)之间的值,对于基本 SKU,该值必须介于 1 和 3 之间。 | int 约束: 最小值 = 1 最大值 = 12 |
| 语义搜索 | 规定Azure AI搜索服务语义搜索的可用性和计费计划。 该配置仅适用于特定地区的特定价格等级。 | “disabled” “free” 'standard' |
| upgrade可用 | 指示搜索服务是否有可用的升级。 | “available” 'notAvailable' |
Sku
| 名称 | 说明 | 价值 |
|---|---|---|
| 名字 | 搜索服务的 SKU。 有效值包括:“free”:共享服务。 “basic”:最多包含 3 个副本的专用服务。 “standard”:最多包含 12 个分区和 12 个副本的专用服务。 “standard2”:类似于标准,但每个搜索单位的容量更多。 “standard3”:最大标准产品/服务最多包含 12 个分区和 12 个副本(如果同时将 hostingMode 属性设置为“highDensity”,则最多具有 3 个具有更多索引的分区)。 “storage_optimized_l1”:支持每个分区 1TB,最多支持 12 个分区。 “storage_optimized_l2”:支持每个分区2TB,最多12个分区。 “无服务器”:无服务器层,具备自动扩展功能。 | 'basic' “free” “无服务器” 'standard' “standard2” “standard3” “storage_optimized_l1” “storage_optimized_l2” |
TrackedResourceTags
| 名称 | 说明 | 价值 |
|---|
UserAssignedIdentity
| 名称 | 说明 | 价值 |
|---|