Dela via


Skapa en delad privat länk för en SQL-hanterad instans från Azure AI Search

Den här artikeln beskriver hur du konfigurerar en indexerare i Azure AI Search för en privat anslutning till en SQL-hanterad instans som körs i ett virtuellt nätverk. Den privata anslutningen sker via en delad privat länk och Azure Private Link.

Vid en privat anslutning till en hanterad instans måste instansens fullständigt kvalificerade domännamn (FQDN) innehålla DNS-zonen. För närvarande innehåller endast REST-API:et för Azure AI Search Management en dnsZonePrefix parameter för att acceptera DNS-zonspecifikationen.

Även om du kan anropa REST-API:et för hantering direkt är det enklare att använda Azure CLI-modulen az rest för att skicka REST API-anrop för hantering från en kommandorad. Den här artikeln använder Azure CLI med REST för att konfigurera den privata länken.

Kommentar

Den här artikeln refererar till Azure Portal för att hämta egenskaper och bekräfta steg. När du skapar den delade privata länken för SQL Managed Instance kontrollerar du dock att du använder REST-API:et. Även om fliken Nätverk visas Microsoft.Sql/managedInstances som ett alternativ stöder Azure Portal för närvarande inte det utökade URL-format som används av SQL Managed Instance.

Förutsättningar

  • Azure CLI

  • Azure AI Search, Basic eller senare. Om du använder AI-berikande och kompetensuppsättningar använder du Standard 2 (S2) eller senare. Mer information finns i Tjänstbegränsningar .

  • Azure SQL Managed Instance, konfigurerad för att köras i ett virtuellt nätverk.

  • Du bör ha minst deltagarbehörigheter för både Azure AI Search och SQL Managed Instance.

  • Azure SQL Managed Instance anslutningssträng. Hanterad identitet stöds för närvarande inte med delad privat länk. Din anslutningssträng måste innehålla ett användarnamn och lösenord.

Kommentar

Delade privata länkar kan faktureras via priser för Azure Private Link och avgifter faktureras baserat på användning.

1 – Hämta anslutningsinformation

Hämta FQDN för den hanterade instansen, inklusive DNS-zonen. DNS-zonen är en del av domännamnet för SQL Managed Instance. Om till exempel FQDN för SQL Managed Instance är my-sql-managed-instance.00000000000.database.windows.netär 00000000000DNS-zonen .

  1. I Azure Portal letar du reda på sql-objektet för hanterad instans.

  2. Leta reda på egenskapen Värd på fliken Översikt . Kopiera DNS-zondelen av FQDN för nästa steg.

  3. På fliken Anslutningssträngar kopierar du ADO.NET anslutningssträng för ett senare steg. Det behövs för datakällans anslutning när du testar den privata anslutningen.

Mer information om anslutningsegenskaper finns i Skapa en Hanterad Azure SQL-instans.

2 – Skapa brödtexten i begäran

  1. Skapa JSON för den delade privata länken med hjälp av en textredigerare.

    {
        "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",
        }
    }
    
  2. Ange ett beskrivande namn för den delade privata länken. Den delade privata länken visas tillsammans med andra privata slutpunkter. Ett namn som "shared-private-link-for-search" kan påminna dig om hur det används.

  3. Klistra in DNS-zonnamnet i "dnsZonePrefix" som du hämtade i ett tidigare steg.

  4. Redigera "privateLinkResourceId" för att återspegla den privata slutpunkten för din hanterade instans. Ange prenumerations-ID, resursgruppsnamn och objektnamn för den hanterade instansen.

  5. Spara filen lokalt som create-pe.json (eller använd ett annat namn och kom ihåg att uppdatera Azure CLI-syntaxen i nästa steg).

  6. I Azure CLI skriver du dir för att notera filens aktuella plats.

  1. Från kommandoraden loggar du in på Azure med .az login

  2. Om du har flera prenumerationer kontrollerar du att du använder den du tänker använda: az account show.

    Om du vill ange prenumerationen använder du az account set --subscription {{subscription ID}}

  3. az rest Anropa kommandot för att använda REST-API:et för hantering i Azure AI Search.

    Eftersom stöd för delad privat länk för SQL-hanterade instanser fortfarande är i förhandsversion behöver du en förhandsversion av REST-API:et. Använd 2021-04-01-preview eller en senare förhandsversion av API:et för det här steget. Vi rekommenderar att du använder den senaste förhandsversionen av API:et.

    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
    

    Ange prenumerations-ID, resursgruppsnamn och tjänstnamn för din Azure AI Search-resurs.

    Ange samma namn för delad privat länk som du angav i JSON-brödtexten.

    Ange en sökväg till create-pe.json-filen om du har navigerat bort från filplatsen. Du kan skriva dir på kommandoraden för att bekräfta att filen finns i den aktuella katalogen.

  4. Kör kommandot genom att trycka på Retur.

