Skip to content

Commit e155da2

Browse files
committed
Updated steps and screenshots for SQL managed instance
1 parent 66fc403 commit e155da2

File tree

6 files changed

+20
-30
lines changed

6 files changed

+20
-30
lines changed
97.1 KB
Loading
168 KB
Loading
53.3 KB
Loading
Binary file not shown.

articles/search/search-how-to-index-sql-managed-instance.md

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ ms.service: azure-ai-search
1010
ms.custom:
1111
- ignite-2023
1212
ms.topic: how-to
13-
ms.date: 12/10/2024
13+
ms.date: 01/28/2025
1414
---
1515

1616
# Indexer connections to Azure SQL Managed Instance through a public endpoint
1717

1818
Indexers in Azure AI Search connect to external data sources over a public endpoint. If you're setting up an [Azure SQL indexer](search-how-to-index-sql-database.md) for a connection to a SQL managed instance, follow the steps in this article to ensure the public endpoint is set up correctly.
1919

20-
Alternatively, if the managed instance is behind a firewall, [create a shared private link](search-indexer-how-to-access-private-sql.md) instead.
20+
Alternatively, for private connections, [create a shared private link](search-indexer-how-to-access-private-sql.md) instead.
2121

2222
> [!NOTE]
2323
> [Always Encrypted](/sql/relational-databases/security/encryption/always-encrypted-database-engine) columns are not currently supported by Azure AI Search indexers.
@@ -28,33 +28,19 @@ This article highlights just the steps for an indexer connection in Azure AI Sea
2828

2929
1. For a new SQL Managed Instance, create the resource with the **Enable public endpoint** option selected.
3030

31-
![Enable public endpoint](media/search-how-to-index-sql-managed-instance/enable-public-endpoint.png "Enable public endpoint")
31+
![Enable public endpoint](media/search-how-to-index-sql-managed-instance/enable-public-endpoint.png "Screenshot showing the public endpoint option during set up.")
3232

33-
1. Alternatively, if the instance already exists, you can enable public endpoint on an existing SQL Managed Instance under **Security** > **Virtual network** > **Public endpoint** > **Enable**.
33+
1. Alternatively, if the instance already exists, you can enable public endpoint on an existing SQL Managed Instance under **Security** > **Networking** > **Public endpoint** > **Enable**.
3434

