Verwalten Ihres Azure KI-Suche-Diensts mithilfe von REST-APIs

Note

Azure KI-Suche ist über das Azure Portal, REST-APIs und Azure SDKs verfügbar. Es unterstützt auch Foundry IQ, die verwaltete Wissensschicht, die Unternehmensinhalte in wiederverwendbare, berechtigungsfähige Wissensbasen für Agenten im Microsoft Foundry-Portal transformiert.

Erfahren Sie, wie Sie einen Azure KI-Suche Dienst mithilfe der REST-APIs Management erstellen und konfigurieren. Nur die Verwaltungs-REST-APIs werden garantiert einen frühen Zugriff auf Vorschaufeatures bieten.

Die Verwaltungs-REST-API ist in stabilen und Vorschauversionen verfügbar. Stellen Sie sicher, dass Sie eine Vorschau-API-Version festlegen, wenn Sie auf Vorschaufeatures zugreifen.

Alle Verwaltungs-REST-APIs weisen Beispiele auf. Wenn eine Aufgabe in diesem Artikel nicht behandelt wird, lesen Sie stattdessen die API-Referenz .

Tipp

Wenn Sie CURL zum Aufrufen der Verwaltungs-REST-API verwenden, stellen Sie sicher, dass Sie einen Inhaltstypheader auf "application/json" festlegen: -H "Content-Type: application/json". Alternativ können Sie das --JSON Flag verwenden, wenn Sie den JSON-Code einbetten möchten.

Voraussetzungen

  • Ein Azure Konto mit einem aktiven Abonnement. Erstellen Sie kostenlos ein Konto.

  • Visual Studio Code mit einem REST-Client.

  • Azure CLI zum Abrufen eines Zugriffstokens, wie in den folgenden Schritten beschrieben. Sie müssen ein Besitzer oder Administrator in Ihrem Azure-Abonnement sein.

    REST-API-Aufrufe zur Verwaltung werden über Microsoft Entra ID authentifiziert. Sie müssen ein Zugriffstoken für die Anforderung und Berechtigungen zum Erstellen und Konfigurieren einer Ressource angeben. Zusätzlich zum Azure CLI können Sie Azure PowerShell verwenden, um ein Zugriffstoken zu erstellen.

    1. Öffnen Sie eine Befehlsshell für Azure CLI.

    2. Melden Sie sich bei Ihrem Azure-Abonnement an. Wenn Sie über mehrere Mandanten oder Abonnements verfügen, stellen Sie sicher, dass Sie den richtigen auswählen.

      az login
      
    3. Rufen Sie die Mandanten-ID und die Abonnement-ID ab.

      az account show
      
    4. Rufen Sie ein Zugriffstoken ab.

      az account get-access-token --query accessToken --output tsv
      

      Sie sollten über eine Mandanten-ID, Abonnement-ID und ein Bearer-Token verfügen. Sie fügen diese Werte in die .rest- oder .http-Datei ein, die Sie im nächsten Schritt erstellen.

Einrichten von Visual Studio Code

Wenn Sie mit dem REST-Client für Visual Studio Code nicht vertraut sind, enthält dieser Abschnitt setup, damit Sie die Aufgaben in diesem Artikel ausführen können.

  1. Starten Sie Visual Studio Code, und wählen Sie die Kachel Extensions aus.

  2. Suchen Sie nach dem REST-Client, und wählen Sie "Installieren" aus.

    Screenshot des Installationsbefehls.

  3. Öffnen oder erstellen Sie eine neue Datei, die entweder mit einer .rest Oder .http Dateierweiterung benannt ist.

  4. Stellen Sie Variablen für die Werte bereit, die Sie im vorherigen Schritt abgerufen haben.

    @tenant-id = PUT-YOUR-TENANT-ID-HERE
    @subscription-id = PUT-YOUR-SUBSCRIPTION-ID-HERE
    @token = PUT-YOUR-TOKEN-HERE
    
  5. Überprüfen Sie, ob die Sitzung betriebsbereit ist, indem Sie Suchdienste in Ihrem Abonnement auflisten.

     ### List search services
     GET https://management.azure.com/subscriptions/{{subscription-id}}/providers/Microsoft.Search/searchServices?api-version=2025-05-01  HTTP/1.1
          Content-type: application/json
          Authorization: Bearer {{token}}
    
  6. Wählen Sie "Anfrage senden" aus. Eine Antwort sollte in einem angrenzenden Bereich angezeigt werden. Wenn Sie über vorhandene Suchdienste verfügen, werden sie aufgeführt. Andernfalls ist die Liste leer, aber solange der HTTP-Code 200 OK ist, können Sie die nächsten Schritte ausführen.

    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: WESTUS2: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": [ . . . ]
    }
    

Erstellen oder Aktualisieren eines Diensts

Erstellt oder aktualisiert einen Suchdienst unter dem aktuellen Abonnement. In diesem Beispiel werden Variablen für den Namen und die Region des Suchdiensts verwendet, die noch nicht definiert wurden. Geben Sie entweder die Namen direkt an, oder fügen Sie der Auflistung neue Variablen hinzu.

### 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.azure.com/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": "North Central US",
        "sku": {
            "name": "basic"
        },
        "properties": {
            "replicaCount": 1,
            "partitionCount": 1,
            "hostingMode": "default"
        }
      }

Upgrade eines Diensts

