Een gedeelde privékoppeling maken voor een met SQL beheerd exemplaar vanuit Azure AI Search

In dit artikel wordt uitgelegd hoe u een indexeerfunctie in Azure AI Search configureert voor een privéverbinding met een met SQL beheerd exemplaar dat in een virtueel netwerk wordt uitgevoerd.

Bij een privéverbinding met een beheerd exemplaar moet de FQDN (Fully Qualified Domain Name) van het exemplaar de DNS-zone bevatten. Momenteel biedt alleen de AZURE AI Search Management REST API een resourceRegion parameter voor het accepteren van de DNS-zonespecificatie.

Hoewel u de Beheer REST API rechtstreeks kunt aanroepen, is het eenvoudiger om de Azure CLI-module az rest te gebruiken om REST API-aanroepen van Beheer vanaf een opdrachtregel te verzenden. In dit artikel wordt de Azure CLI met REST gebruikt om de privékoppeling in te stellen.

Notitie

Dit artikel verwijst naar Azure Portal voor het verkrijgen van eigenschappen en het bevestigen van stappen. Wanneer u echter de gedeelde privékoppeling voor SQL Managed Instance maakt, moet u ervoor zorgen dat u de REST API gebruikt. Hoewel het tabblad Netwerken als optie wordt vermeld Microsoft.Sql/managedInstances , biedt de portal momenteel geen ondersteuning voor de uitgebreide URL-indeling die wordt gebruikt door SQL Managed Instance.

Vereisten

  • Azure-CLI

  • Azure AI Search, Basic of hoger. Als u AI-verrijking en vaardighedensets gebruikt, gebruikt u Standard 2 (S2) of hoger. Zie Servicelimieten voor meer informatie.

  • Azure SQL Managed Instance, geconfigureerd voor uitvoering in een virtueel netwerk.

  • U moet minimaal inzendermachtigingen hebben voor zowel Azure AI Search als SQL Managed Instance.

  • Azure SQL Managed Instance verbindingsreeks. Beheerde identiteit wordt momenteel niet ondersteund met een gedeelde privékoppeling. Uw verbindingsreeks moet een gebruikersnaam en wachtwoord bevatten.

Notitie

Azure Private Link wordt intern gebruikt om de gedeelde privékoppeling in te stellen.

1 - Verbindingsgegevens ophalen

Haal de FQDN-naam van het beheerde exemplaar op, inclusief de DNS-zone. De DNS-zone maakt deel uit van de domeinnaam van het met SQL beheerde exemplaar. Als de FQDN van het beheerde SQL-exemplaar bijvoorbeeld is my-sql-managed-instance.00000000000.database.windows.net, is 00000000000de DNS-zone.

  1. Zoek in Azure Portal het object van het beheerde SQL-exemplaar.

  2. Zoek op het tabblad Overzicht de eigenschap Host. Kopieer het DNS-zonegedeelte van de FQDN voor de volgende stap.

  3. Kopieer op het tabblad Verbinding maken iontekenreeksen de ADO.NET verbindingsreeks voor een latere stap. Deze is nodig voor de gegevensbronverbinding bij het testen van de privéverbinding.

Zie Een met Azure SQL beheerd exemplaar maken voor meer informatie over verbindingseigenschappen.

