Creare un collegamento privato condiviso per un'istanza gestita di SQL da Ricerca di intelligenza artificiale di Azure

Questo articolo illustra come configurare un indicizzatore in Ricerca intelligenza artificiale di Azure per una connessione privata a un'istanza gestita di SQL eseguita all'interno di una rete virtuale.

In una connessione privata a un'istanza gestita, il nome di dominio completo (FQDN) dell'istanza deve includere la zona DNS. Attualmente, solo l'API REST di Gestione ricerca intelligenza artificiale di Azure fornisce un resourceRegion parametro per accettare la specifica della zona DNS.

Anche se è possibile chiamare direttamente l'API REST di gestione, è più semplice usare il modulo dell'interfaccia della riga di comando di Azure az rest per inviare chiamate API REST di gestione da una riga di comando. Questo articolo usa l'interfaccia della riga di comando di Azure con REST per configurare il collegamento privato.

Nota

Questo articolo fa riferimento a portale di Azure per ottenere le proprietà e confermare i passaggi. Tuttavia, quando si crea il collegamento privato condiviso per Istanza gestita di SQL, assicurarsi di usare l'API REST. Anche se la scheda Rete è elencata Microsoft.Sql/managedInstances come opzione, il portale non supporta attualmente il formato di URL esteso usato da Istanza gestita di SQL.

Prerequisiti

  • Interfaccia della riga di comando di Azure

  • Ricerca di intelligenza artificiale di Azure, Basic o versione successiva. Se si usano set di competenze e arricchimento tramite intelligenza artificiale, usare standard 2 (S2) o versione successiva. Per informazioni dettagliate, vedere Limiti del servizio.

  • Istanza gestita di SQL di Azure, configurato per l'esecuzione in una rete virtuale.

  • È necessario avere almeno le autorizzazioni di Collaboratore per Ricerca intelligenza artificiale di Azure e Istanza gestita di SQL.

  • Istanza gestita di SQL di Azure stringa di connessione. L'identità gestita non è attualmente supportata con il collegamento privato condiviso. Il stringa di connessione deve includere un nome utente e una password.

Nota

collegamento privato di Azure viene usato internamente, senza alcun addebito, per configurare il collegamento privato condiviso.

1 - Recuperare le informazioni di connessione

Recuperare il nome di dominio completo dell'istanza gestita, inclusa la zona DNS. La zona DNS fa parte del nome di dominio del Istanza gestita di SQL. Ad esempio, se il nome di dominio completo del Istanza gestita di SQL è my-sql-managed-instance.00000000000.database.windows.net, la zona DNS è 00000000000.

  1. In portale di Azure trovare l'oggetto istanza gestita di SQL.

  2. Nella scheda Panoramica individuare la proprietà Host. Copiare la parte della zona DNS del nome di dominio completo per il passaggio successivo.

  3. Nella scheda stringhe di Connessione ion copiare il ADO.NET stringa di connessione per un passaggio successivo. È necessario per la connessione all'origine dati durante il test della connessione privata.

Per altre informazioni sulle proprietà di connessione, vedere Creare un Istanza gestita di SQL di Azure.