Einige Azure KI-Suche Funktionen sind nur für neue Dienste verfügbar. Um Diensterholungen zu vermeiden und diese Funktionen in einen vorhandenen Dienst zu bringen, können Sie Ihren Dienst möglicherweise aktualisieren.

### Upgrade a search service
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

POST https://management.azure.com/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}}

Ändern von Preisstufen

Wenn Sie mehr oder weniger Kapazität benötigen, können Sie zu einem anderen Preisniveau wechseln. Derzeit können Sie nur zwischen den Ebenen "Basic" und "Standard" (S1, S2 und S3) wechseln. Verwenden Sie die sku Eigenschaft, um die neue Ebene anzugeben.

### Change pricing tiers
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

PATCH https://management.azure.com/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"
        }
    }

Erstellen eines S3HD-Diensts

Verwenden Sie zum Erstellen eines S3HD-Diensts eine Kombination aus sku und hostingMode Eigenschaften. Setzen Sie sku auf standard3 und "hostingMode" auf HighDensity.

### Create an S3HD service
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

PUT https://management.azure.com/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"
        }
    }

Konfigurieren des rollenbasierten Zugriffs für Datenebene

Gilt für: Suchindexdatenmitwirkender, Suchindexdatenleser, Suchdienstmitwirkender

Konfigurieren Sie Ihren Suchdienst so, dass er einen Autorisierungsheader bei Datenanforderungen erkennt, die ein OAuth2-Zugriffstoken bereitstellen.

Wenn Sie die rollenbasierte Zugriffssteuerung für Datenebenenvorgänge verwenden möchten, konfigurieren Sie authOptions auf aadOrApiKey und senden Sie dann die Anforderung.

Um die rollenbasierte Zugriffssteuerung ausschließlich zu verwenden, deaktivieren Sie die API-Schlüsselauthentifizierung, indem Sie mit einer zweiten Anforderung fortfahren und diesmal disableLocalAuth auf "true" setzen.

### Configure role-based access
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

PATCH https://management.azure.com/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"
                }
            }
        }
    }

Konfigurieren vertraulicher Computer

Vertrauliches Computing ist ein optionaler Rechentyp für den Schutz von Daten, die verwendet werden. Bei der Konfiguration wird Ihr Suchdienst anstelle von standard-VMs (DCasv5 oder DCesv5) auf vertraulichen VMs bereitgestellt. Dieser Berechnungstyp verursacht auch einen Aufpreis von 10 % für abrechenbare Tarife. Weitere Informationen finden Sie auf der Preisseite.

Für die tägliche Nutzung ist vertrauliches Computing nicht erforderlich. Wir empfehlen diesen Berechnungstyp nur für strenge behördliche, Compliance- oder Sicherheitsanforderungen. Weitere Informationen finden Sie unter "Vertrauliche Computeranwendungsfälle".

Der Berechnungstyp ist für die gesamte Laufzeit Ihres Suchdienstes festgelegt. Um Confidential Computing dauerhaft zu konfigurieren, legen Sie die computeType-Eigenschaft confidential auf einen neuen Dienst fest.

### Configure confidential computing
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE
PUT https://management.azure.com/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"
        }
    }

Erzwingen einer vom Kunden verwalteten Schlüsselrichtlinie

Wenn Sie die vom Kunden verwaltete Verschlüsselung verwenden, können Sie "encryptionWithCMK" aktivieren, wobei "Erzwingung" auf "Aktiviert" festgelegt ist, wenn der Suchdienst den Compliancestatus melden soll.

Wenn Sie diese Richtlinie aktivieren, treten alle REST-Aufrufe, die Objekte erstellen, die vertrauliche Daten enthalten, z. B. die Verbindungszeichenfolge in einer Datenquelle, fehl, wenn kein Verschlüsselungsschlüssel bereitgestellt wird: "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.azure.com/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"
            }
        }
    }

Deaktivieren von Workloads, die Daten an externe Ressourcen übertragen

Azure KI-Suche schreibt in externe Datenquellen beim Aktualisieren eines Wissensspeichers, beim Speichern des Debugsitzungszustands oder beim Zwischenspeichern von Anreicherungen. Im folgenden Beispiel werden diese Workloads auf Dienstebene deaktiviert.

### Disable external access
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

PATCH https://management.azure.com/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"
        }
    }

Löschen eines Suchdiensts

### Delete a search service
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

DELETE https://management.azure.com/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}}

Auflisten von Administrator-API-Schlüsseln

### List admin keys
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

POST https://management.azure.com/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}}

Generieren von Administrator-API-Schlüsseln

Sie können jeweils nur einen Administrator-API-Schlüssel neu generieren.

### Regnerate admin keys
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

POST https://management.azure.com/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}}

Erstellen von Abfrage-API-Schlüsseln

### 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.azure.com/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}}

Auflisten privater Endpunktverbindungen

### List private endpoint connections
@resource-group = PUT-YOUR-RESOURCE-GROUP-NAME-HERE
@search-service = PUT-YOUR-SEARCH-SERVICE-NAME-HERE

GET https://management.azure.com/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}}

Suchvorgänge auflisten

### List search operations
GET https://management.azure.com/subscriptions/{{subscription-id}}/resourcegroups?api-version=2021-04-01  HTTP/1.1
  Content-type: application/json
  Authorization: Bearer {{token}}

Nächste Schritte

Nachdem ein Suchdienst konfiguriert wurde, umfassen die nächsten Schritte das Erstellen eines Index oder das Abfragen eines Index über das Azure-Portal, REST-APIs oder ein Azure-SDK.