Udostępnij za pośrednictwem


Tworzenie udostępnionego łącza prywatnego dla wystąpienia zarządzanego SQL z usługi Azure AI Search

W tym artykule wyjaśniono, jak skonfigurować indeksator w usłudze Azure AI Search dla połączenia prywatnego z wystąpieniem zarządzanym SQL uruchomionym w sieci wirtualnej. Połączenie prywatne odbywa się za pośrednictwem udostępnionego łącza prywatnego i usługi Azure Private Link.

W przypadku połączenia prywatnego z wystąpieniem zarządzanym w pełni kwalifikowana nazwa domeny (FQDN) wystąpienia musi zawierać strefę DNS. Obecnie tylko interfejs API REST usługi Azure AI Search Management udostępnia dnsZonePrefix parametr akceptowania specyfikacji strefy DNS.

Chociaż interfejs API REST zarządzania można wywoływać bezpośrednio, łatwiej jest użyć modułu interfejsu wiersza polecenia az rest platformy Azure do wysyłania wywołań interfejsu API REST zarządzania z wiersza polecenia. W tym artykule użyto interfejsu wiersza polecenia platformy Azure z interfejsem REST w celu skonfigurowania łącza prywatnego.

Uwaga

W tym artykule opisano witrynę Azure Portal w celu uzyskania właściwości i potwierdzenia kroków. Jednak podczas tworzenia udostępnionego łącza prywatnego dla usługi SQL Managed Instance upewnij się, że używasz interfejsu API REST. Mimo że karta Sieć jest wyświetlana Microsoft.Sql/managedInstances jako opcja, portal nie obsługuje obecnie rozszerzonego formatu adresu URL używanego przez usługę SQL Managed Instance.

Wymagania wstępne

  • Interfejs wiersza polecenia platformy Azure

  • Usługa Azure AI Search, podstawowa lub nowsza wersja. Jeśli używasz wzbogacania sztucznej inteligencji i zestawów umiejętności, użyj warstwy Standardowa 2 (S2) lub nowszej. Aby uzyskać szczegółowe informacje, zobacz Limity usług.

  • Usługa Azure SQL Managed Instance skonfigurowana do uruchamiania w sieci wirtualnej.

  • Musisz mieć co najmniej uprawnienia współautora zarówno w usłudze Azure AI Search, jak i w usłudze SQL Managed Instance.

  • Parametry połączenia usługi Azure SQL Managed Instance. Tożsamość zarządzana nie jest obecnie obsługiwana za pomocą udostępnionego łącza prywatnego. Parametry połączenia musi zawierać nazwę użytkownika i hasło.

Uwaga

Udostępnione linki prywatne są rozliczane za pośrednictwem cennika usługi Azure Private Link, a opłaty są fakturowane na podstawie użycia.

1 — Pobieranie informacji o połączeniu

Pobierz nazwę FQDN wystąpienia zarządzanego, w tym strefę DNS. Strefa DNS jest częścią nazwy domeny wystąpienia zarządzanego SQL. Jeśli na przykład nazwa FQDN wystąpienia zarządzanego SQL to my-sql-managed-instance.00000000000.database.windows.net, strefa DNS to 00000000000.

  1. W witrynie Azure Portal znajdź obiekt wystąpienia zarządzanego SQL.

  2. Na karcie Przegląd znajdź właściwość Host. Skopiuj część strefy DNS nazwy FQDN w następnym kroku.

  3. Na karcie Parametry połączenia skopiuj ADO.NET parametry połączenia na potrzeby późniejszego kroku. Podczas testowania połączenia prywatnego wymagane jest połączenie ze źródłem danych.

Aby uzyskać więcej informacji na temat właściwości połączenia, zobacz Create an Azure SQL Managed Instance (Tworzenie wystąpienia zarządzanego Azure SQL).

