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. De privéverbinding vindt plaats via een gedeelde private link en Azure Private Link.
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 dnsZonePrefix
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 Azure Portal momenteel geen ondersteuning voor de uitgebreide URL-indeling die wordt gebruikt door SQL Managed Instance.
Vereisten
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
Gedeelde privékoppelingen zijn factureerbaar via prijzen en kosten van Azure Private Link worden gefactureerd op basis van gebruik.
1 - Verbindingsgegevens ophalen
In deze sectie haalt u de DNS-zone op uit de hostnaam en een verbindingsreeks.
Zoek in Azure Portal het object van het beheerde SQL-exemplaar.
Zoek op het tabblad Overzicht de eigenschap Host. Kopieer het DNS-zonegedeelte van de FQDN voor de volgende stap. 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.a1b22c333d44.database.windows.net
, isa1b22c333d44
de DNS-zone.Kopieer op het tabblad Verbindingsreeksen 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
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}}", "dnsZonePrefix": "a1b22c333d44", "groupId": "managedInstance", "requestMessage": "please approve" } }
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.
Plak de naam van de DNS-zone in 'dnsZonePrefix' die u in een eerdere stap hebt opgehaald.
Bewerk de 'privateLinkResourceId', vervang deze door waarden voor de tijdelijke aanduidingen. Geef een geldige abonnements-id, resourcegroepnaam en naam van het beheerde exemplaar op.
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).
Typ
dir
in de Azure CLI de huidige locatie van het bestand.
3 - Een gedeelde privékoppeling maken
Meld u vanaf de opdrachtregel aan bij Azure met behulp van
az login
.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}}
Roep de
az rest
opdracht aan om de BEHEER REST API van Azure AI Search te gebruiken.Omdat ondersteuning voor gedeelde private link voor sql managed instances nog steeds in preview is, hebt u een preview-versie van de REST API voor beheer nodig. Gebruik
2021-04-01-preview
of een latere preview-API-versie voor deze stap. U wordt aangeraden de nieuwste preview-API-versie te gebruiken.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=2024-06-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.Voer de opdracht uit.
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.
U kunt de status van de gedeelde privékoppeling controleren in Azure Portal. Schuif op de pagina van de zoekservice onder Instellingeneigenschappen> omlaag om de gedeelde private link-resources te vinden en de JSON-waarde weer te geven. Wanneer de inrichtingsstatus verandert van in behandeling tot geslaagd, kunt u doorgaan met de volgende stap.
4 - De privé-eindpuntverbinding goedkeuren
Aan de zijde van SQL Managed Instance moet de resource-eigenaar de privéverbindingsaanvraag goedkeuren die u hebt gemaakt.
Open in Azure Portal de privé-eindpuntverbindingen voor beveiliging>van het beheerde exemplaar.
Zoek de sectie met de privé-eindpuntverbindingen.
Selecteer de verbinding en selecteer vervolgens Goedkeuren. Het kan enkele minuten duren voordat de status is bijgewerkt in Azure Portal.
Nadat het privé-eindpunt is goedgekeurd, maakt Azure AI Search de benodigde DNS-zonetoewijzingen in de DNS-zone die hiervoor is gemaakt.
5 - Status van gedeelde privékoppeling controleren
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. De verbindingsstatus moet worden goedgekeurd.
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.
In dit artikel wordt ervan uitgegaan dat er een REST-client wordt gebruikt en dat de REST API's worden gebruikt.
Maak de definitie van de gegevensbron zoals u normaal zou doen voor Azure SQL. Een beheerd exemplaar luistert standaard op poort 3342, maar op een virtueel netwerk luistert het op 1433.
Geef de verbindingsreeks op die u eerder hebt gekopieerd met een initiële catalogus die is ingesteld op de databasenaam.
POST https://myservice.search.windows.net/datasources?api-version=2024-07-01 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.a1b22c333d44.database.windows.net,1433;Persist Security Info=false; User ID=<your user name>; Password=<your password>;MultipleActiveResultsSets=False; Encrypt=True;Connection Timeout=30;Initial Catalog=<your database name>" }, "container" : { "name" : "Name of table or view to index", "query" : null (not supported in the Azure SQL indexer) }, "dataChangeDetectionPolicy": null, "dataDeletionDetectionPolicy": null, "encryptionKey": null }
Maak de definitie van de indexeerfunctie en stel de indexeerfunctie
executionEnvironment
in op 'privé'.De uitvoering van de indexeerfunctie vindt plaats in een privé-uitvoeringsomgeving die specifiek is voor uw zoekservice, of in een omgeving met meerdere tenants die wordt gehost door Microsoft en die 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=2024-07-01 Content-Type: application/json api-key: admin-key { "name": "indexer", "dataSourceName": "my-sql-datasource", "targetIndexName": "my-search-index", "parameters": { "configuration": { "executionEnvironment": "private" } }, "fieldMappings": [] }
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.
7 - De gedeelde privékoppeling testen
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 Azure AI Search zich via het openbare internet bevindt.
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.