2 - Creare il corpo della richiesta

  1. Usando un editor di testo, creare il codice JSON per il collegamento privato condiviso.

    {
        "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. Specificare un nome significativo per il collegamento privato condiviso. Il collegamento privato condiviso viene visualizzato insieme ad altri endpoint privati. Un nome come "shared-private-link-for-search" può ricordare come viene usato.

  3. Incollare il nome della zona DNS in "resourceRegion" recuperato in un passaggio precedente.

  4. Modificare "privateLinkResourceId" per riflettere l'endpoint privato dell'istanza gestita. Specificare l'ID sottoscrizione, il nome del gruppo di risorse e il nome dell'oggetto dell'istanza gestita.

  5. Salvare il file in locale come create-pe.json (o usare un altro nome, ricordando di aggiornare la sintassi dell'interfaccia della riga di comando di Azure nel passaggio successivo).

  6. Nell'interfaccia della riga di comando di Azure digitare dir per prendere nota del percorso corrente del file.

  1. Dalla riga di comando accedere ad Azure usando az login.

  2. Se si hanno più sottoscrizioni, assicurarsi di usare quella che si intende usare: az account show.

    Per impostare la sottoscrizione, usare az account set --subscription {{subscription ID}}

  3. Chiamare il az rest comando per usare l'API REST di gestione di Ricerca di intelligenza artificiale di Azure.

    Poiché il supporto dei collegamenti privati condivisi per le istanze gestite di SQL è ancora in anteprima, è necessaria una versione di anteprima dell'API REST. Usare 2021-04-01-preview per questo passaggio'.

    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
    

    Specificare l'ID sottoscrizione, il nome del gruppo di risorse e il nome del servizio della risorsa di Ricerca intelligenza artificiale di Azure.

    Specificare lo stesso nome di collegamento privato condiviso specificato nel corpo JSON.

    Specificare un percorso del file create-pe.json se si è passati dal percorso del file. È possibile digitare dir nella riga di comando per verificare che il file si trovi nella directory corrente.

  4. Premere Invio per eseguire il comando.

Al termine di questi passaggi, è necessario disporre di un collegamento privato condiviso di cui è stato effettuato il provisioning in uno stato in sospeso. La creazione del collegamento richiede alcuni minuti. Dopo la creazione, il proprietario della risorsa deve approvare la richiesta prima che sia operativa.

4 - Approvare la connessione all'endpoint privato

Sul lato Istanza gestita di SQL, il proprietario della risorsa deve approvare la richiesta di connessione privata creata.

  1. Nella portale di Azure aprire la scheda Connessioni endpoint privato dell'istanza gestita.

  2. Trovare la sezione in cui sono elencate le connessioni dell'endpoint privato.

  3. Selezionare la connessione e quindi approva. L'aggiornamento dello stato nel portale può richiedere alcuni minuti.

Dopo l'approvazione dell'endpoint privato, Ricerca di intelligenza artificiale di Azure crea i mapping di zona DNS necessari nella zona DNS creata.

Sul lato Ricerca intelligenza artificiale di Azure è possibile confermare l'approvazione della richiesta rivedendo la scheda Accesso privato condiviso della pagina Rete del servizio di ricerca. Connessione lo stato deve essere approvato.

Screenshot of the Azure portal, showing an

6 - Configurare l'indicizzatore per l'esecuzione nell'ambiente privato

È ora possibile configurare un indicizzatore e la relativa origine dati per usare una connessione privata in uscita all'istanza gestita.

È possibile usare la procedura guidata Importa dati per questo passaggio, ma l'indicizzatore generato non sarà valido per questo scenario. Sarà necessario modificare la proprietà JSON dell'indicizzatore come descritto in questo passaggio per renderla conforme a questo scenario. Sarà quindi necessario reimpostare ed eseguire di nuovo l'indicizzatore per testare completamente la pipeline usando l'indicizzatore aggiornato.

Questo articolo presuppone un client REST e usa le API REST per semplificare la visualizzazione di tutte le proprietà. Tenere presente che le chiamate API REST per indicizzatori e origini dati usano le API REST di ricerca, non le API REST di gestione usate per creare il collegamento privato condiviso. La sintassi e le versioni api sono diverse tra le due API REST.

  1. Creare la definizione dell'origine dati come si farebbe normalmente per Azure SQL. Il formato del stringa di connessione è leggermente diverso per un'istanza gestita, ma altre proprietà sono uguali a se si configurasse una connessione all'origine dati al database SQL di Azure.

    Specificare il stringa di connessione copiato in precedenza.

    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. Creare la definizione dell'indicizzatore impostando l'ambiente di esecuzione dell'indicizzatore su "privato".

    L'esecuzione dell'indicizzatore si verifica in un ambiente privato specifico del servizio di ricerca o in un ambiente multi-tenant usato internamente per eseguire l'offload di costose elaborazioni del set di competenze per più clienti. Quando ci si connette tramite un endpoint privato, l'esecuzione dell'indicizzatore deve essere privata.

     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. Eseguire l'indicizzatore. Se l'esecuzione dell'indicizzatore ha esito positivo e l'indice di ricerca viene popolato, il collegamento privato condiviso funziona.

È possibile monitorare lo stato dell'indicizzatore in portale di Azure o usando l'API Stato dell'indicizzatore.

È possibile usare Esplora ricerche in portale di Azure per controllare il contenuto dell'indice.

Se l'indicizzatore è stato eseguito nel passaggio precedente e il contenuto indicizzato correttamente dall'istanza gestita, il test ha avuto esito positivo. Tuttavia, se l'indicizzatore ha esito negativo o non è presente contenuto nell'indice, è possibile modificare gli oggetti e ripetere il test scegliendo qualsiasi client in grado di richiamare una richiesta in uscita da un indicizzatore.

Una scelta semplice consiste nell'eseguire un indicizzatore in portale di Azure, ma è anche possibile provare un client REST e le API REST per una maggiore precisione. Supponendo che il servizio di ricerca non sia configurato anche per una connessione privata, la connessione client REST a Ricerca può essere eseguita tramite Internet pubblico.

Ecco alcuni promemoria per il test:

  • Se si usa un client REST, usare l'API REST di gestione e la versione dell'API2021-04-01-Preview per creare il collegamento privato condiviso. Usare l'API REST di ricerca e una versione stabile dell'API per creare e richiamare indicizzatori e origini dati.

  • È possibile usare la procedura guidata Importa dati per creare un indicizzatore, un'origine dati e un indice. Tuttavia, l'indicizzatore generato non avrà l'impostazione corretta dell'ambiente di esecuzione.

  • È possibile modificare l'origine dati e il codice JSON dell'indicizzatore in portale di Azure per modificare le proprietà, incluso l'ambiente di esecuzione e il stringa di connessione.

  • È possibile reimpostare ed eseguire di nuovo l'indicizzatore in portale di Azure. La reimpostazione è importante per questo scenario perché forza una rielaborazione completa di tutti i documenti.

  • È possibile usare Esplora ricerche per controllare il contenuto dell'indice.

Vedi anche