När du slutför de här stegen bör du ha en delad privat länk som har etablerats i ett väntande tillstånd. Det tar flera minuter att skapa länken. När den har skapats måste resursägaren godkänna begäran innan den tas i drift.

4 – Godkänn den privata slutpunktsanslutningen

På SQL Managed Instance-sidan måste resursägaren godkänna den privata anslutningsbegäran som du skapade.

  1. I Azure Portal öppnar du fliken Privata slutpunktsanslutningar i den hanterade instansen.

  2. Leta reda på avsnittet som visar de privata slutpunktsanslutningarna.

  3. Välj anslutningen och välj sedan Godkänn. Det kan ta några minuter innan statusen uppdateras i Azure Portal.

När den privata slutpunkten har godkänts skapar Azure AI Search nödvändiga DNS-zonmappningar i DNS-zonen som skapas för den.

På Azure AI Search-sidan kan du bekräfta godkännande av begäran genom att gå tillbaka till fliken Delad privat åtkomst på söktjänstens nätverkssida . Anslutningstillståndet bör godkännas.

Skärmbild av Azure Portal som visar en delad privat länkresurs med

6 – Konfigurera indexeraren så att den körs i den privata miljön

Nu kan du konfigurera en indexerare och dess datakälla för att använda en utgående privat anslutning till din hanterade instans.

Du kan använda guiden Importera data för det här steget, men indexeraren som genereras är inte giltig för det här scenariot. Du måste ändra indexerarens JSON-egenskap enligt beskrivningen i det här steget för att göra den kompatibel för det här scenariot. Sedan måste du återställa och köra indexeraren igen för att fullständigt testa pipelinen med hjälp av den uppdaterade indexeraren.

Den här artikeln förutsätter en REST-klient och använder REST-API:erna för att göra det enklare att se alla egenskaper. Kom ihåg att REST API-anrop för indexerare och datakällor använder REST API:er för sökning, inte rest-API :er för hantering som används för att skapa den delade privata länken. Syntaxen och API-versionerna skiljer sig mellan de två REST-API:erna.

  1. Skapa datakällans definition på samma sätt som normalt för Azure SQL. Formatet på anslutningssträng skiljer sig något åt för en hanterad instans, men andra egenskaper är desamma som om du konfigurerade en datakällaanslutning till Azure SQL-databasen.

    Ange anslutningssträng som du kopierade tidigare med en angiven initial katalog.

    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.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;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
     }
    
  2. Skapa indexerarens definition och ange indexeraren executionEnvironment till "privat".

    Indexerarens körning sker antingen i en privat körningsmiljö som är specifik för din söktjänst eller i en miljö med flera klientorganisationer som hanteras av Microsoft och används för att avlasta dyr kompetensuppsättningsbearbetning för flera kunder. När du ansluter via en privat slutpunkt måste indexerarens körning vara privat.

     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": []
         }
    
  3. Kör indexeraren. Om indexerarens körning lyckas och sökindexet fylls i fungerar den delade privata länken.

Du kan övervaka indexerarens status i Azure Portal eller med indexerarens status-API.

Du kan använda Sökutforskaren i Azure Portal för att kontrollera innehållet i indexet.

Om du körde indexeraren i föregående steg och indexerade innehåll från din hanterade instans lyckades testet. Men om indexeraren misslyckas eller om det inte finns något innehåll i indexet kan du ändra dina objekt och upprepa testningen genom att välja alla klienter som kan anropa en utgående begäran från en indexerare.

Ett enkelt val är att köra en indexerare i Azure Portal, men du kan också prova en REST-klient och REST-API:er för mer precision. Förutsatt att söktjänsten inte också har konfigurerats för en privat anslutning kan REST-klientanslutningen till Search finnas via det offentliga Internet.

Här följer några påminnelser för testning:

  • Om du använder en REST-klient använder du REST API för hantering och API-versionen 2021-04-01-Preview för att skapa den delade privata länken. Använd REST API för sökning och en stabil API-version för att skapa och anropa indexerare och datakällor.

  • Du kan använda guiden Importera data för att skapa en indexerare, en datakälla och ett index. Den genererade indexeraren har dock inte rätt körningsmiljöinställning.

  • Du kan redigera datakällan och indexerarens JSON i Azure Portal för att ändra egenskaper, inklusive körningsmiljön och anslutningssträng.

  • Du kan återställa och köra indexeraren igen i Azure Portal. Återställning är viktigt för det här scenariot eftersom det tvingar fram en fullständig ombearbetning av alla dokument.

  • Du kan använda Sökutforskaren för att kontrollera innehållet i indexet.

Se även