35-
![Enable public endpoint using managed instance VNET](media/search-how-to-index-sql-managed-instance/mi-vnet.png "Enable public endpoint")
36-
37-
## Verify NSG rules
38-
39-
Check the Network Security Group has the correct **Inbound security rules** that allow connections from Azure services.
40-
41-
![NSG Inbound security rule](media/search-how-to-index-sql-managed-instance/nsg-rule.png "NSG Inbound security rule")
42-
43-
## Restrict inbound access to the endpoint
44-
45-
You can restrict inbound access to the public endpoint by replacing the current rule (`public_endpoint_inbound`) with the following two rules:
46-
47-
* Allowing inbound access from the `AzureCognitiveSearch` [service tag](/azure/virtual-network/service-tags-overview#available-service-tags) ("SOURCE" = `AzureCognitiveSearch`, "NAME" = `cognitive_search_inbound`)
48-
49-
* Allowing inbound access from the IP address of the search service, which can be obtained by pinging its fully qualified domain name (for example, `<your-search-service-name>.search.windows.net`). ("SOURCE" = `IP address`, "NAME" = `search_service_inbound`)
50-
51-
For each rule, set "PORT" = `3342`, "PROTOCOL" = `TCP`, "DESTINATION" = `Any`, "ACTION" = `Allow`.
35+
![Enable public endpoint using managed instance VNET](media/search-how-to-index-sql-managed-instance/mi-vnet.png "Screenshot showing the public endpoint configuration setting in the Azure portal.")
5236

5337
## Get public endpoint connection string
5438

55-
Copy the connection string to use in the search indexer's data source connection. Be sure to copy the connection string for the **public endpoint** (port 3342, not port 1433).
39+
1. To get a connection string, go to **Settings** > **Connection strings**.
40+
41+
1. Copy the connection string to use in the search indexer's data source connection. Be sure to copy the connection string for the **public endpoint** (port 3342, not port 1433).
5642

57-
![Public endpoint connection string](media/search-how-to-index-sql-managed-instance/mi-connection-string.png "Public endpoint connection string")
43+
![Public endpoint connection string](media/search-how-to-index-sql-managed-instance/mi-connection-string.png "Screenshot of a public endpoint connection string in the Azure portal.")
5844

5945
## Next steps
6046

articles/search/search-indexer-how-to-access-private-sql.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Although you can call the Management REST API directly, it's easier to use the A
3131

3232
+ You should have a minimum of Contributor permissions on both Azure AI Search and SQL Managed Instance.
3333

34-
+ Azure SQL Managed Instance connection string. Managed identity is not currently supported with shared private link. Your connection string must include a user name and password.
34+
+ Azure SQL Managed Instance connection string. Managed identity isn't currently supported with shared private link. Your connection string must include a user name and password.
3535

3636
> [!NOTE]
3737
> Shared private links are billable through [Azure Private Link pricing](https://azure.microsoft.com/pricing/details/private-link/) and charges are invoiced based on usage.
@@ -59,7 +59,7 @@ For more information about connection properties, see [Create an Azure SQL Manag
5959
"privateLinkResourceId": "/subscriptions/{{target-resource-subscription-ID}}/resourceGroups/{{target-resource-rg}}/providers/Microsoft.Sql/managedInstances/{{target-resource-name}}",
6060
"dnsZonePrefix": "a1b22c333d44",
6161
"groupId": "managedInstance",
62-
"requestMessage": "please approve",
62+
"requestMessage": "please approve"
6363
}
6464
}
6565
```
@@ -96,15 +96,17 @@ For more information about connection properties, see [Create an Azure SQL Manag
9696

9797
Provide a path to the *create-pe.json* file if you've navigated away from the file location. You can type `dir` at the command line to confirm the file is in the current directory.
9898

99-
1. Press Enter to run the command.
99+
1. Run the command.
100100

101101
When you complete these steps, you should have a shared private link that's provisioned in a pending state. **It takes several minutes to create the link**. Once it's created, the resource owner needs to approve the request before it's operational.
102102

103+
You can check the status of the shared private link in the Azure portal. On your search service page, under **Settings** > **Properties**, scroll down to find the shared private link resources and view the JSON value. When the provisioning state changes from *pending* to *succeeded*, you can continue on to the next step.
104+
103105
## 4 - Approve the private endpoint connection
104106

105107
On the SQL Managed Instance side, the resource owner must approve the private connection request you created.
106108

107-
1. In the Azure portal, open the **Private endpoint connections** tab of the managed instance.
109+
1. In the Azure portal, open the **Security** > **Private endpoint connections** of the managed instance.
108110

109111
1. Find the section that lists the private endpoint connections.
110112

@@ -124,9 +126,11 @@ You can now configure an indexer and its data source to use an outbound private
124126

125127
This article assumes a [REST client](search-get-started-rest.md) and uses the REST APIs.
126128

127-
1. [Create the data source definition](search-how-to-index-sql-database.md) as you would normally for Azure SQL. By default, a managed instance listens on port 3342, but on a virtual network it listens on 1433.
129+
1. Get an ADO connection string for your SQL managed instance in the **VNet-local endpoint** syntax. By default, a managed instance listens on port 3342, but on a virtual network it listens on 1433.
130+
131+
1. [Create the data source definition](search-how-to-index-sql-database.md) as you would normally for Azure SQL.
128132

129-
Provide the connection string that you copied earlier with an Initial Catalog specified.
133+
Provide the connection string that you copied earlier with an Initial Catalog set to your database name.
130134

131135
```http
132136
POST https://myservice.search.windows.net/datasources?api-version=2024-07-01
@@ -151,7 +155,7 @@ This article assumes a [REST client](search-get-started-rest.md) and uses the RE
151155
152156
1. [Create the indexer definition](search-howto-create-indexers.md), setting the indexer `executionEnvironment` to "private".
153157
154-
[Indexer execution](search-howto-run-reset-indexers.md#indexer-execution-environment) occurs in either a private execution environment that's specific to your search service, or a multi-tenant environment hosted by Microsoft and used to offload expensive skillset processing for multiple customers. **When connecting over a private endpoint, indexer execution must be private.**
158+
[Indexer execution](search-howto-run-reset-indexers.md#indexer-execution-environment) occurs in either a private execution environment that's specific to your search service, or a multitenant environment hosted by Microsoft and used to offload expensive skillset processing for multiple customers. **When connecting over a private endpoint, indexer execution must be private.**
155159
156160
```http
157161
POST https://myservice.search.windows.net/indexers?api-version=2024-07-01

0 commit comments

Comments
 (0)