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
Copy file name to clipboardExpand all lines: articles/app-service/configure-authentication-file-based.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
title: File-Based Configuration of AuthN/AuthZ
3
3
description: Configure authentication and authorization in App Service using a configuration file to enable certain preview capabilities.
4
4
ms.topic: how-to
5
-
ms.date: 07/15/2021
5
+
ms.date: 03/10/2026
6
6
ms.custom: AppServiceIdentity
7
7
author: cephalin
8
8
ms.author: cephalin
@@ -17,7 +17,7 @@ ms.service: azure-app-service
17
17
With [App Service authentication](overview-authentication-authorization.md), the authentication settings can be configured with a file. You may need to use file-based configuration to use certain preview capabilities of App Service authentication / authorization before they're exposed via [Azure Resource Manager](../azure-resource-manager/management/overview.md) APIs.
18
18
19
19
> [!IMPORTANT]
20
-
> Remember that your app payload, and therefore this file, may move between environments, as with [slots](./deploy-staging-slots.md). It is likely you would want a different app registration pinned to each slot, and in these cases, you should continue to use the standard configuration method instead of using the configuration file.
20
+
> Remember that your app payload, and therefore this file, may move between environments, as with [slots](./deploy-staging-slots.md). It's likely you'd want a different app registration pinned to each slot, and in these cases, you should continue to use the standard configuration method instead of using the configuration file.
21
21
22
22
## Enable file-based configuration
23
23
@@ -31,7 +31,7 @@ With [App Service authentication](overview-authentication-authorization.md), the
31
31
> [!NOTE]
32
32
> The format for `platform.configFilePath` varies between platforms. On Windows, both relative and absolute paths are supported. Relative is recommended. For Linux, only absolute paths are supported currently, so the value of the setting should be "/home/site/wwwroot/auth.json" or similar.
33
33
34
-
Once you have made this configuration update, the contents of the file will be used to define the behavior of App Service Authentication / Authorization for that site. If you ever wish to return to Azure Resource Manager configuration, you can do so by removing changing the setting `platform.configFilePath` to null.
34
+
Once you have made this configuration update, the contents of the file will be used to define the behavior of App Service Authentication / Authorization for that site. If you ever wish to return to Azure Resource Manager configuration, you can do so by changing the setting `platform.configFilePath` to null.
Copy file name to clipboardExpand all lines: articles/app-service/deploy-run-package.md
+10-11Lines changed: 10 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
title: Run Your App from a ZIP Package
3
3
description: Deploy your app's ZIP package with atomicity. Improve the predictability and reliability of your app's behavior during the ZIP deployment process.
4
4
ms.topic: how-to
5
-
ms.date: 09/30/2024
5
+
ms.date: 03/11/2026
6
6
author: cephalin
7
7
ms.author: cephalin
8
8
ms.service: azure-app-service
@@ -20,9 +20,9 @@ ms.service: azure-app-service
20
20
21
21
In [Azure App Service](overview.md), you can run your apps directly from a deployment ZIP package file. This article shows how to enable this functionality in your app.
22
22
23
-
All other deployment methods in App Service have something in common: your unzip files are deployed to *D:\home\site\wwwroot* in your app (or */home/site/wwwroot* for Linux apps). Since the same directory is used by your app at runtime, it's possible for deployment to fail because of file lock conflicts, and for the app to behave unpredictably because some of the files are not yet updated. To enable this setting, you do not need to assign any value to the `WEBSITE_RUN_FROM_PACKAGE` variable or you can remove it entirely.
23
+
All other deployment methods in App Service have something in common, which is your unzip files are deployed to *D:\home\site\wwwroot* in your app (or */home/site/wwwroot* for Linux apps). Since the same directory is used by your app at runtime, it's possible for deployment to fail because of file lock conflicts, and for the app to behave unpredictably because some of the files aren't yet updated. To enable this setting, you don't need to assign any value to the `WEBSITE_RUN_FROM_PACKAGE` variable, or you can remove it entirely.
24
24
25
-
In contrast, when you run directly from a ZIP package, the files in the package are not copied to the *wwwroot* directory. Instead, the ZIP package itself gets mounted directly as the read-only *wwwroot* directory. To enable this setting, set `WEBSITE_RUN_FROM_PACKAGE`=1 or provide the URL of the ZIP file. There are several benefits to running directly from a package:
25
+
In contrast, when you run directly from a ZIP package, the files in the package aren't copied to the *wwwroot* directory. Instead, the ZIP package itself gets mounted directly as the read-only *wwwroot* directory. To enable this setting, set `WEBSITE_RUN_FROM_PACKAGE`=1 or provide the URL of the ZIP file. There are several benefits to running directly from a package:
26
26
27
27
- Eliminates file lock conflicts between deployment and runtime.
28
28
- Ensures only full-deployed apps are running at any time.
@@ -53,16 +53,16 @@ The easiest way to run a ZIP package in your App Service is with the Azure CLI [
53
53
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <filename>.zip
54
54
```
55
55
56
-
Because the `WEBSITE_RUN_FROM_PACKAGE` app setting is set, this command doesn't extract the ZIP package content to the *D:\home\site\wwwroot* directory of your app. Instead, it uploads the ZIP file as-is to *D:\home\data\SitePackages*, and creates a *packagename.txt* in the same directory, that contains the name of the ZIP package to load at runtime. If you upload your ZIP package in a different way (such as [FTP](deploy-ftp.md)), you need to create the *D:\home\data\SitePackages* directory and the *packagename.txt* file manually.
56
+
Because the `WEBSITE_RUN_FROM_PACKAGE` app setting is set, this command doesn't extract the ZIP package content to the *D:\home\site\wwwroot* directory of your app. Instead, it uploads the ZIP file as-is to *D:\home\data\SitePackages*, and it creates a *packagename.txt* in the same directory that contains the name of the ZIP package to load at runtime. If you upload your ZIP package in a different way (such as [FTP](deploy-ftp.md)), you need to create the *D:\home\data\SitePackages* directory and the *packagename.txt* file manually.
57
57
58
58
The command also restarts the app. Because `WEBSITE_RUN_FROM_PACKAGE` is set, App Service mounts the uploaded package as the read-only *wwwroot* directory and runs the app directly from that mounted directory.
59
59
60
60
## Run from external URL instead
61
61
62
-
You can also run a ZIP package from an external URL, such as Azure Blob Storage. You can use the [Azure Storage Explorer](../vs-azure-tools-storage-manage-with-storage-explorer.md) to upload ZIP package files to your Blob storage account. You should use a private storage container with a [Shared Access Signature (SAS)](../vs-azure-tools-storage-manage-with-storage-explorer.md#generate-a-sas-in-storage-explorer) or [use a managed identity](#access-a-package-in-azure-blob-storage-using-a-managed-identity) to enable the App Service runtime to access the ZIP package securely.
62
+
You can also run a ZIP package from an external URL, such as Azure Blob Storage. You can use the [Azure Storage Explorer](/azure/storage/storage-explorer/vs-azure-tools-storage-manage-with-storage-explorer) to upload ZIP package files to your Blob storage account. You should use a private storage container with a [Shared Access Signature (SAS)](/azure/storage/storage-explorer/vs-azure-tools-storage-manage-with-storage-explorer#generate-a-sas-in-storage-explorer) or [use a managed identity](#access-a-package-in-azure-blob-storage-using-a-managed-identity) to enable the App Service runtime to access the ZIP package securely.
63
63
64
64
> [!NOTE]
65
-
> Currently, an existing App Service resource that runs a local ZIP package cannot be migrated to run from a remote ZIP package. You will have to create a new App Service resource configured to run from an external URL.
65
+
> Currently, an existing App Service resource that runs a local ZIP package can't be migrated to run from a remote ZIP package. You'll have to create a new App Service resource configured to run from an external URL.
66
66
67
67
Once you upload your file to Blob storage and have an SAS URL for the file, set the `WEBSITE_RUN_FROM_PACKAGE` app setting to the URL. Make sure the URL ends with `.zip`. The following example does it by using Azure CLI:
68
68
@@ -80,9 +80,8 @@ If you publish an updated package with the same name to Blob storage, you need t
80
80
81
81
There are two ways to deploy [WebJob](webjobs-create.md) files when you [enable running an app from package](#enable-running-from-zip-package):
82
82
83
-
84
-
- Deploy in the same ZIP package as your app: include them as you normally would in `<project-root>\app_data\jobs\...` (which maps to the deployment path `\site\wwwroot\app_data\jobs\...` as specified in the [WebJobs quickstart](webjobs-create.md#webjob-types)).
85
-
- Deploy separately from the ZIP package of your app: Since the usual deployment path `\site\wwwroot\app_data\jobs\...` is now read-only, you can't deploy WebJob files there. Instead, deploy WebJob files to `\site\jobs\...`, which is not read only. WebJobs deployed to `\site\wwwroot\app_data\jobs\...` and `\site\jobs\...` both run.
83
+
-**Deploy in the same ZIP package as your app**: Include them as you normally would in `<project-root>\app_data\jobs\...` (which maps to the deployment path `\site\wwwroot\app_data\jobs\...` as specified in the [WebJobs quickstart](webjobs-create.md#webjob-types)).
84
+
-**Deploy separately from the ZIP package of your app**: Since the usual deployment path `\site\wwwroot\app_data\jobs\...` is now read-only, you can't deploy WebJob files there. Instead, deploy WebJob files to `\site\jobs\...`, which isn't read only. WebJobs deployed to `\site\wwwroot\app_data\jobs\...` and `\site\jobs\...` both run.
86
85
87
86
> [!NOTE]
88
87
> When `\site\wwwroot` becomes read-only, operations like the creation of the *disable.job* will fail.
@@ -91,8 +90,8 @@ There are two ways to deploy [WebJob](webjobs-create.md) files when you [enable
91
90
92
91
- Running directly from a package makes `wwwroot` read-only. Your app will receive an error if it tries to write files to this directory.
93
92
- TAR and GZIP formats are not supported.
94
-
- The ZIP file can be at most 1GB
95
-
- This feature is not compatible with [local cache](overview-local-cache.md).
93
+
- The ZIP file can be at most 1 GB.
94
+
- This feature isn't compatible with [local cache](overview-local-cache.md).
96
95
- For improved cold-start performance, use the local Zip option (`WEBSITE_RUN_FROM_PACKAGE`=1).
Copy file name to clipboardExpand all lines: articles/app-service/deploy-zip.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Learn to deploy app packages, discrete libraries, static files, or
4
4
author: cephalin
5
5
ms.author: cephalin
6
6
ms.topic: how-to
7
-
ms.date: 01/24/2025
7
+
ms.date: 03/11/2026
8
8
ms.custom: devx-track-azurecli
9
9
10
10
#customer intent: As a web app developer, I want to deploy my Azure App Service code as a ZIP, WAR, JAR, or EAR package or deploy individual files.
@@ -36,17 +36,17 @@ This ZIP package deployment uses the same Kudu service that powers continuous in
36
36
- A package size limit of 2,048 megabytes
37
37
38
38
> [!NOTE]
39
-
> Files in the ZIP package are copied only if their timestamps don't match what is already deployed.
39
+
> Files in the ZIP package are copied only if their timestamps don't match what's already deployed.
40
40
41
41
### Deploy with ZIP deploy UI in Kudu
42
42
43
43
1. Open your app in the Azure portal and select **Development Tools** > **Advanced Tools**, then select **Go**.
44
44
1. In Kudu, select **Tools** > **Zip Push Deploy**.
45
-
1. Upload the ZIP package you created in [Create a project ZIP package](#create-a-project-zip-package). Drag it to the file explorer area on the web page.
45
+
1. Upload the ZIP package you created in [Create a project ZIP package](/azure/app-service/deploy-zip#create-a-project-zip-package). Drag it to the file explorer area on the web page.
46
46
47
47
When deployment is in progress, an icon in the top right corner shows you the progress percentage. The page also displays messages for the operation below the **File Explorer** area. When deployment finishes, the last message should say "Deployment successful."
48
48
49
-
This endpoint doesn't work for App Service on Linux at this time. Consider using FTP or the [ZIP deploy API](./faq-app-service-linux.yml) instead.
49
+
This endpoint doesn't work for App Service on Linux at this time. Consider using FTP or the [ZIP deploy API](/troubleshoot/azure/app-service/faqs-app-service-linux-new) instead.
50
50
51
51
### Deploy without ZIP deploy UI in Kudu
52
52
@@ -109,7 +109,7 @@ az webapp config appsettings set --resource-group <group-name> --name <app-name>
109
109
110
110
For more information, see [Kudu documentation](https://github.com/projectkudu/kudu/wiki/Deploying-from-a-zip-file-or-url).
111
111
112
-
## <aname = "deploy-warjarear-packages"></a>Deploy WAR, JAR, or EAR packages
112
+
## <aname = "deploy-warjarear-packages"></a>Deploy WAR, JAR, or EAR packages
113
113
114
114
You can deploy your [WAR](https://wikipedia.org/wiki/WAR_(file_format)), [JAR](https://wikipedia.org/wiki/JAR_(file_format)), or [EAR](https://wikipedia.org/wiki/EAR_(file_format)) package to App Service to run your Java web app by using the Azure CLI, PowerShell, or Kudu publish API.
115
115
@@ -221,7 +221,7 @@ curl -X POST \
221
221
> [!NOTE]
222
222
> Get the Kudu URL from the Azure portal: open your app and select **Development Tools** > **Advanced Tools**, then select **Go** to open the Kudu URL.
223
223
224
-
###Deploy a library file
224
+
## Deploy a library file
225
225
226
226
The following example uses the cURL tool to deploy a library file for the application. Replace the placeholder *\<lib-file-path>*. If you choose basic authentication, supply the [deployment credentials](deploy-configure-credentials.md) in *\<username>* and *\<password>*.
227
227
@@ -244,7 +244,7 @@ curl -X POST \
244
244
> [!NOTE]
245
245
> Get the Kudu URL from the Azure portal: open your app and select **Development Tools** > **Advanced Tools**, then select **Go** to open the Kudu URL.
246
246
247
-
###Deploy a static file
247
+
## Deploy a static file
248
248
249
249
The following example uses the cURL tool to deploy a config file for the application. Replace the placeholder *\<config-file-path>*. If you choose basic authentication, supply the [deployment credentials](deploy-configure-credentials.md) in *\<username>* and *\<password>*.
250
250
@@ -341,8 +341,8 @@ Add the following JSON to your ARM template. Replace the placeholder *\<app-name
341
341
342
342
Use the following reference to help you configure the properties:
343
343
344
-
|Property | Description | Required |
345
-
|-|-|-|
344
+
|Property | Description | Required |
345
+
| - | - | - |
346
346
|`packageUri`| The URI of the package or file. For more information, see [Microsoft.Web sites/extensions 'onedeploy'](/azure/templates/microsoft.web/2021-03-01/sites/extensions-onedeploy?pivots=deployment-language-arm-template). | Yes |
347
347
|`type`| See the `type` parameter in [Kudu publish API reference](#kudu-publish-api-reference). | Yes |
348
348
|`path`| See the `path` parameter in [Kudu publish API reference](#kudu-publish-api-reference). | No |
@@ -355,8 +355,8 @@ The `publish` Kudu API allows you to specify the same parameters from the CLI co
355
355
356
356
The following table shows the available query parameters, their allowed values, and descriptions.
| `type` | `war`\|`jar`\|`ear`\|`lib`\|`startup`\|`static`\|`zip` | This is the type of the artifact being deployed. It sets the default target path and informs the web app how the deployment should be handled. <br/><br/> `type=zip`: Deploy a ZIP package by unzipping the content to `/home/site/wwwroot`. `path` parameter is optional. <br/><br/> `type=war`: Deploy a WAR package. By default, the WAR package is deployed to `/home/site/wwwroot/app.war`. The target path can be specified with `path`. <br/><br/> `type=jar`: Deploy a JAR package to `/home/site/wwwroot/app.jar`. The `path` parameter is ignored. <br/><br/> `type=ear`: Deploy an EAR package to `/home/site/wwwroot/app.ear`. The `path` parameter is ignored. <br/><br/> `type=lib`: Deploy a JAR library file. By default, the file is deployed to `/home/site/libs`. The target path can be specified with `path`. <br/><br/> `type=static`: Deploy a static file, such as a script. By default, the file is deployed to `/home/site/wwwroot`. <br/><br/> `type=startup`: Deploy a script that App Service automatically uses as the startup script for your app. By default, the script is deployed to `D:\home\site\scripts\<name-of-source>` for Windows and `home/site/wwwroot/startup.sh` for Linux. The target path can be specified with `path`. | Yes | String |
361
361
|`restart`|`true`\|`false`| By default, the API restarts the app following the deployment operation (`restart=true`). When you deploy multiple artifacts, you can prevent restarts on all but the final deployment by setting `restart=false`. | No | Boolean |
362
362
|`clean`|`true`\|`false`| Specifies whether to clean (delete) the target deployment before deploying the artifact there. | No | Boolean |
@@ -367,5 +367,5 @@ The following table shows the available query parameters, their allowed values,
367
367
368
368
For more advanced deployment scenarios, try [deploying to Azure with Git](deploy-local-git.md). Git-based deployment to Azure enables version control, package restore, MSBuild, and more.
369
369
370
-
-[Kudu: Deploying from a zip file](https://github.com/projectkudu/kudu/wiki/Deploying-from-a-zip-file)
370
+
-[Kudu: Deploying from a zip file](https://github.com/projectkudu/kudu/wiki/Deploying-from-a-zip-file-or-url)
371
371
-[Environment variables and app settings reference](reference-app-settings.md)
0 commit comments