2 - De hoofdtekst van de aanvraag maken

  1. Maak met behulp van een teksteditor de JSON voor de gedeelde privékoppeling.

    {
        "name": "{{shared-private-link-name}}",
        "properties": {
            "privateLinkResourceId": "/subscriptions/{{target-resource-subscription-ID}}/resourceGroups/{{target-resource-rg}}/providers/Microsoft.Sql/managedInstances/{{target-resource-name}}",
            "resourceRegion": "a1b22c333d44",
            "groupId": "managedInstance",
            "requestMessage": "please approve",
        }
    }
    
  2. Geef een betekenisvolle naam op voor de gedeelde privékoppeling. De gedeelde privékoppeling wordt weergegeven naast andere privé-eindpunten. Een naam zoals 'shared-private-link-for-search' kan u eraan herinneren hoe deze wordt gebruikt.

  3. Plak de naam van de DNS-zone in resourceRegion die u in een eerdere stap hebt opgehaald.

  4. Bewerk de 'privateLinkResourceId' om het privé-eindpunt van uw beheerde exemplaar weer te geven. Geef de abonnements-id, de naam van de resourcegroep en de objectnaam van het beheerde exemplaar op.

  5. Sla het bestand lokaal op als create-pe.json (of gebruik een andere naam, waarbij u de Azure CLI-syntaxis in de volgende stap moet bijwerken).

  6. Typ dir in de Azure CLI de huidige locatie van het bestand.

  1. Meld u vanaf de opdrachtregel aan bij Azure met behulp van az login.

  2. Als u meerdere abonnementen hebt, moet u ervoor zorgen dat u het abonnement gebruikt dat u wilt gebruiken: az account show.

    Als u het abonnement wilt instellen, gebruikt u az account set --subscription {{subscription ID}}

  3. Roep de az rest opdracht aan om de BEHEER REST API van Azure AI Search te gebruiken.

    Omdat ondersteuning voor gedeelde privékoppelingen voor beheerde SQL-exemplaren nog steeds in preview is, hebt u een preview-versie van de REST API nodig. Gebruiken 2021-04-01-preview voor deze stap'.

    az rest --method put --uri https://management.azure.com/subscriptions/{{search-service-subscription-ID}}/resourceGroups/{{search service-resource-group}}/providers/Microsoft.Search/searchServices/{{search-service-name}}/sharedPrivateLinkResources/{{shared-private-link-name}}?api-version=2021-04-01-preview --body @create-pe.json
    

    Geef de abonnements-id, de naam van de resourcegroep en de servicenaam van uw Azure AI Search-resource op.

    Geef dezelfde gedeelde privékoppelingsnaam op die u hebt opgegeven in de JSON-hoofdtekst.

    Geef een pad op naar het create-pe.json-bestand als u weg bent genavigeerd van de bestandslocatie. U kunt op de opdrachtregel typen dir om te bevestigen dat het bestand zich in de huidige map bevindt.

  4. Druk op ENTER de opdracht uit te voeren.

Wanneer u deze stappen hebt voltooid, moet u een gedeelde privékoppeling hebben die in behandeling is ingericht. Het duurt enkele minuten om de koppeling te maken. Zodra deze is gemaakt, moet de resource-eigenaar de aanvraag goedkeuren voordat deze operationeel is.

4 - De privé-eindpuntverbinding goedkeuren

Aan de zijde van SQL Managed Instance moet de resource-eigenaar de privéverbindingsaanvraag goedkeuren die u hebt gemaakt.

  1. Open in Azure Portal het tabblad Privé-eindpuntverbindingen van het beheerde exemplaar.

  2. Zoek de sectie met de privé-eindpuntverbindingen.

  3. Selecteer de verbinding en selecteer vervolgens Goedkeuren. Het kan enkele minuten duren voordat de status in de portal is bijgewerkt.

Nadat het privé-eindpunt is goedgekeurd, maakt Azure AI Search de benodigde DNS-zonetoewijzingen in de DNS-zone die hiervoor is gemaakt.

Aan de zijde van Azure AI Search kunt u goedkeuring bevestigen door het tabblad Gedeelde privétoegang van de pagina Netwerken van de zoekservice te bekijken. Verbinding maken iestatus moet worden goedgekeurd.

Screenshot of the Azure portal, showing an

6 - Configureer de indexeerfunctie die moet worden uitgevoerd in de privéomgeving

U kunt nu een indexeerfunctie en de bijbehorende gegevensbron configureren om een uitgaande privéverbinding met uw beheerde exemplaar te gebruiken.

U kunt de wizard Gegevens importeren gebruiken voor deze stap, maar de indexeerfunctie die wordt gegenereerd, is niet geldig voor dit scenario. U moet de JSON-eigenschap van de indexeerfunctie wijzigen, zoals beschreven in deze stap om deze compatibel te maken voor dit scenario. Vervolgens moet u de indexeerfunctie opnieuw instellen en opnieuw uitvoeren om de pijplijn volledig te testen met behulp van de bijgewerkte indexeerfunctie.

