Skip to content

Commit 3062242

Browse files
Merge pull request #314667 from MicrosoftDocs/main
Auto Publish – main to live - 2026-04-13 22:00 UTC
2 parents 3aeabe9 + b13d8df commit 3062242

69 files changed

Lines changed: 1158 additions & 573 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

articles/app-service/configure-authentication-file-based.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: File-Based Configuration of AuthN/AuthZ
33
description: Configure authentication and authorization in App Service using a configuration file to enable certain preview capabilities.
44
ms.topic: how-to
5-
ms.date: 07/15/2021
5+
ms.date: 03/10/2026
66
ms.custom: AppServiceIdentity
77
author: cephalin
88
ms.author: cephalin
@@ -17,7 +17,7 @@ ms.service: azure-app-service
1717
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.
1818

1919
> [!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.
2121
2222
## Enable file-based configuration
2323

@@ -31,7 +31,7 @@ With [App Service authentication](overview-authentication-authorization.md), the
3131
> [!NOTE]
3232
> 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.
3333
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.
3535

3636
## Configuration file reference
3737

articles/app-service/configure-custom-container.md

Lines changed: 55 additions & 39 deletions
Large diffs are not rendered by default.

articles/app-service/deploy-run-package.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Run Your App from a ZIP Package
33
description: Deploy your app's ZIP package with atomicity. Improve the predictability and reliability of your app's behavior during the ZIP deployment process.
44
ms.topic: how-to
5-
ms.date: 09/30/2024
5+
ms.date: 03/11/2026
66
author: cephalin
77
ms.author: cephalin
88
ms.service: azure-app-service
@@ -20,9 +20,9 @@ ms.service: azure-app-service
2020
2121
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.
2222

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.
2424

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:
2626

2727
- Eliminates file lock conflicts between deployment and runtime.
2828
- 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 [
5353
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <filename>.zip
5454
```
5555

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.
5757

5858
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.
5959

6060
## Run from external URL instead
6161

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.
6363

6464
> [!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.
6666
6767
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:
6868

@@ -80,9 +80,8 @@ If you publish an updated package with the same name to Blob storage, you need t
8080

8181
There are two ways to deploy [WebJob](webjobs-create.md) files when you [enable running an app from package](#enable-running-from-zip-package):
8282

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.
8685

8786
> [!NOTE]
8887
> 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
9190

9291
- Running directly from a package makes `wwwroot` read-only. Your app will receive an error if it tries to write files to this directory.
9392
- 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).
9695
- For improved cold-start performance, use the local Zip option (`WEBSITE_RUN_FROM_PACKAGE`=1).
9796

9897
## Related content

articles/app-service/deploy-zip.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn to deploy app packages, discrete libraries, static files, or
44
author: cephalin
55
ms.author: cephalin
66
ms.topic: how-to
7-
ms.date: 01/24/2025
7+
ms.date: 03/11/2026
88
ms.custom: devx-track-azurecli
99

1010
#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
3636
- A package size limit of 2,048 megabytes
3737

3838
> [!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.
4040
4141
### Deploy with ZIP deploy UI in Kudu
4242

4343
1. Open your app in the Azure portal and select **Development Tools** > **Advanced Tools**, then select **Go**.
4444
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.
4646

4747
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."
4848

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.
5050

5151
### Deploy without ZIP deploy UI in Kudu
5252

@@ -109,7 +109,7 @@ az webapp config appsettings set --resource-group <group-name> --name <app-name>
109109

110110
For more information, see [Kudu documentation](https://github.com/projectkudu/kudu/wiki/Deploying-from-a-zip-file-or-url).
111111

112-
## <a name = "deploy-warjarear-packages"></a> Deploy WAR, JAR, or EAR packages
112+
## <a name = "deploy-warjarear-packages"></a>Deploy WAR, JAR, or EAR packages
113113

114114
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.
115115

@@ -221,7 +221,7 @@ curl -X POST \
221221
> [!NOTE]
222222
> 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.
223223
224-
### Deploy a library file
224+
## Deploy a library file
225225

226226
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>*.
227227

@@ -244,7 +244,7 @@ curl -X POST \
244244
> [!NOTE]
245245
> 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.
246246
247-
### Deploy a static file
247+
## Deploy a static file
248248

249249
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>*.
250250

@@ -341,8 +341,8 @@ Add the following JSON to your ARM template. Replace the placeholder *\<app-name
341341
342342
Use the following reference to help you configure the properties:
343343

344-
|Property | Description | Required |
345-
|-|-|-|
344+
| Property | Description | Required |
345+
| - | - | - |
346346
| `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 |
347347
| `type` | See the `type` parameter in [Kudu publish API reference](#kudu-publish-api-reference). | Yes |
348348
| `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
355355

356356
The following table shows the available query parameters, their allowed values, and descriptions.
357357

358-
| Key | Allowed values | Description | Required | Type |
359-
|-|-|-|-|-|
358+
| Key | Allowed values | Description | Required | Type |
359+
| - | - | - | - | - |
360360
| `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 |
361361
| `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 |
362362
| `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,
367367

368368
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.
369369

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)
371371
- [Environment variables and app settings reference](reference-app-settings.md)

0 commit comments

Comments
 (0)