Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…into nw-vpn-cli
halkazwini committed Jan 29, 2025

Verified

This commit was signed with the committer’s verified signature.
dylanhand Dylan Hand
2 parents 38e6248 + 8284d61 commit 517c537
Showing 373 changed files with 8,455 additions and 2,218 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions articles/active-directory-b2c/service-limits.md
Original file line number Diff line number Diff line change
@@ -221,6 +221,10 @@ As a protection for our customers, Microsoft places some restrictions on telepho
| 993 | Turkmenistan | 10 | 30 |
| 256 | Uganda | 20 | 100 |
| 212 | Moroccoa | 20 | 100 |
| 856 | Laos | 50 | 200 |
| 224 | Guinea | 20 | 100 |
| 992 | Tajikistan | 10 | 30 |
| 238 | Cape Verde | 10 | 30 |

## Next steps

41 changes: 40 additions & 1 deletion articles/app-service/configure-language-java-deploy-run.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ description: Learn how to deploy Tomcat, JBoss, or Java SE apps to run on Azure
keywords: azure app service, web app, windows, oss, java, tomcat, jboss, spring boot, quarkus
ms.devlang: java
ms.topic: article
ms.date: 07/17/2024
ms.date: 01/28/2025
ms.custom: devx-track-java, devx-track-azurecli, devx-track-extended-java, linux-related-content
zone_pivot_groups: app-service-java-hosting
adobe-target: true
@@ -34,6 +34,45 @@ To show all supported Java versions, run the following command in the [Cloud She
az webapp list-runtimes --os linux | grep "JAVA\|TOMCAT\|JBOSSEAP"
```

### Get Java version in Linux container

For more detailed version information in the Linux container, [open an SSH session with the container](configure-linux-open-ssh-session.md?pivots=container-linux). Here are a few examples of what you can run.

::: zone pivot="java-javase,java-tomcat,java-jboss"

To view the Java version in the SSH session:

```bash
java -version
```

::: zone-end

::: zone pivot="java-tomcat"

To view the Tomcat server version in the SSH session:

```bash
sh /usr/local/tomcat/version.sh
```

Or, if your Tomcat server is in a custom location, find `version.sh` with:

```bash
find / -name "version.sh"
```

::: zone-end

::: zone pivot="java-jboss"

To view the JBoss server version in the SSH session:
```bash
$JBOSS_HOME/bin/jboss-cli.sh --connect --commands=:product-info
```

::: zone-end

# [Windows](#tab/windows)

To show the current Java version, run the following command in the [Cloud Shell](https://shell.azure.com):
14 changes: 8 additions & 6 deletions articles/app-service/configure-language-python.md
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ This article describes how [Azure App Service](overview.md) runs Python apps, ho

The App Service deployment engine automatically activates a virtual environment and runs `pip install -r requirements.txt` for you when you deploy a [Git repository](deploy-local-git.md), or when you deploy a [zip package](deploy-zip.md) [with build automation enabled](deploy-zip.md#enable-build-automation-for-zip-deploy).

This guide provides key concepts and instructions for Python developers who use a built-in Linux container in App Service. If you've never used Azure App Service, first follow the [Python quickstart](quickstart-python.md) and [Python with PostgreSQL tutorial](tutorial-python-postgresql-app.md).
This guide provides key concepts and instructions for Python developers who use a built-in Linux container in App Service. If you've never used Azure App Service, first follow the [Python quickstart](quickstart-python.md) and [Flask](tutorial-python-postgresql-app-flask.md), [Django](tutorial-python-postgresql-app-django.md), or [FastAPI](tutorial-python-postgresql-app-fastapi.md) with PostgreSQL tutorial.

You can use either the [Azure portal](https://portal.azure.com) or the Azure CLI for configuration:

@@ -105,17 +105,17 @@ Existing web applications can be redeployed to Azure as follows:
1. **Database**: If your app depends on a database, create the necessary resources on Azure as well.
1. **App service resources**: Create a resource group, App Service plan, and App Service web app to host your application. You can do this easily by running the Azure CLI command [`az webapp up`](/cli/azure/webapp#az-webapp-up). Or, you can create and deploy resources as shown in [Tutorial: Deploy a Python (Django or Flask) web app with PostgreSQL](tutorial-python-postgresql-app.md). Replace the names of the resource group, App Service plan, and web app to be more suitable for your application.
1. **App service resources**: Create a resource group, App Service plan, and App Service web app to host your application. You can do this easily by running the Azure CLI command [`az webapp up`](/cli/azure/webapp#az-webapp-up). Or, you can create and deploy resources as shown in the [Flask](tutorial-python-postgresql-app-flask.md), [Django](tutorial-python-postgresql-app-django.md), or [FastAPI](tutorial-python-postgresql-app-fastapi.md) with PostgreSQL tutorial. Replace the names of the resource group, App Service plan, and web app to be more suitable for your application.
1. **Environment variables**: If your application requires any environment variables, create equivalent [App Service application settings](configure-common.md#configure-app-settings). These App Service settings appear to your code as environment variables, as described in [Access environment variables](#access-app-settings-as-environment-variables).
- Database connections, for example, are often managed through such settings, as shown in [Tutorial: Deploy a Django web app with PostgreSQL - verify connection settings](tutorial-python-postgresql-app.md#2-secure-connection-secrets).
- Database connections, for example, are often managed through such settings, as shown in [Tutorial: Deploy a Django web app with PostgreSQL - verify connection settings](tutorial-python-postgresql-app-django.md#3-secure-connection-secrets-and-add-secret_key).
- See [Production settings for Django apps](#production-settings-for-django-apps) for specific settings for typical Django apps.
1. **App startup**: Review the section [Container startup process](#container-startup-process) later in this article to understand how App Service attempts to run your app. App Service uses the Gunicorn web server by default, which must be able to find your app object or *wsgi.py* folder. If you need to, you can [Customize the startup command](#customize-startup-command).
1. **Continuous deployment**: Set up continuous deployment from GitHub Actions, Bitbucket, or Azure Repos as described in the article [Continuous deployment to Azure App Service](deploy-continuous-deployment.md). Or, set up continuous deployment from Local Git as described in the article [Local Git deployment to Azure App Service](deploy-local-git.md).
1. **Custom actions**: To perform actions within the App Service container that hosts your app, such as Django database migrations, you can [connect to the container through SSH](configure-linux-open-ssh-session.md). For an example of running Django database migrations, see [Tutorial: Deploy a Django web app with PostgreSQL - generate database schema](tutorial-python-postgresql-app.md#4-generate-database-schema).
1. **Custom actions**: To perform actions within the App Service container that hosts your app, such as Django database migrations, you can [connect to the container through SSH](configure-linux-open-ssh-session.md). For an example of running Django database migrations, see [Tutorial: Deploy a Django web app with PostgreSQL - generate database schema](tutorial-python-postgresql-app-django.md#4-generate-database-schema).
- When using continuous deployment, you can perform those actions using post-build commands as described earlier under [Customize build automation](#customize-build-automation).
With these steps completed, you should be able to commit changes to your source repository and have those updates automatically deployed to App Service.
@@ -430,7 +430,7 @@ When attempting to run database migrations with a Django app, you might see "sql

Check the `DATABASES` variable in the app's *settings.py* file to ensure that your app is using a cloud database instead of SQLite.

If you're encountering this error with the sample in [Tutorial: Deploy a Django web app with PostgreSQL](tutorial-python-postgresql-app.md), check that you completed the steps in [Verify connection settings](tutorial-python-postgresql-app.md#2-secure-connection-secrets).
If you're encountering this error with the sample in [Tutorial: Deploy a Django web app with PostgreSQL](tutorial-python-postgresql-app-django.md), check that you completed the steps in [Verify connection settings](tutorial-python-postgresql-app-django.md#3-secure-connection-secrets-and-add-secret_key).

#### Other issues

@@ -444,7 +444,9 @@ If you're encountering this error with the sample in [Tutorial: Deploy a Django

## Related content

- [Tutorial: Python app with PostgreSQL](tutorial-python-postgresql-app.md)
- [Tutorial: Flask app with PostgreSQL](tutorial-python-postgresql-app-flask.md)
- [Tutorial: Django app with PostgreSQL](tutorial-python-postgresql-app-django.md)
- [Tutorial: FastAPI app with PostgreSQL](tutorial-python-postgresql-app-fastapi.md)
- [Tutorial: Deploy from private container repository](tutorial-custom-container.md?pivots=container-linux)
- [App Service on Linux FAQ](faq-app-service-linux.yml)
- [Environment variables and app settings reference](reference-app-settings.md)
47 changes: 28 additions & 19 deletions articles/app-service/configure-linux-open-ssh-session.md
Original file line number Diff line number Diff line change
@@ -6,46 +6,46 @@ author: msangapu-msft

ms.assetid: 66f9988f-8ffa-414a-9137-3a9b15a5573c
ms.topic: article
ms.date: 10/13/2023
ms.date: 01/28/2025
ms.author: msangapu
ms.custom: devx-track-azurecli, linux-related-content
zone_pivot_groups: app-service-containers-windows-linux
---
# Open an SSH session to a container in Azure App Service

[Secure Shell (SSH)](https://wikipedia.org/wiki/Secure_Shell) can be used to execute administrative commands remotely to a Container. App Service provides SSH support direct into an app hosted in a Container.

::: zone pivot="container-windows"

## Open SSH session in browser
[Secure Shell (SSH)](https://wikipedia.org/wiki/Secure_Shell) can be used to execute administrative commands remotely to a container. App Service provides SSH support directly into an app hosted in a Windows custom container.

[!INCLUDE [Open SSH session in browser](../../includes/app-service-web-ssh-connect-no-h.md)]
Windows custom containers don't require any special settings for the [browser SSH session](#open-ssh-session-in-browser) to work. SSH sessions through Azure CLI are not supported.

![Linux App Service SSH](./media/configure-linux-open-ssh-session/app-service-linux-ssh.png)

::: zone-end

::: zone pivot="container-linux"

[Secure Shell (SSH)](https://wikipedia.org/wiki/Secure_Shell) can be used to execute administrative commands remotely to a container. App Service provides SSH support directly into an app hosted in a Linux container (built-in or custom).

The built-in Linux containers already have the necessary configuration to enable SSH sessions. Linux custom containers require additional configurations to enable SSH sessions. See [Enable SSH](configure-custom-container.md?pivots=container-linux#enable-ssh).

![Linux App Service SSH](./media/configure-linux-open-ssh-session/app-service-linux-ssh.png)

You can also connect to the container directly from your local development machine using SSH and SFTP.

::: zone-end

## Open SSH session in browser

[!INCLUDE [Open SSH session in browser](../../includes/app-service-web-ssh-connect-no-h.md)]

## Use SSH support with custom Docker images

See [Configure SSH in a custom container](configure-custom-container.md#enable-ssh).

## Open SSH session from remote shell
::: zone pivot="container-linux"

> [!NOTE]
> This feature is currently in Preview.
>
## Open SSH session with Azure CLI

Using TCP tunneling you can create a network connection between your development machine and Web App for Containers over an authenticated WebSocket connection. It enables you to open an SSH session with your container running in App Service from the client of your choice.
Using TCP tunneling you can create a network connection between your development machine and Linux containers over an authenticated WebSocket connection. It enables you to open an SSH session with your container running in App Service from the client of your choice.

To get started, you need to install [Azure CLI](/cli/azure/install-azure-cli). To see how it works without installing Azure CLI, open [Azure Cloud Shell](../cloud-shell/overview.md).
To get started, you need to install [Azure CLI](/cli/azure/install-azure-cli). To see how it works without installing Azure CLI, open [Azure Cloud Shell](../cloud-shell/overview.md).

Open a remote connection to your app using the [az webapp create-remote-connection](/cli/azure/webapp#az-webapp-create-remote-connection) command. Specify _\<subscription-id>_, _\<group-name>_ and _\<app-name>_ for your app.

@@ -66,15 +66,24 @@ az webapp create-remote-connection --subscription <subscription-id> --resource-g
The command output gives you the information you need to open an SSH session.
```output
Port 21382 is open
Verifying if app is running....
App is running. Trying to establish tunnel connection...
Opening tunnel on addr: 127.0.0.1
Opening tunnel on port: <port-output>
SSH is available { username: root, password: Docker! }
Start your favorite client and connect to port 21382
Ctrl + C to close
```
Open an SSH session with your container with the client of your choice, using the local port. The following example uses the default [ssh](https://ss64.com/bash/ssh.html) command:
Open an SSH session with your container with the client of your choice, using the local port provided in the output (`<port-output>`). For example, with the linux [ssh](https://ss64.com/bash/ssh.html) command, you can run a single command like `java -version`:

```bash
ssh [email protected] -m hmac-sha1 -p <port-output> java -version
```
Or, to enter a full SSH session, just run:

```bash
ssh [email protected] -p <port>
ssh [email protected] -m hmac-sha1 -p <port-output>
```

When being prompted, type `yes` to continue connecting. You are then prompted for the password. Use `Docker!`, which was shown to you earlier.
2 changes: 1 addition & 1 deletion articles/app-service/getting-started.md
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@ Use the following resources to get started with Python.
| **Deploy your app** | - [Configure Python](configure-language-python.md)<br>- [GitHub Actions](./deploy-github-actions.md) |
| **Monitor your app**| - [Log stream](./troubleshoot-diagnostic-logs.md#stream-logs)<br>- [Diagnose and solve tool](./overview-diagnostics.md)|
| **Add domains & certificates** |- [Map a custom domain](./app-service-web-tutorial-custom-domain.md?tabs=root%2Cazurecli)<br>- [Add an SSL certificate](./configure-ssl-certificate.md)|
| **Connect to a database** | - [PostgreSQL - CLI](./tutorial-python-postgresql-app.md?tabs=flask%2Cwindows&pivots=azure-developer-cli)<br>- [PostgreSQL - Azure portal](./tutorial-python-postgresql-app.md?tabs=flask%2Cwindows&pivots=azure-portal)|
| **Connect to a database** | - [PostgreSQL - CLI](./tutorial-python-postgresql-app-flask.md?pivots=azure-developer-cli)<br>- [PostgreSQL - Azure portal](./tutorial-python-postgresql-app-flask.md?pivots=azure-portal)|
| **Custom containers** |- [Linux - Visual Studio Code](./quickstart-custom-container.md?tabs=python&pivots=container-linux-vscode)|
| **Review best practices** | - [Scale your app](./manage-scale-up.md)<br>- [Deployment](./deploy-best-practices.md)<br>- [Security](/security/benchmark/azure/baselines/app-service-security-baseline?toc=/azure/app-service/toc.json)<br>- [Virtual networks](./configure-vnet-integration-enable.md)|

Original file line number Diff line number Diff line change
@@ -18,4 +18,4 @@ In this tutorial, you learned how to:
> * Add Microsoft Graph API permissions to a managed identity.
> * Call Microsoft Graph from a web app by using managed identities.
Learn how to connect a [.NET Core app](../../tutorial-dotnetcore-sqldb-app.md), [Python app](../../tutorial-python-postgresql-app.md), [Java app](../../tutorial-java-spring-cosmosdb.md), or [Node.js app](../../tutorial-nodejs-mongodb-app.md) to a database.
Learn how to connect a [.NET Core app](../../tutorial-dotnetcore-sqldb-app.md) or [Node.js app](../../tutorial-nodejs-mongodb-app.md) to a database.
2 changes: 1 addition & 1 deletion articles/app-service/index.yml
Original file line number Diff line number Diff line change
@@ -73,7 +73,7 @@ landingContent:
- text: Node.js and MongoDB
url: tutorial-nodejs-mongodb-app.md
- text: Python (Django) and PostgreSQL
url: tutorial-python-postgresql-app.md
url: tutorial-python-postgresql-app-django.md
- text: PHP and MySQL
url: tutorial-php-mysql-app.md
- linkListType: reference
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
2 changes: 1 addition & 1 deletion articles/app-service/quickstart-arm-template.md
Original file line number Diff line number Diff line change
@@ -206,7 +206,7 @@ When no longer needed, [delete the resource group](../azure-resource-manager/man
> [ASP.NET Core with SQL Database](tutorial-dotnetcore-sqldb-app.md)
> [!div class="nextstepaction"]
> [Python with Postgres](tutorial-python-postgresql-app.md)
> [Python with Postgres](tutorial-python-postgresql-app-django.md)
> [!div class="nextstepaction"]
> [PHP with MySQL](tutorial-php-mysql-app.md)
2 changes: 1 addition & 1 deletion articles/app-service/quickstart-python-1.md
Original file line number Diff line number Diff line change
@@ -294,7 +294,7 @@ The `--no-wait` argument allows the command to return before the operation is co
## Next steps

> [!div class="nextstepaction"]
> [Tutorial: Python (Django) web app with PostgreSQL](tutorial-python-postgresql-app.md)
> [Tutorial: Python (Django) web app with PostgreSQL](tutorial-python-postgresql-app-django.md)
> [!div class="nextstepaction"]
> [Configure Python app](configure-language-python.md)
2 changes: 1 addition & 1 deletion articles/app-service/quickstart-python-portal.md
Original file line number Diff line number Diff line change
@@ -151,7 +151,7 @@ Having issues? [Let us know](https://aka.ms/FlaskCLIQuickstartHelp).
## Next steps

> [!div class="nextstepaction"]
> [Tutorial: Python (Django) web app with PostgreSQL](./tutorial-python-postgresql-app.md)
> [Tutorial: Python (Django) web app with PostgreSQL](./tutorial-python-postgresql-app-django.md)
> [!div class="nextstepaction"]
> [Configure Python app](configure-language-python.md)
5 changes: 4 additions & 1 deletion articles/app-service/quickstart-python.md
Original file line number Diff line number Diff line change
@@ -394,7 +394,10 @@ Having issues? [Let us know](https://aka.ms/PythonAppServiceQuickstartFeedback).
## Next steps

> [!div class="nextstepaction"]
> [Tutorial: Python (Django or Flask) web app with PostgreSQL](./tutorial-python-postgresql-app.md)
> [Tutorial: Python (Flask) web app with PostgreSQL](./tutorial-python-postgresql-app-flask.md)
> [!div class="nextstepaction"]
> [Tutorial: Python (Django) web app with PostgreSQL](./tutorial-python-postgresql-app-django.md)
> [!div class="nextstepaction"]
> [Configure a Python app](./configure-language-python.md)
11 changes: 9 additions & 2 deletions articles/app-service/resources-kudu.md
Original file line number Diff line number Diff line change
@@ -43,9 +43,16 @@ It also provides features like these:

## RBAC permissions required to access Kudu

To access Kudu in the browser by using Microsoft Entra authentication, you need to be a member of a built-in or custom role.
To access Kudu in the browser by using Microsoft Entra authentication, you need to be assigned an appropriate built-in or custom role over the scope of the application. The assigned role must include permission for the `Microsoft.Web/sites/publish/Action` resource provider operation. The following table shows example built-in roles that include this permission.

If you're using a built-in role, you must be a member of Website Contributor, Contributor, or Owner. If you're using a custom role, you need the resource provider operation: `Microsoft.Web/sites/publish/Action`.
| Role type | Example built-in roles |
|-|-|
| Job function roles | [Website Contributor](../role-based-access-control//built-in-roles/web-and-mobile.md#website-contributor)<br/>[Logic Apps Standard Developer (Preview)](../role-based-access-control//built-in-roles/integration.md#logic-apps-standard-developer-preview) |
| Privileged administrator roles<sup>1</sup> | [Owner](../role-based-access-control//built-in-roles/privileged.md#owner)<br/>[Contributor](../role-based-access-control//built-in-roles/privileged.md#contributor) |

<sup>1</sup> Privileged administrator roles grant much more permission than is needed to access Kudu. If need to create a new role assignment, consider if a job function role with less access can be used instead.

See the [role-based access control overview](../role-based-access-control/overview.md) to learn more about creating role assignments.

## More resources

Loading

0 comments on commit 517c537

Please sign in to comment.