了解如何使用 管理 REST API 创建和配置 Azure AI 搜索服务。 只能保证管理 REST API 会提供对预览功能的抢先访问权限。
管理 REST API 目前以稳定的预览版形式提供。 如果你要访问预览版功能,请务必设置 API 预览版。
所有管理 REST API 都有示例。 如果本文未涵盖某项任务,请参阅 API 参考。
先决条件
- 拥有有效订阅的 Azure 帐户。 创建试用版订阅。 
- Azure CLI 用于获取访问令牌,如以下步骤中所述。 你必须是你的 Azure 订阅中的所有者或管理员。 - 将会通过 Microsoft Entra ID 对管理 REST API 调用进行身份验证。 必须在请求和权限上提供访问令牌才能创建和配置资源。 除了 Azure CLI,还可以使用 Azure PowerShell 创建访问令牌。 - 打开 Azure CLI 的命令行界面。 
- 登录到 Azure 订阅。 如果有多个租户或订阅,请确保选择正确的项。 - az cloud set -n AzureChinaCloud az login # az cloud set -n AzureCloud //means return to Public Azure.
- 获取租户 ID 和订阅 ID。 - az account show
- 获取访问令牌。 - az account get-access-token --query accessToken --output tsv- 你应拥有租户 ID、订阅 ID 和持有者令牌。 将这些值粘贴到下一步中创建的 - .rest或- .http文件中。
 
设置 Visual Studio Code
如果不熟悉 Visual Studio Code 的 REST 客户端,本部分包括设置,以便可以完成本文中的任务。
- 启动 Visual Studio Code 并选择“扩展”磁贴。 
- 搜索 REST 客户端并选择“安装”。   
- 打开或创建文件扩展名为 - .rest或- .http的文件。
- 为你在上一步中检索的值提供变量。 - @tenant-id = PUT-YOUR-TENANT-ID-HERE @subscription-id = PUT-YOUR-SUBSCRIPTION-ID-HERE @token = PUT-YOUR-TOKEN-HERE
- 通过列出订阅中的搜索服务来验证会话是否正常运行。 - ### List search services GET https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/providers/Microsoft.Search/searchServices?api-version=2025-05-01 HTTP/1.1 Content-type: application/json Authorization: Bearer {{token}}
- 选择“发送请求”。 相邻窗格中应该会显示响应。 如果你有现有的搜索服务,则它们会被列出。 否则,该列表为空,但只要 HTTP 代码为“200 正常”,就可完成后续步骤。 - HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Length: 22068 Content-Type: application/json; charset=utf-8 Expires: -1 x-ms-ratelimit-remaining-subscription-reads: 11999 x-ms-request-id: f47d3562-a409-49d2-b9cd-6a108e07304c x-ms-correlation-request-id: f47d3562-a409-49d2-b9cd-6a108e07304c x-ms-routing-request-id: chinanorth2:20240314T012052Z:f47d3562-a409-49d2-b9cd-6a108e07304c Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options: nosniff X-Cache: CONFIG_NOCACHE X-MSEdge-Ref: Ref A: 12401F1160FE4A3A8BB54D99D1FDEE4E Ref B: CO6AA3150217011 Ref C: 2024-03-14T01:20:52Z Date: Thu, 14 Mar 2024 01:20:52 GMT Connection: close { "value": [ . . . ] }
创建或更新服务
在当前订阅下创建或更新搜索服务。 此示例为搜索服务名称和区域使用变量,这些变量尚未定义。 直接提供名称或向集合添加新变量。
### Create a search service (provide an existing resource group)
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PUT https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourceGroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
    {
        "location": "China North",
        "sku": {
            "name": "basic"
        },
        "properties": {
            "replicaCount": 1,
            "partitionCount": 1,
            "hostingMode": "default"
        }
      }
升级服务
某些 Azure AI 搜索功能仅适用于新服务。
### Upgrade a search service
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
POST https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourceGroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}/upgrade?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
更改定价层
如果需要更多或更少的容量,可以 切换到其他定价层。 目前,您只能在基本和标准(S1、S2 和 S3)层之间切换。 使用属性 sku 指定新层。
### Change pricing tiers
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PATCH https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourceGroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
    {
        "sku": {
            "name": "standard2"
        }
    }
