Создание общей приватной ссылки для управляемого экземпляра SQL из поиска ИИ Azure

В этой статье объясняется, как настроить индексатор в службе "Поиск ИИ Azure" для частного подключения к управляемому экземпляру SQL, работающему в виртуальной сети.

При частном подключении к управляемому экземпляру полное доменное имя экземпляра должно включать зону DNS. В настоящее время только REST API службы "Управление поиском ИИ Azure" предоставляет resourceRegion параметр для принятия спецификации зоны DNS.

Хотя вы можете напрямую вызвать REST API управления, проще использовать модуль Azure CLI az rest для отправки вызовов REST API управления из командной строки. В этой статье используется Azure CLI с REST для настройки приватного канала.

Примечание.

В этой статье рассматриваются портал Azure для получения свойств и подтверждения действий. Однако при создании общей частной ссылки для Управляемый экземпляр SQL убедитесь, что вы используете REST API. Хотя вкладка "Сеть" отображается Microsoft.Sql/managedInstances в качестве параметра, портал в настоящее время не поддерживает расширенный формат URL-адреса, используемый Управляемый экземпляр SQL.

Необходимые компоненты

  • Azure CLI

  • Поиск ИИ Azure, базовый или более поздний. Если вы используете наборы навыков и обогащения ИИ, используйте стандарт 2 (S2) или более поздней версии. Дополнительные сведения см. в разделе "Ограничения службы".

  • Управляемый экземпляр SQL Azure, настроенный для запуска в виртуальной сети.

  • У вас должно быть минимальное разрешение участника на поиск и Управляемый экземпляр SQL службы "Поиск ИИ Azure".

  • Управляемый экземпляр SQL Azure строка подключения. Управляемое удостоверение в настоящее время не поддерживается с общим приватным каналом. Строка подключения должны содержать имя пользователя и пароль.

Примечание.

Приватный канал Azure используется внутренне, без платы, для настройки общей приватной связи.

1. Получение сведений о подключении

Получите полное доменное имя управляемого экземпляра, включая зону DNS. Зона DNS является частью доменного имени Управляемый экземпляр SQL. Например, если полное доменное имя Управляемый экземпляр SQL имеет значениеmy-sql-managed-instance.00000000000.database.windows.net, зона DNS — 00000000000это.

  1. В портал Azure найдите объект управляемого экземпляра SQL.

  2. На вкладке "Обзор" найдите свойство Host. Скопируйте часть зоны DNS полного доменного имени для следующего шага.

  3. На вкладке строк Подключение ion скопируйте ADO.NET строка подключения для последующего шага. Он необходим для подключения к источнику данных при тестировании частного подключения.

Дополнительные сведения о свойствах подключения см. в разделе "Создание Управляемый экземпляр SQL Azure".

2. Создание текста запроса

  1. С помощью текстового редактора создайте JSON для общей приватной ссылки.

    {
        "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. Укажите понятное имя для общей приватной ссылки. Общая приватная ссылка отображается вместе с другими частными конечными точками. Имя, например "shared-private-link-for-search", может напомнить вам, как оно используется.

  3. Вставьте имя зоны DNS в resourceRegion, полученном на предыдущем шаге.

  4. Измените значение privateLinkResourceId, чтобы отразить частную конечную точку управляемого экземпляра. Укажите идентификатор подписки, имя группы ресурсов и имя объекта управляемого экземпляра.

  5. Сохраните файл локально как create-pe.json (или используйте другое имя, не забывая обновить синтаксис Azure CLI на следующем шаге).

  6. В Azure CLI введите dir текущее расположение файла.

  1. В командной строке войдите в Azure с помощью az login.

  2. Если у вас несколько подписок, убедитесь, что вы используете тот, который вы планируете использовать: az account show

    Чтобы задать подписку, используйте az account set --subscription {{subscription ID}}

  3. az rest Вызовите команду, чтобы использовать REST API управления поиска ИИ Azure.

    Так как поддержка общего приватного канала для управляемых экземпляров SQL по-прежнему находится в предварительной версии, вам нужна предварительная версия REST API. Используйте 2021-04-01-preview для этого шага.

    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
    

    Укажите идентификатор подписки, имя группы ресурсов и имя службы ресурса поиска ИИ Azure.

    Укажите то же общее имя приватного канала, которое вы указали в тексте JSON.

    Укажите путь к файлу create-pe.json , если вы перейдете из расположения файла. Чтобы подтвердить, что файл находится в текущем каталоге, можно ввести dir в командной строке.

  4. Нажмите клавишу Ввод, чтобы выполнить команду.

После выполнения этих действий у вас должна быть общая частная ссылка, подготовленная в состоянии ожидания. Создание ссылки занимает несколько минут. После создания владелец ресурса должен утвердить запрос, прежде чем он работает.

4. Утверждение подключения к частной конечной точке

На стороне Управляемый экземпляр SQL владелец ресурса должен утвердить созданный вами запрос частного подключения.

  1. В портал Azure откройте вкладку подключения к частной конечной точке управляемого экземпляра.

  2. Найдите раздел, в который перечислены подключения к частной конечной точке.

  3. Выберите подключение и нажмите кнопку "Утвердить". На портале может потребоваться несколько минут.

После утверждения частной конечной точки поиск Azure создает необходимые сопоставления зон DNS в зоне DNS, созданной для нее.

На стороне поиска ИИ Azure вы можете подтвердить утверждение запроса, вернув вкладку "Общий частный доступ" на странице "Сеть службы поиска". необходимо утвердить состояние Подключение ion.

Screenshot of the Azure portal, showing an

6. Настройка индексатора для запуска в частной среде

Теперь можно настроить индексатор и его источник данных для использования исходящего частного подключения к управляемому экземпляру.

Вы можете использовать мастер импорта данных для этого шага, но созданный индексатор не будет допустимым для этого сценария. Чтобы обеспечить соответствие этому сценарию, необходимо изменить свойство JSON индексатора, как описано на этом шаге. Затем необходимо сбросить и повторно запустить индексатор , чтобы полностью протестировать конвейер с помощью обновленного индексатора.

В этой статье предполагается , что клиент REST использует интерфейсы REST API, чтобы упростить просмотр всех свойств. Помните, что вызовы REST API для индексаторов и источников данных используют ИНТЕРФЕЙСы REST API поиска, а не ИНТЕРФЕЙСы REST API управления, используемые для создания общей приватной ссылки. Синтаксис и версии API отличаются между двумя REST API.

  1. Создайте определение источника данных, как правило, для SQL Azure. Формат строка подключения немного отличается для управляемого экземпляра, но другие свойства аналогичны настройке подключения источника данных к базе данных SQL Azure.

    Укажите строка подключения, скопированные ранее.

    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. Создайте определение индексатора, задав среду выполнения индексатора значение private.

    Выполнение индексатора выполняется в частной среде, относящемся к службе поиска, или в мультитенантной среде, которая используется внутренне для разгрузки дорогостоящих наборов навыков для нескольких клиентов. При подключении через частную конечную точку выполнение индексатора должно быть частным.

     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. Запустите индексатор. Если выполнение индексатора успешно выполнено, и индекс поиска заполняется, общая приватная ссылка работает.

Вы можете отслеживать состояние индексатора в портал Azure или с помощью API состояния индексатора.

Обозреватель поиска можно использовать в портал Azure для проверка содержимого индекса.

Если вы запустили индексатор на предыдущем шаге и успешно индексировали содержимое из управляемого экземпляра, то тест был успешно выполнен. Однако если индексатор завершается ошибкой или нет содержимого в индексе, можно изменить объекты и повторить тестирование, выбрав любой клиент, который может вызвать исходящий запрос от индексатора.

Простой выбор выполняет индексатор в портал Azure, но вы также можете попробовать клиент REST и REST API для повышения точности. Если служба поиска не настроена для частного подключения, подключение клиента REST к поиску может находиться через общедоступный Интернет.

Ниже приведены некоторые напоминания о тестировании:

  • Если вы используете клиент REST, используйте REST API управления и версию API 2021-04-01-Preview, чтобы создать общую приватную ссылку. Используйте REST API поиска и стабильную версию API для создания и вызова индексаторов и источников данных.

  • Мастер импорта данных можно использовать для создания индексатора, источника данных и индекса. Однако созданный индексатор не будет иметь правильный параметр среды выполнения.

  • Вы можете изменить источник данных и индексатор JSON в портал Azure, чтобы изменить свойства, включая среду выполнения и строка подключения.

  • Вы можете сбросить и повторно запустить индексатор в портал Azure. Сброс важен для этого сценария, так как он приводит к полной повторной обработке всех документов.

  • Обозреватель поиска можно использовать для проверка содержимого индекса.

См. также