About This Page
This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.
Bias Analysis
Bias Types:
⚠️
windows_first
⚠️
windows_tools
⚠️
missing_linux_example
Summary:
The documentation page exhibits a Windows-first bias by referencing Windows directory paths (e.g., D:\home\site\wwwroot) before Linux equivalents, and by describing deployment behaviors and manual steps (such as creating directories and files) only with Windows-style paths. There are no explicit Linux or cross-platform examples for manual deployment steps, and the documentation assumes familiarity with Windows filesystem conventions. Additionally, when discussing WebJobs and troubleshooting, only Windows paths are shown, and no Linux-specific instructions or examples are provided.
Recommendations:
- Provide Linux and cross-platform equivalents for all directory paths (e.g., /home/site/wwwroot) alongside Windows paths, especially in manual deployment steps and troubleshooting.
- Include explicit Linux/macOS examples or notes wherever file paths, directory creation, or file manipulation are discussed.
- When describing behaviors or manual steps (such as creating packagename.txt or deploying WebJobs), show both Windows and Linux paths and commands, or use cross-platform notation.
- Add a section or callouts for Linux-specific considerations, especially for file permissions and path differences.
- Review all examples and ensure parity between Windows and Linux environments, avoiding assumptions that users are on Windows.
Create pull request
Flagged Code Snippets
`WEBSITE_RUN_FROM_PACKAGE="1"` lets you run your app from a ZIP package local to your app. You can also [run from a remote package](#run-from-external-url-instead).
## Run the ZIP package
The easiest way to run a ZIP package in your App Service is with the Azure CLI [az webapp deployment source config-zip](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config-zip) command. For example:
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.
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.
## Run from external URL instead
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.
> [!NOTE]
> 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.
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: