Membuat tautan privat bersama untuk instans terkelola SQL dari Azure AI Search

Artikel ini menjelaskan cara mengonfigurasi pengindeks di Azure AI Search untuk koneksi privat ke instans terkelola SQL yang berjalan dalam jaringan virtual.

Pada koneksi privat ke instans terkelola, nama domain yang sepenuhnya memenuhi syarat (FQDN) instans harus menyertakan Zona DNS. Saat ini, hanya REST API Azure AI Search Management yang menyediakan resourceRegion parameter untuk menerima spesifikasi zona DNS.

Meskipun Anda dapat memanggil MANAGEMENT REST API secara langsung, lebih mudah untuk menggunakan modul Azure CLI az rest untuk mengirim panggilan MANAGEMENT REST API dari baris perintah. Artikel ini menggunakan Azure CLI dengan REST untuk menyiapkan tautan privat.

Catatan

Artikel ini mengacu pada portal Azure untuk mendapatkan properti dan mengonfirmasi langkah-langkah. Namun, saat membuat tautan privat bersama untuk SQL Managed Instance, pastikan Anda menggunakan REST API. Meskipun tab Jaringan mencantumkan Microsoft.Sql/managedInstances sebagai opsi, portal saat ini tidak mendukung format URL yang diperluas yang digunakan oleh SQL Managed Instance.

Prasyarat

  • Azure CLI

  • Pencarian Azure AI, Dasar atau yang lebih tinggi. Jika Anda menggunakan pengayaan AI dan set keterampilan, gunakan Standar 2 (S2) atau yang lebih tinggi. Lihat Batas layanan untuk detailnya.

  • Azure SQL Managed Instance, dikonfigurasi untuk berjalan di jaringan virtual.

  • Anda harus memiliki minimal izin Kontributor pada Azure AI Search dan SQL Managed Instance.

  • Azure SQL Managed Instance string koneksi. Identitas terkelola saat ini tidak didukung dengan tautan privat bersama. string koneksi Anda harus menyertakan nama pengguna dan kata sandi.

Catatan

Azure Private Link digunakan secara internal, tanpa biaya, untuk menyiapkan tautan privat bersama.

1 - Mengambil informasi koneksi

Ambil FQDN instans terkelola, termasuk zona DNS. Zona DNS adalah bagian dari nama domain SQL Managed Instance. Misalnya, jika FQDN dari SQL Managed Instance adalah my-sql-managed-instance.00000000000.database.windows.net, zona DNS adalah 00000000000.

  1. Di portal Azure, temukan objek instans terkelola SQL.

  2. Pada tab Gambaran Umum , temukan properti Host. Salin bagian zona DNS FQDN untuk langkah berikutnya.

  3. Pada tab string Koneksi ion, salin ADO.NET string koneksi untuk langkah selanjutnya. Ini diperlukan untuk koneksi sumber data saat menguji koneksi privat.

Untuk informasi selengkapnya tentang properti koneksi, lihat Membuat Azure SQL Managed Instance.