创建 S3HD 服务
若要创建 S3HD 服务,请使用组合 sku 和 hostingMode 属性。 将 sku 设置为 standard3,将“hostingMode”设置为 HighDensity。
### Create an S3HD service
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PUT https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourceGroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
    {
        "location": "{{region}}",
        "sku": {
          "name": "standard3"
        },
        "properties": {
          "replicaCount": 1,
          "partitionCount": 1,
          "hostingMode": "HighDensity"
        }
    }
为数据平面配置基于角色的访问
适用于:搜索索引数据参与者、搜索索引数据读取者、搜索服务参与者
配置您的搜索服务,以识别数据请求中的授权头,并提供 OAuth2 访问令牌。
若要对数据平面操作使用基于角色的访问控制,请将 authOptions 设置为 aadOrApiKey 并发送请求。
若要以独占方式使用基于角色的访问控制,请跟进提出第二个请求,关闭 API 密钥身份验证,这次将 disableLocalAuth 设置为 true。
### Configure role-based access
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PATCH https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
    {
        "properties": {
            "disableLocalAuth": false,
            "authOptions": {
                "aadOrApiKey": {
                    "aadAuthFailureMode": "http401WithBearerChallenge"
                }
            }
        }
    }
配置机密计算
机密计算 是用于数据使用保护的可选计算类型。 配置后,搜索服务将部署在机密 VM(DCasv5 或 DCesv5)而不是标准 VM 上。 此计算类型还会对计费层级收取 10% 的附加费。 有关详细信息,请参阅定价页。
对于日常使用,不需要机密计算。 我们仅建议此计算类型符合严格的法规、合规性或安全要求。 有关详细信息,请参阅 机密计算用例。
计算类型在搜索服务的生存期内是固定的。 若要永久配置机密计算,请在新服务中将 computeType 属性设置为 confidential。
### Configure confidential computing
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PUT https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
    Content-type: application/json
    Authorization: Bearer {{token}}
    {
        "location": "{{region}}",
        "sku": {
            "name": "basic"
        },
        "properties": {
            "computeType": "confidential"
        }
    }
强制实施客户管理的密钥策略
如果使用的是客户管理的加密,且希望搜索服务报告其合规性状态,则可以启用“encryptionWithCMK”并将“强制”设置为“启用”。
启用此策略后,如果未提供加密密钥,则创建包含敏感数据(例如数据源中的连接字符串)的对象的任何 REST 调用将失败:"Error creating Data Source: "CannotCreateNonEncryptedResource: The creation of non-encrypted DataSources is not allowed when encryption policy is enforced."
### Enforce a customer-managed key policy
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PATCH https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
     {
        "properties": {
            "encryptionWithCmk": {
                "enforcement": "Enabled"
            }
        }
    }
禁用语义排序器
默认情况下,语义排名器在免费计划中启用,每月最多允许 1,000 个请求免费。 可以在服务级别锁定该功能,以防止使用。
### Disable semantic ranker
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PATCH https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
     {
        "properties": {
            "semanticSearch": "Disabled"
        }
    }
禁用将数据推送到外部资源的工作负载
Azure AI 搜索在更新知识存储、保存调试会话状态或缓存扩充内容时写入外部数据源。 以下示例在服务级别禁用这些工作负载。
### Disable external access
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PATCH https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
     {
        "properties": {
            "publicNetworkAccess": "Disabled"
        }
    }
删除搜索服务
### Delete a search service
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
DELETE https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
列出管理员 API 密钥
### List admin keys
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
POST https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}/listAdminKeys?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
重新生成管理 API 密钥
一次只能重新生成一个管理员 API 密钥。
### Regnerate admin keys
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
POST https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}/regenerateAdminKey/primary?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
创建查询 API 密钥
### Create a query key
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
@query-key = PUT-YOUR-QUERY-KEY-NAME-HERE
POST https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}/createQueryKey/{query-key}?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
列出专用终结点连接
### List private endpoint connections
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
GET https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service}}/privateEndpointConnections?api-version=2025-05-01  HTTP/1.1
     Content-type: application/json
     Authorization: Bearer {{token}}
列出搜索操作
### List search operations
GET https://management.chinacloudapi.cn/subscriptions/{{subscription-id}}/resourcegroups?api-version=2021-04-01  HTTP/1.1
  Content-type: application/json
  Authorization: Bearer {{token}}
后续步骤
配置搜索服务后,后续步骤包括使用 Azure 门户、REST API 或 Azure SDK 创建索引 或 查询索引 。