You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"Unable to connect to Azure AI Search service, which indicates either a network issue or a misconfiguration. You have AZURE_USE_PRIVATE_ENDPOINT enabled. Perhaps you're not yet connected to the VPN? Download the VPN configuration from the Azure portal here: %s",
401
+
os.getenv("AZURE_VPN_CONFIG_DOWNLOAD_LINK"),
402
+
)
403
+
else:
404
+
logger.error(
405
+
"Unable to connect to Azure AI Search service, which indicates either a network issue or a misconfiguration."
1. The exact number of private endpoints created depends on the [optional features](./deploy_features.md) used.
36
-
1.[Private DNS Zones](https://azure.microsoft.com/pricing/details/dns/)
34
+
*[Azure Container Registry](https://azure.microsoft.com/pricing/details/container-registry/): Premium tier is used when virtual network is added (required for private links), which incurs additional costs.
35
+
*[Azure Container Apps](https://azure.microsoft.com/pricing/details/container-apps/): Workload profiles environment is used when virtual network is added (required for private links), which incurs additional costs. Additionally, min replica count is set to 1, so you will be charged for at least one instance.
36
+
*[VPN Gateway](https://azure.microsoft.com/pricing/details/vpn-gateway/): VpnGw2 SKU. Pricing includes a base monthly cost plus an hourly cost based on the number of connections.
37
+
*[Virtual Network](https://azure.microsoft.com/pricing/details/virtual-network/): Pay-as-you-go tier. Costs based on data processed.
38
+
39
+
The pricing for the following features depends on the [optional features](./deploy_features.md) used. Most deployments will have at least 5 private endpoints (Azure OpenAI, Azure Cognitive Services, Azure AI Search, Azure Blob Storage, and either Azure App Service or Azure Container Apps).
40
+
41
+
*[Azure Private Endpoints](https://azure.microsoft.com/pricing/details/private-link/): Pricing is per hour per endpoint.
42
+
*[Private DNS Zones](https://azure.microsoft.com/pricing/details/dns/): Pricing is per month and zones.
43
+
*[Azure Private DNS Resolver](https://azure.microsoft.com/pricing/details/dns/): Pricing is per month and zones.
44
+
45
+
⚠️ To avoid unnecessary costs, remember to take down your app if it's no longer in use,
46
+
either by deleting the resource group in the Portal or running `azd down`.
47
+
You might also decide to delete the VPN Gateway when not in use.
48
+
49
+
## Recommended deployment strategy for private access
50
+
51
+
1. Configure the azd environment variables to use private endpoints and a VPN gateway, with public network access disabled. This will allow you to connect to the chat app from inside the virtual network, but not from the public Internet.
52
+
53
+
```shell
54
+
azd env set AZURE_USE_PRIVATE_ENDPOINT true
55
+
azd env set AZURE_USE_VPN_GATEWAY true
56
+
azd env set AZURE_PUBLIC_NETWORK_ACCESS Disabled
57
+
azd up
58
+
```
59
+
60
+
2. Provision all the Azure resources:
61
+
62
+
```bash
63
+
azd provision
64
+
```
65
+
66
+
3. Once provisioning is complete, you will see an error when it tries to run the data ingestion script, because you are not yet connected to the VPN. That message should provide a URL for the VPN configuration file download. If you don't see that URL, run this command:
67
+
68
+
```bash
69
+
azd env get-value AZURE_VPN_CONFIG_DOWNLOAD_LINK
70
+
```
71
+
72
+
Open that link in your browser. Select "Download VPN client" to download a ZIP file containing the VPN configuration.
73
+
74
+
4. Open `AzureVPN/azurevpnconfig.xml`, and replace the `<clientconfig>` empty tag with the following:
75
+
76
+
```xml
77
+
<clientconfig>
78
+
<dnsservers>
79
+
<dnsserver>10.0.11.4</dnsserver>
80
+
</dnsservers>
81
+
</clientconfig>
82
+
```
83
+
84
+
> **Note:** We use the IP address `10.0.11.4` since it is the first available IP in the `dns-resolver-subnet`(10.0.11.0/28) from the provisioned virtual network, as Azure reserves the first four IP addresses in each subnet. Adding this DNS server allows your VPN client to resolve private DNS names for Azure services accessed through private endpoints. See the network configuration in [network-isolation.bicep](../infra/network-isolation.bicep) for details.
85
+
86
+
5. Install the [Azure VPN Client](https://learn.microsoft.com/azure/vpn-gateway/azure-vpn-client-versions).
87
+
88
+
6. Open the Azure VPN Client and select "Import" button. Select the `azurevpnconfig.xml` file you just downloaded and modified.
89
+
90
+
7. Select "Connect" and the new VPN connection. You will be prompted to select your Microsoft account and login.
91
+
92
+
8. Once you're successfully connected to VPN, you can run the data ingestion script:
@@ -43,23 +109,8 @@ Deploying with public access disabled adds additional cost to your deployment. P
43
109
1. `AZURE_USE_PRIVATE_ENDPOINT`: Controls deployment of [private endpoints](https://learn.microsoft.com/azure/private-link/private-endpoint-overview) which connect Azure resources to the virtual network.
44
110
1. When set to 'true', ensures private endpoints are deployed for connectivity even when `AZURE_PUBLIC_NETWORK_ACCESS` is 'Disabled'.
45
111
1. Note that private endpoints do not make the chat app accessible from the internet. Connections must be initiated from inside the virtual network.
112
+
1. `AZURE_USE_VPN_GATEWAY`: Controls deployment of a VPN gateway for the virtual network. If you do not use this and public access is disabled, you will need a different way to connect to the virtual network.
46
113
47
-
## Recommended deployment strategy for private access
48
-
49
-
1. Deploy the app with private endpoints enabled and public access enabled.
50
-
51
-
```shell
52
-
azd env set AZURE_USE_PRIVATE_ENDPOINT true
53
-
azd env set AZURE_PUBLIC_NETWORK_ACCESS Enabled
54
-
azd up
55
-
```
56
-
57
-
1. Validate that you can connect to the chat app and it's working as expected from the internet.
58
-
1. Re-provision the app with public access disabled.
59
-
60
-
```shell
61
-
azd env set AZURE_PUBLIC_NETWORK_ACCESS Disabled
62
-
azd provision
63
-
```
114
+
## Compatibility with other features
64
115
65
-
1. Log into your network using a tool like [Azure VPN Gateway](https://azure.microsoft.com/services/vpn-gateway/) and validate that you can connect to the chat app from inside the network.
116
+
***GitHub Actions / Azure DevOps**: The private access deployment is not compatible with the built-in CI/CD pipelines, as it requires a VPN connection to deploy the app. You could modify the pipeline to only do provisioning, and set up a different deployment strategy for the app.
0 commit comments