|
| 1 | +--- |
| 2 | +title: How to configure Azure Functions with a virtual network |
| 3 | +description: Article that shows you how to perform certain virtual networking tasks for Azure Functions. |
| 4 | +ms.topic: conceptual |
| 5 | +ms.date: 3/13/2021 |
| 6 | +ms.custom: template-how-to #Required; leave this attribute/value as-is. |
| 7 | +--- |
| 8 | + |
| 9 | +# Creating a Function App with Identity Based Connections |
| 10 | + |
| 11 | +This article shows you how to configure your function app to use identity based connections instead of connection strings. To learn more about identity based connections, see [Configure an identity-based connection.](functions-reference.md#configure-an-identity-based-connection). |
| 12 | + |
| 13 | +## Restrict your storage account to a virtual network |
| 14 | + |
| 15 | +When you create a function app, you must create or link to a general-purpose Azure Storage account that supports Blob, Queue, and Table storage. You can replace this storage account with one that is secured with service endpoints or private endpoint. |
| 16 | + |
| 17 | +> [!NOTE] |
| 18 | +> This feature currently works for all Windows virtual network-supported SKUs in the Dedicated (App Service) plan and for Premium plans. Consumption plan isn't supported. |
| 19 | +
|
| 20 | +To set up a function with a storage account restricted to a private network: |
| 21 | + |
| 22 | +1. Create a function with a storage account that does not have service endpoints enabled. |
| 23 | + |
| 24 | +1. Configure the function to connect to your virtual network. |
| 25 | + |
| 26 | +1. Create or configure a different storage account. This will be the storage account we secure with service endpoints and connect our function. |
| 27 | + |
| 28 | +1. [Create a file share](../storage/files/storage-how-to-create-file-share.md#create-a-file-share) in the secured storage account. |
| 29 | + |
| 30 | +1. Enable service endpoints or private endpoint for the storage account. |
| 31 | + * If using private endpoint connections, the storage account will need a private endpoint for the `file` and `blob` sub-resources. If using certain capabilities like Durable Functions, you will also need `queue` and `table` accessible through a private endpoint connection. |
| 32 | + * If using service endpoints, enable the subnet dedicated to your function apps for storage accounts. |
| 33 | + |
| 34 | +1. Copy the file and blob content from the function app storage account to the secured storage account and file share. |
| 35 | + |
| 36 | +1. Copy the connection string for this storage account. |
| 37 | + |
| 38 | +1. Update the **Application Settings** under **Configuration** for the function app to the following: |
| 39 | + |
| 40 | + | Setting name | Value | Comment | |
| 41 | + |----|----|----| |
| 42 | + | `AzureWebJobsStorage`| Storage connection string | This is the connection string for a secured storage account. | |
| 43 | + | `WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` | Storage connection string | This is the connection string for a secured storage account. | |
| 44 | + | `WEBSITE_CONTENTSHARE` | File share | The name of the file share created in the secured storage account where the project deployment files reside. | |
| 45 | + | `WEBSITE_CONTENTOVERVNET` | 1 | New setting | |
| 46 | + | `WEBSITE_VNET_ROUTE_ALL` | 1 | Forces all outbound traffic through the virtual network. Required when the storage account is using private endpoint connections. | |
| 47 | + | `WEBSITE_DNS_SERVER` | `168.63.129.16` | The DNS server used by the app. Required when the storage account is using private endpoint connections. | |
| 48 | + |
| 49 | +1. Select **Save** to save the application settings. Changing app settings causes the app to restart. |
| 50 | + |
| 51 | +After the function app restarts, it's now connected to a secured storage account. |
| 52 | + |
| 53 | +## Next steps |
| 54 | + |
| 55 | +> [!div class="nextstepaction"] |
| 56 | +> [Azure Functions networking options](functions-networking-options.md) |
| 57 | +
|
0 commit comments