In dit artikel wordt ervan uitgegaan dat een REST-client wordt gebruikt en dat de REST API's worden gebruikt om alle eigenschappen gemakkelijker weer te geven. U herinnert zich nog dat REST API-aanroepen voor indexeerfuncties en gegevensbronnen gebruikmaken van de REST API's voor zoeken, niet de REST API's voor beheer die worden gebruikt om de gedeelde privékoppeling te maken. De syntaxis en API-versies verschillen tussen de twee REST API's.

  1. Maak de definitie van de gegevensbron zoals u normaal zou doen voor Azure SQL. De indeling van de verbindingsreeks verschilt enigszins voor een beheerd exemplaar, maar andere eigenschappen zijn hetzelfde als wanneer u een gegevensbronverbinding met azure SQL-database configureert.

    Geef de verbindingsreeks op die u eerder hebt gekopieerd.

    POST https://myservice.search.windows.net/datasources?api-version=2020-06-30
     Content-Type: application/json
     api-key: admin-key
     {
         "name" : "my-sql-datasource",
         "description" : "A database for testing Azure AI Search indexes.",
         "type" : "azuresql",
         "credentials" : { 
             "connectionString" : "Server=tcp:contoso.public.0000000000.database.windows.net,1433; Persist Security Info=false; User ID=<your user name>; Password=<your password>;MultipleActiveResultsSets=False; Encrypt=True;Connection Timeout=30;" 
            },
         "container" : { 
             "name" : "Name of table or view to index",
             "query" : null (not supported in the Azure SQL indexer)
             },
         "dataChangeDetectionPolicy": null,
         "dataDeletionDetectionPolicy": null,
         "encryptionKey": null,
         "identity": null
     }
    
  2. Maak de definitie van de indexeerfunctie en stel de uitvoeringsomgeving van de indexeerfunctie in op 'privé'.

    De uitvoering van de indexeerfunctie vindt plaats in een privéomgeving die specifiek is voor de zoekservice of in een omgeving met meerdere tenants die intern wordt gebruikt voor het offloaden van dure vaardighedensetverwerking voor meerdere klanten. Wanneer u verbinding maakt via een privé-eindpunt, moet de uitvoering van de indexeerfunctie privé zijn.

     POST https://myservice.search.windows.net/indexers?api-version=2020-06-30
      Content-Type: application/json
      api-key: admin-key
        {
         "name": "indexer",
         "dataSourceName": "my-sql-datasource",
         "targetIndexName": "my-search-index",
         "parameters": {
             "configuration": {
                 "executionEnvironment": "private"
             }
         },
         "fieldMappings": []
         }
    
  3. Voer de indexeerfunctie uit. Als de uitvoering van de indexeerfunctie is geslaagd en de zoekindex is ingevuld, werkt de gedeelde privékoppeling.

U kunt de status van de indexeerfunctie in Azure Portal controleren of met behulp van de Indexeerfunctiestatus-API.

U kunt Search Explorer in Azure Portal gebruiken om de inhoud van de index te controleren.

Als u de indexeerfunctie in de vorige stap hebt uitgevoerd en inhoud hebt geïndexeerd vanuit uw beheerde exemplaar, is de test geslaagd. Als de indexeerfunctie echter mislukt of er geen inhoud in de index staat, kunt u uw objecten wijzigen en het testen herhalen door een client te kiezen die een uitgaande aanvraag van een indexeerfunctie kan aanroepen.

Een eenvoudige keuze is het uitvoeren van een indexeerfunctie in Azure Portal, maar u kunt ook een REST-client en REST API's proberen voor meer precisie. Ervan uitgaande dat uw zoekservice niet ook is geconfigureerd voor een privéverbinding, kan de REST-clientverbinding met Search via het openbare internet zijn.

Hier volgen enkele herinneringen voor het testen:

  • Als u een REST-client gebruikt, gebruikt u de REST API van Management en de API-versie 2021-04-01-Preview om de gedeelde privékoppeling te maken. Gebruik de REST API voor zoeken en een stabiele API-versie om indexeerfuncties en gegevensbronnen te maken en aan te roepen.

  • U kunt de wizard Gegevens importeren gebruiken om een indexeerfunctie, gegevensbron en index te maken. De gegenereerde indexeerfunctie heeft echter niet de juiste instelling voor de uitvoeringsomgeving.

  • U kunt de JSON van de gegevensbron en indexeerfunctie bewerken in Azure Portal om eigenschappen te wijzigen, waaronder de uitvoeringsomgeving en de verbindingsreeks.

  • U kunt de indexeerfunctie opnieuw instellen en opnieuw uitvoeren in Azure Portal. Opnieuw instellen is belangrijk voor dit scenario, omdat dit een volledige herverwerking van alle documenten afding dwingt.

  • U kunt Search Explorer gebruiken om de inhoud van de index te controleren.

Zie ook