2 — Tworzenie treści żądania

  1. Za pomocą edytora tekstów utwórz kod JSON dla udostępnionego łącza prywatnego.

    {
        "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. Podaj zrozumiałą nazwę udostępnionego łącza prywatnego. Udostępniony link prywatny jest wyświetlany wraz z innymi prywatnymi punktami końcowymi. Nazwa, na przykład "shared-private-link-for-search", może przypominać, jak jest używana.

  3. Wklej nazwę strefy DNS w polu "dnsZonePrefix", który został pobrany we wcześniejszym kroku.

  4. Zmodyfikuj wartość "privateLinkResourceId", aby odzwierciedlić prywatny punkt końcowy wystąpienia zarządzanego. Podaj identyfikator subskrypcji, nazwę grupy zasobów i nazwę obiektu wystąpienia zarządzanego.

  5. Zapisz plik lokalnie jako create-pe.json (lub użyj innej nazwy, pamiętaj o zaktualizowaniu składni interfejsu wiersza polecenia platformy Azure w następnym kroku).

  6. W interfejsie wiersza polecenia platformy Azure wpisz dir , aby zanotować bieżącą lokalizację pliku.

  1. W wierszu polecenia zaloguj się do platformy Azure przy użyciu polecenia az login.

  2. Jeśli masz wiele subskrypcji, upewnij się, że używasz tej, której zamierzasz użyć: az account show.

    Aby ustawić subskrypcję, użyj polecenia az account set --subscription {{subscription ID}}

  3. Wywołaj polecenie , az rest aby użyć interfejsu API REST zarządzania usługi Azure AI Search.

    Ponieważ obsługa udostępnionych linków prywatnych dla wystąpień zarządzanych SQL jest nadal dostępna w wersji zapoznawczej, potrzebna jest wersja zapoznawcza interfejsu API REST. W tym kroku użyj 2021-04-01-preview lub nowszej wersji zapoznawczej interfejsu API. Zalecamy używanie najnowszej wersji interfejsu API w wersji zapoznawczej.

    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
    

    Podaj identyfikator subskrypcji, nazwę grupy zasobów i nazwę usługi zasobu usługi Azure AI Search.

    Podaj tę samą nazwę udostępnionego łącza prywatnego, która została określona w treści JSON.

    Podaj ścieżkę do pliku create-pe.json , jeśli odejdziesz od lokalizacji pliku. Możesz wpisać dir polecenie w wierszu polecenia, aby potwierdzić, że plik znajduje się w bieżącym katalogu.

  4. Naciśnij klawisz Enter, aby uruchomić to polecenie.

Po wykonaniu tych kroków należy mieć udostępniony link prywatny aprowizowany w stanie oczekiwania. Utworzenie linku trwa kilka minut. Po utworzeniu właściciel zasobu musi zatwierdzić żądanie przed jego działaniem.

4 — Zatwierdzanie połączenia prywatnego punktu końcowego

Po stronie usługi SQL Managed Instance właściciel zasobu musi zatwierdzić utworzone żądanie połączenia prywatnego.

  1. W witrynie Azure Portal otwórz kartę Połączenia prywatnego punktu końcowego wystąpienia zarządzanego.

  2. Znajdź sekcję zawierającą listę połączeń prywatnych punktów końcowych.

  3. Wybierz połączenie, a następnie wybierz pozycję Zatwierdź. Zaktualizowanie stanu w portalu może potrwać kilka minut.

Po zatwierdzeniu prywatnego punktu końcowego usługa Azure AI Search tworzy niezbędne mapowania stref DNS w utworzonej dla niej strefie DNS.

Po stronie usługi Azure AI Search możesz potwierdzić zatwierdzenie żądania, ponownie przeglądając kartę Udostępniony dostęp prywatny na stronie Sieć usługi wyszukiwania. Stan połączenia powinien zostać zatwierdzony.

Zrzut ekranu witryny Azure Portal przedstawiający zasób

6 — Konfigurowanie indeksatora do uruchamiania w środowisku prywatnym

Teraz można skonfigurować indeksator i jego źródło danych, aby używać wychodzącego połączenia prywatnego z wystąpieniem zarządzanym.

W tym kroku można użyć kreatora importu danych , ale indeksator wygenerowany w tym scenariuszu nie będzie prawidłowy. Należy zmodyfikować właściwość JSON indeksatora zgodnie z opisem w tym kroku, aby była zgodna z tym scenariuszem. Następnie należy zresetować i ponownie uruchomić indeksator, aby w pełni przetestować potok przy użyciu zaktualizowanego indeksatora.

W tym artykule założono, że klient REST używa interfejsów API REST, aby ułatwić wyświetlanie wszystkich właściwości. Pamiętaj, że interfejs API REST wywołuje indeksatory i źródła danych przy użyciu interfejsów API REST wyszukiwania, a nie interfejsów API REST zarządzania używanych do tworzenia udostępnionego łącza prywatnego. Składnia i wersje interfejsu API różnią się między dwoma interfejsami API REST.

  1. Utwórz definicję źródła danych, tak jak zwykle w przypadku usługi Azure SQL. Format parametry połączenia jest nieco inny dla wystąpienia zarządzanego, ale inne właściwości są takie same jak w przypadku konfigurowania połączenia źródła danych z bazą danych Azure SQL Database.

    Podaj parametry połączenia skopiowane wcześniej z określonym wykazem początkowym.

    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. Utwórz definicję indeksatora, ustawiając środowisko wykonywania indeksatora na "prywatne".

    Wykonywanie indeksatora odbywa się w środowisku prywatnym specyficznym dla usługi wyszukiwania lub w środowisku wielodostępnym używanym wewnętrznie do odciążania kosztownego przetwarzania zestawu umiejętności dla wielu klientów. Podczas nawiązywania połączenia za pośrednictwem prywatnego punktu końcowego wykonywanie indeksatora musi być prywatne.

     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. Uruchom indeksator. Jeśli wykonanie indeksatora zakończy się pomyślnie i indeks wyszukiwania zostanie wypełniony, współużytkowany link prywatny działa.

Stan indeksatora można monitorować w witrynie Azure Portal lub przy użyciu interfejsu API stanu indeksatora.

Aby sprawdzić zawartość indeksu, możesz użyć Eksploratora wyszukiwania w witrynie Azure Portal.

Jeśli w poprzednim kroku uruchomiono indeksator i pomyślnie zaindeksowano zawartość z wystąpienia zarządzanego, test zakończył się pomyślnie. Jeśli jednak indeksator ulegnie awarii lub nie ma zawartości w indeksie, możesz zmodyfikować obiekty i powtórzyć testowanie, wybierając dowolnego klienta, który może wywołać żądanie wychodzące z indeksatora.

Łatwym wyborem jest uruchomienie indeksatora w witrynie Azure Portal, ale możesz również wypróbować klienta REST i interfejsy API REST, aby uzyskać większą precyzję. Zakładając, że usługa wyszukiwania nie jest również skonfigurowana dla połączenia prywatnego, połączenie klienta REST z wyszukiwaniem może być za pośrednictwem publicznego Internetu.

Oto kilka przypomnień dotyczących testowania:

  • Jeśli używasz klienta REST, użyj interfejsu API REST zarządzania i wersji interfejsu API 2021-04-01-Preview, aby utworzyć udostępniony link prywatny. Użyj interfejsu API REST wyszukiwania i stabilnej wersji interfejsu API, aby utworzyć i wywołać indeksatory i źródła danych.

  • Kreator importu danych umożliwia utworzenie indeksatora, źródła danych i indeksu. Jednak wygenerowany indeksator nie będzie miał poprawnego ustawienia środowiska wykonywania.

  • Możesz edytować źródło danych i kod JSON indeksatora w witrynie Azure Portal, aby zmienić właściwości, w tym środowisko wykonywania i parametry połączenia.

  • Indeksator można zresetować i ponownie uruchomić w witrynie Azure Portal. Resetowanie jest ważne w tym scenariuszu, ponieważ wymusza pełne ponowne przetwarzanie wszystkich dokumentów.

  • Aby sprawdzić zawartość indeksu, możesz użyć Eksploratora wyszukiwania.

Zobacz też