2 - Membuat isi permintaan

  1. Menggunakan editor teks, buat JSON untuk tautan privat bersama.

    {
        "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. Berikan nama yang bermakna untuk tautan privat bersama. Tautan privat bersama muncul bersama titik akhir privat lainnya. Nama seperti "shared-private-link-for-search" dapat mengingatkan Anda cara penggunaannya.

  3. Tempelkan nama zona DNS di "resourceRegion" yang Anda ambil di langkah sebelumnya.

  4. Edit "privateLinkResourceId" untuk mencerminkan titik akhir privat instans terkelola Anda. Berikan ID langganan, nama grup sumber daya, dan nama objek instans terkelola.

  5. Simpan file secara lokal sebagai create-pe.json (atau gunakan nama lain, mengingat untuk memperbarui sintaks Azure CLI di langkah berikutnya).

  6. Di Azure CLI, ketik dir untuk mencatat lokasi file saat ini.

  1. Dari baris perintah, masuk ke Azure menggunakan az login.

  2. Jika Anda memiliki beberapa langganan, pastikan Anda menggunakan langganan yang ingin Anda gunakan: az account show.

    Untuk mengatur langganan, gunakan az account set --subscription {{subscription ID}}

  3. az rest Panggil perintah untuk menggunakan REST API Manajemen dari Azure AI Search.

    Karena dukungan tautan privat bersama untuk instans terkelola SQL masih dalam pratinjau, Anda memerlukan versi pratinjau REST API. Gunakan 2021-04-01-preview untuk langkah ini'.

    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
    

    Berikan ID langganan, nama grup sumber daya, dan nama layanan sumber daya Azure AI Search Anda.

    Berikan nama tautan privat bersama yang sama dengan yang Anda tentukan dalam isi JSON.

    Berikan jalur ke file create-pe.json jika Anda telah menavigasi jauh dari lokasi file. Anda dapat mengetik dir pada baris perintah untuk mengonfirmasi bahwa file berada di direktori saat ini.

  4. Tekan Enter untuk menjalankan perintah.

Saat menyelesaikan langkah-langkah ini, Anda harus memiliki tautan privat bersama yang disediakan dalam status tertunda. Dibutuhkan beberapa menit untuk membuat tautan. Setelah dibuat, pemilik sumber daya perlu menyetujui permintaan sebelum beroperasi.

4 - Menyetujui koneksi titik akhir privat

Di sisi SQL Managed Instance, pemilik sumber daya harus menyetujui permintaan koneksi privat yang Anda buat.

  1. Di portal Azure, buka tab Koneksi titik akhir privat dari instans terkelola.

  2. Temukan bagian yang mencantumkan koneksi titik akhir privat.

  3. Pilih koneksi, lalu pilih Setujui. Diperlukan waktu beberapa menit agar status diperbarui di portal.

Setelah titik akhir privat disetujui, Azure AI Search membuat pemetaan zona DNS yang diperlukan di zona DNS yang dibuat untuknya.

Di sisi Pencarian Azure AI, Anda dapat mengonfirmasi persetujuan permintaan dengan mengunjungi kembali tab Akses Privat Bersama dari halaman Jaringan layanan pencarian. status Koneksi harus disetujui.

Screenshot of the Azure portal, showing an

6 - Mengonfigurasi pengindeks untuk dijalankan di lingkungan privat

Anda sekarang dapat mengonfigurasi pengindeks dan sumber datanya untuk menggunakan koneksi privat keluar ke instans terkelola Anda.

Anda dapat menggunakan wizard Impor data untuk langkah ini, tetapi pengindeks yang dihasilkan tidak akan valid untuk skenario ini. Anda harus memodifikasi properti JSON pengindeks seperti yang dijelaskan dalam langkah ini untuk membuatnya sesuai dengan skenario ini. Anda kemudian perlu mengatur ulang dan menjalankan ulang pengindeks untuk sepenuhnya menguji alur menggunakan pengindeks yang diperbarui.

Artikel ini mengasumsikan klien REST dan menggunakan REST API untuk mempermudah melihat semua properti. Ingat bahwa REST API memanggil pengindeks dan sumber data menggunakan REST API Pencarian, bukan API REST Manajemen yang digunakan untuk membuat tautan privat bersama. Sintaksis dan versi API berbeda antara dua REST API.

  1. Buat definisi sumber data seperti biasanya untuk Azure SQL. Format string koneksi sedikit berbeda untuk instans terkelola, tetapi properti lain sama seperti jika Anda mengonfigurasi koneksi sumber data ke database Azure SQL.

    Berikan string koneksi yang Anda salin sebelumnya.

    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. Buat definisi pengindeks, atur lingkungan eksekusi pengindeks ke "privat".

    Eksekusi pengindeks terjadi di lingkungan privat yang khusus untuk layanan pencarian, atau lingkungan multi-penyewa yang digunakan secara internal untuk membongkar pemrosesan set keterampilan yang mahal untuk beberapa pelanggan. Saat menyambungkan melalui titik akhir privat, eksekusi pengindeks harus bersifat privat.

     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. Jalankan pengindeks. Jika eksekusi pengindeks berhasil dan indeks pencarian diisi, tautan privat bersama berfungsi.

Anda dapat memantau status pengindeks di portal Azure atau dengan menggunakan API Status Pengindeks.

Anda dapat menggunakan Penjelajah pencarian di portal Azure untuk memeriksa konten indeks.

Jika Anda menjalankan pengindeks di langkah sebelumnya dan berhasil mengindeks konten dari instans terkelola Anda, pengujian berhasil. Namun, jika pengindeks gagal atau tidak ada konten dalam indeks, Anda dapat memodifikasi objek Anda dan mengulangi pengujian dengan memilih klien apa pun yang dapat memanggil permintaan keluar dari pengindeks.

Pilihan mudah adalah menjalankan pengindeks di portal Azure, tetapi Anda juga dapat mencoba klien REST dan REST API untuk lebih presisi. Dengan asumsi bahwa layanan pencarian Anda tidak juga dikonfigurasi untuk koneksi privat, koneksi klien REST ke Pencarian dapat melalui internet publik.

Berikut adalah beberapa pengingat untuk pengujian:

  • Jika Anda menggunakan klien REST, gunakan REST API Manajemen dan versi API Pratinjau 04-04-2021 untuk membuat tautan privat bersama. Gunakan Rest API Pencarian dan versi API yang stabil untuk membuat dan memanggil pengindeks dan sumber data.

  • Anda bisa menggunakan wizard Impor data untuk membuat pengindeks, sumber data, dan indeks. Namun, pengindeks yang dihasilkan tidak akan memiliki pengaturan lingkungan eksekusi yang benar.

  • Anda dapat mengedit sumber data dan pengindeks JSON di portal Azure untuk mengubah properti, termasuk lingkungan eksekusi dan string koneksi.

  • Anda dapat mengatur ulang dan menjalankan ulang pengindeks di portal Azure. Reset penting untuk skenario ini karena memaksa pemrosesan ulang penuh semua dokumen.

  • Anda dapat menggunakan Penjelajah pencarian untuk memeriksa konten indeks.

Lihat juga