Criar um link privado compartilhado para uma instância gerenciada do SQL a partir da Pesquisa de IA do Azure
Este artigo explica como configurar um indexador no Azure AI Search para uma conexão privada com uma instância gerenciada do SQL que é executada em uma rede virtual. A conexão privada é por meio de um link privado compartilhado e do Azure Private Link.
Em uma conexão privada com uma instância gerenciada, o FQDN (nome de domínio totalmente qualificado) da instância deve incluir a Zona DNS. Atualmente, apenas a API REST do Azure AI Search Management fornece um dnsZonePrefix
parâmetro para aceitar a especificação da zona DNS.
Embora você possa chamar a API REST de Gerenciamento diretamente, é mais fácil usar o módulo CLI az rest
do Azure para enviar chamadas da API REST de Gerenciamento de uma linha de comando. Este artigo usa a CLI do Azure com REST para configurar o link privado.
Nota
Este artigo refere-se ao portal do Azure para obter propriedades e confirmar etapas. No entanto, ao criar o link privado compartilhado para a Instância Gerenciada do SQL, verifique se você está usando a API REST. Embora a guia Rede liste Microsoft.Sql/managedInstances
como uma opção, o portal do Azure atualmente não oferece suporte ao formato de URL estendido usado pela Instância Gerenciada do SQL.
Pré-requisitos
Azure AI Search, Basic ou superior. Se você estiver usando o enriquecimento de IA e conjuntos de habilidades, use o Padrão 2 (S2) ou superior. Consulte Limites de serviço para obter detalhes.
Instância Gerenciada SQL do Azure, configurada para ser executada em uma rede virtual.
Você deve ter um mínimo de permissões de Colaborador na Pesquisa de IA do Azure e na Instância Gerenciada do SQL.
Cadeia de conexão da Instância Gerenciada SQL do Azure. Atualmente, a identidade gerenciada não é suportada com link privado compartilhado. Sua cadeia de conexão deve incluir um nome de usuário e senha.
Nota
Os links privados compartilhados são faturáveis por meio dos preços do Link Privado do Azure e os encargos são faturados com base no uso.
1 - Recuperar informações de conexão
Recupere o FQDN da instância gerenciada, incluindo a zona DNS. A zona DNS faz parte do nome de domínio da Instância Gerenciada SQL. Por exemplo, se o FQDN da Instância Gerenciada SQL for my-sql-managed-instance.00000000000.database.windows.net
, a zona DNS será 00000000000
.
No portal do Azure, localize o objeto de instância gerenciada SQL.
Na guia Visão Geral, localize a propriedade Host. Copie a parte da zona DNS do FQDN para a próxima etapa.
Na guia Cadeias de conexão, copie a cadeia de conexão ADO.NET para uma etapa posterior. É necessário para a conexão da fonte de dados ao testar a conexão privada.
Para obter mais informações sobre propriedades de conexão, consulte Criar uma instância gerenciada SQL do Azure.
2 - Crie o corpo do pedido
Usando um editor de texto, crie o JSON para o link privado compartilhado.
{ "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", } }
Forneça um nome significativo para o link privado compartilhado. O link privado compartilhado aparece ao lado de outros pontos de extremidade privados. Um nome como "shared-private-link-for-search" pode lembrá-lo de como é usado.
Cole o nome da zona DNS em "dnsZonePrefix" que você recuperou em uma etapa anterior.
Edite o "privateLinkResourceId" para refletir o ponto de extremidade privado da sua instância gerenciada. Forneça a ID da assinatura, o nome do grupo de recursos e o nome do objeto da instância gerenciada.
Salve o arquivo localmente como create-pe.json (ou use outro nome, lembrando-se de atualizar a sintaxe da CLI do Azure na próxima etapa).
Na CLI do Azure, digite
dir
para anotar o local atual do arquivo.
3 - Crie um link privado compartilhado
Na linha de comando, entre no Azure usando
az login
o .Se tiver várias subscrições, certifique-se de que está a utilizar a que pretende utilizar:
az account show
.Para definir a assinatura, use
az account set --subscription {{subscription ID}}
Chame o
az rest
comando para usar a API REST de Gerenciamento do Azure AI Search.Como o suporte a links privados compartilhados para instâncias gerenciadas SQL ainda está em visualização, você precisa de uma versão de visualização da API REST. Use
2021-04-01-preview
ou uma versão posterior da API de visualização para esta etapa. Recomendamos o uso da versão mais recente da API de visualização.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
Forneça a ID da assinatura, o nome do grupo de recursos e o nome do serviço do seu recurso Azure AI Search.
Forneça o mesmo nome de link privado compartilhado que você especificou no corpo JSON.
Forneça um caminho para o arquivo create-pe.json se você tiver navegado para fora do local do arquivo. Você pode digitar
dir
na linha de comando para confirmar que o arquivo está no diretório atual.Prima Enter para executar o comando.
Ao concluir essas etapas, você deve ter um link privado compartilhado provisionado em um estado pendente. Leva vários minutos para criar o link. Depois de criado, o proprietário do recurso precisa aprovar a solicitação antes que ela esteja operacional.
4 - Aprovar a conexão de ponto final privado
No lado da Instância Gerenciada SQL, o proprietário do recurso deve aprovar a solicitação de conexão privada que você criou.
No portal do Azure, abra a guia Conexões de ponto de extremidade privado da instância gerenciada.
Encontre a seção que lista as conexões de ponto de extremidade privadas.
Selecione a conexão e, em seguida, selecione Aprovar. Pode levar alguns minutos para que o status seja atualizado no portal do Azure.
Depois que o ponto de extremidade privado é aprovado, o Azure AI Search cria os mapeamentos de zona DNS necessários na zona DNS criada para ele.
5 - Verifique o status do link privado compartilhado
No lado da Pesquisa de IA do Azure, você pode confirmar a aprovação da solicitação revisitando a guia Acesso Privado Compartilhado da página Rede do serviço de pesquisa. O estado da conexão deve ser aprovado.
6 - Configure o indexador para ser executado no ambiente privado
Agora você pode configurar um indexador e sua fonte de dados para usar uma conexão privada de saída com sua instância gerenciada.
Você pode usar o assistente Importar dados para esta etapa, mas o indexador gerado não será válido para esse cenário. Você precisará modificar a propriedade JSON do indexador conforme descrito nesta etapa para torná-la compatível com esse cenário. Em seguida, você precisará redefinir e executar novamente o indexador para testar totalmente o pipeline usando o indexador atualizado.
Este artigo pressupõe um cliente REST e usa as APIs REST para facilitar a visualização de todas as propriedades. Lembre-se de que as chamadas da API REST para indexadores e fontes de dados usam as APIs REST de pesquisa, não as APIs REST de gerenciamento usadas para criar o link privado compartilhado. A sintaxe e as versões da API são diferentes entre as duas APIs REST.
Crie a definição da fonte de dados como faria normalmente para o SQL do Azure. O formato da cadeia de conexão é ligeiramente diferente para uma instância gerenciada, mas outras propriedades são as mesmas como se você estivesse configurando uma conexão de fonte de dados com o banco de dados SQL do Azure.
Forneça a cadeia de conexão que você copiou anteriormente com um Catálogo Inicial especificado.
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 }
Crie a definição do indexador, definindo o indexador
executionEnvironment
como "private".A execução do indexador ocorre em um ambiente de execução privado específico para seu serviço de pesquisa ou em um ambiente multilocatário hospedado pela Microsoft e usado para descarregar o processamento dispendioso do conjunto de habilidades para vários clientes. Ao se conectar por meio de um ponto de extremidade privado, a execução do indexador deve ser privada.
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": [] }
Execute o indexador. Se a execução do indexador for bem-sucedida e o índice de pesquisa for preenchido, o link privado compartilhado estará funcionando.
Você pode monitorar o status do indexador no portal do Azure ou usando a API de Status do Indexador.
Você pode usar o Gerenciador de Pesquisa no portal do Azure para verificar o conteúdo do índice.
7 - Teste o link privado compartilhado
Se você executou o indexador na etapa anterior e indexou com êxito o conteúdo da instância gerenciada, o teste foi bem-sucedido. No entanto, se o indexador falhar ou não houver conteúdo no índice, você poderá modificar seus objetos e repetir o teste escolhendo qualquer cliente que possa invocar uma solicitação de saída de um indexador.
Uma opção fácil é executar um indexador no portal do Azure, mas você também pode tentar um cliente REST e APIs REST para obter mais precisão. Supondo que seu serviço de pesquisa também não esteja configurado para uma conexão privada, a conexão do cliente REST com a Pesquisa pode ser pela Internet pública.
Aqui estão alguns lembretes para testes:
Se você usar um cliente REST, use a API REST de gerenciamento e a versão da API 2021-04-01-Preview para criar o link privado compartilhado. Use a API REST de pesquisa e uma versão estável da API para criar e invocar indexadores e fontes de dados.
Você pode usar o assistente Importar dados para criar um indexador, fonte de dados e índice. No entanto, o indexador gerado não terá a configuração correta do ambiente de execução.
Você pode editar a fonte de dados e o indexador JSON no portal do Azure para alterar propriedades, incluindo o ambiente de execução e a cadeia de conexão.
Você pode redefinir e executar novamente o indexador no portal do Azure. A redefinição é importante para esse cenário porque força um reprocessamento completo de todos os documentos.
Você pode usar o explorador de pesquisa para verificar o conteúdo do índice.