Kurz: nasazení webové aplikace v Pythonu (Django) s PostgreSQL v Azure App ServiceTutorial: Deploy a Python (Django) web app with PostgreSQL in Azure App Service

V tomto kurzu se dozvíte, jak nasadit webovou aplikaci v Pythonu řízeném daty (Django) pro Azure App Service a připojit ji k databázi Azure Database for PostgreSQL.This tutorial shows how to deploy a data-driven Python (Django) web app to Azure App Service and connect it to an Azure Database for PostgreSQL database. App Service poskytuje vysoce škálovatelnou službu s automatickými opravami pro hostování webů.App Service provides a highly scalable, self-patching web hosting service.

Nasazení webové aplikace Python Django do Azure App Service

V tomto kurzu se naučíte:In this tutorial, you learn how to:

  • Vytvoření databáze Azure Database for PostgreSQLCreate an Azure Database for PostgreSQL database
  • Nasazení kódu pro Azure App Service a připojení k PostgresDeploy code to Azure App Service and connect to Postgres
  • Aktualizace kódu a opětovné nasazeníUpdate your code and redeploy
  • Zobrazit diagnostické protokolyView diagnostic logs
  • Správa webové aplikace v Azure PortalManage the web app in the Azure portal

Můžete postupovat podle kroků v tomto článku v macOS, Linux nebo Windows.You can follow the steps in this article on macOS, Linux, or Windows.

Instalace závislostíInstall dependencies

Než začnete s tímto kurzem:Before you start this tutorial:

Klonování ukázkové aplikaceClone the sample app

V okně terminálu pomocí následujících příkazů naklonujte úložiště ukázkové aplikace a přejděte do kořenového adresáře úložiště:In a terminal window, run the following commands to clone the sample app repository, and change to the repository root:

git clone https://github.com/Azure-Samples/djangoapp
cd djangoapp

Ukázkové úložiště djangoapp obsahuje aplikaci s Django dotazy řízenými daty, kterou dostanete při psaní první aplikace Django v dokumentaci Django.The djangoapp sample repository contains the data-driven Django polls app you get by following Writing your first Django app in the Django documentation. Je zde k dispozici pro vaše pohodlí.It's provided here for your convenience.

Příprava aplikace pro App ServicePrepare app for App Service

Stejně jako mnoho webových rozhraní Pythonu vyžaduje Django určité změny, než je můžete spustit na provozním serverua nebude se lišit od App Service.Like many Python web frameworks, Django requires certain changes before they can be run in a production server, and it's no different with App Service. Musíte změnit a přidat některá nastavení ve výchozím souboru azuresite/Settings. py , aby aplikace fungovala po nasazení na App Service.You need to change and add some settings in the default azuresite/settings.py file so that the app works after it's deployed to App Service.

Podívejte se na azuresite/produkční. py, který provede nezbytnou konfiguraci pro App Service.Take a look at azuresite/production.py, which makes the necessary configuration for App Service. Krátce to provede následující:Briefly, it does the following:

  • Zdědit všechna nastavení z azuresite/Settings. py.Inherit all settings from azuresite/settings.py.
  • Přidejte plně kvalifikovaný název domény App Service aplikace k povoleným hostitelům.Add the fully qualified domain name of the App Service app to the allowed hosts.
  • Použijte WhiteNoise k povolení obsluhy statických souborů v produkčním prostředí, protože Django ve výchozím nastavení neslouží jako statické soubory v produkčním prostředí.Use WhiteNoise to enable serving static files in production, because Django by default doesn't serve static files in production. Balíček WhiteNoise je již součástí požadavků. txt.The WhiteNoise package is already included in requirements.txt.
  • Přidejte konfiguraci pro databázi PostgreSQL.Add configuration for PostgreSQL database. Ve výchozím nastavení používá Django jako databázi sqlite3, ale není vhodná pro produkční aplikace.By default, Django uses Sqlite3 as the database, but it's not suitable for production apps. Balíček psycopg2-Binary již obsahuje požadavky. txt.The psycopg2-binary package is already included in requirements.txt.
  • Konfigurace Postgres používá proměnné prostředí.The Postgres configuration uses environment variables. Později se dozvíte, jak nastavit proměnné prostředí v App Service.Later, you'll find out how to set environment variables in App Service.

azuresite/produkční. py je zahrnuté do úložiště pro usnadnění, ale zatím ho aplikace nepoužívá.azuresite/production.py is included in the repository for convenience, but it's not yet used by the app. Abyste se ujistili, že se v App Service používá jeho nastavení, musíte pro přístup k němu nakonfigurovat dva soubory, Manage.py a azuresite/rozhraním WSGI. py.To make sure that its settings are used in App Service, you need to configure two files, manage.py and azuresite/wsgi.py, to access it.

  • V Manage.pyzměňte následující řádek:In manage.py, change the following line:

      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'azuresite.settings')
      

    Na následující kód:To the following code:

    if os.environ.get('DJANGO_ENV') == 'production':
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'azuresite.production')
    else:
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'azuresite.settings')
    

    Proměnnou DJANGO_ENV prostředí nastavíte později při konfiguraci aplikace App Service.You'll set the environment variable DJANGO_ENV later when you configure your App Service app.

  • V azuresite/rozhraním WSGI. pyproveďte stejnou změnu, jak je uvedeno výše.In azuresite/wsgi.py, make the same change as above.

    V App Service použijete ke spuštění migrace databáze Manage.py a App Service používá azuresite/rozhraním WSGI. py ke spuštění vaší aplikace Django v produkčním prostředí.In App Service, you use manage.py to run database migrations, and App Service uses azuresite/wsgi.py to run your Django app in production. Tato změna v obou souborech zajišťuje, že se nastavení produkčního prostředí používá v obou případech.This change in both files ensures that the production settings are used in both cases.

Přihlášení k Azure CLISign in to Azure CLI

Měli byste už mít nainstalované rozhraní Azure CLI.You should have Azure CLI installed already. Azure CLI umožňuje pracovat s prostředky Azure z terminálu příkazového řádku.Azure CLI lets you work with Azure resources from the command-line terminal.

Pokud se chcete přihlásit k Azure, spusťte az login příkaz:To sign in to Azure, run the az login command:

az login

Podle pokynů v terminálu se přihlaste k účtu Azure.Follow the instructions in the terminal to sign into your Azure account. Až budete hotovi, Vaše předplatná se zobrazí ve formátu JSON ve výstupu terminálu.When you're finished, your subscriptions are shown in JSON format in the terminal output.

Vytvoření databáze Postgres v AzureCreate Postgres database in Azure

V této části vytvoříte Azure Database for PostgreSQL Server a databázi.In this section, you create an Azure Database for PostgreSQL server and database. Začněte tím, že nainstalujete db-up rozšíření pomocí následujícího příkazu:To start, install the db-up extension with the following command:

az extension add --name db-up

Vytvořte databázi Postgres v Azure pomocí az postgres up příkazu, jak je znázorněno v následujícím příkladu.Create the Postgres database in Azure with the az postgres up command, as shown in the following example. Nahraďte * <PostgreSQL-Name>* jedinečným názvem (koncový bod serveru je https://<PostgreSQL-Name>. Postgres.Database.Azure.com).Replace <postgresql-name> with a unique name (the server endpoint is https://<postgresql-name>.postgres.database.azure.com). Pro * <správce – uživatelské jméno>* a * <správce-heslo>* zadejte pověření k vytvoření uživatele správce pro tento Postgres Server.For <admin-username> and <admin-password>, specify credentials to create an administrator user for this Postgres server.

az postgres up --resource-group myResourceGroup --location westus2 --server-name <postgresql-name> --database-name pollsdb --admin-user <admin-username> --admin-password <admin-password> --ssl-enforcement Enabled

Tento příkaz může chvíli trvat, protože je to následující:This command may take a while because it's doing the following:

  • Vytvoří skupinu prostředků s názvem myResourceGroup, pokud neexistuje.Creates a resource group called myResourceGroup, if it doesn't exist. Každý prostředek Azure musí být v jednom z těchto.Every Azure resource needs to be in one of these. Parametr --resource-group je volitelný.--resource-group is optional.
  • Vytvoří server Postgres s administrativním uživatelem.Creates a Postgres server with the administrative user.
  • Vytvoří pollsdb databázi.Creates a pollsdb database.
  • Umožňuje přístup z místní IP adresy.Allows access from your local IP address.
  • Umožňuje přístup ze služeb Azure.Allows access from Azure services.
  • Vytvořte uživatele databáze s přístupem k pollsdb databázi.Create a database user with access to the pollsdb database.

Všechny kroky můžete provádět samostatně s ostatními az postgres příkazy a psql, ale az postgres up všechny jsou v jednom kroku.You can do all the steps separately with other az postgres commands and psql, but az postgres up does all of them in one step for you.

Po dokončení příkazu Najděte výstupní řádky, které se nacházejí v Ran Database Query:.When the command finishes, find the output lines that being with Ran Database Query:. Zobrazují uživatele databáze, který vám byl vytvořen, s uživatelským jménem root a heslem. Pollsdb1They show the database user that's created for you, with the username root and password Pollsdb1. Později je budete používat k připojení aplikace k databázi.You'll use them later to connect your app to the database.

Tip

--location <location-name>, lze nastavit na některou z oblastí Azure.--location <location-name>, can be set to any one of the Azure regions. Pomocí az account list-locations příkazu můžete získat oblasti dostupné pro vaše předplatné.You can get the regions available to your subscription with the az account list-locations command. V produkčních aplikacích uložte svou databázi a aplikaci do stejného umístění.For production apps, put your database and your app in the same location.

Nasazení aplikace App ServiceDeploy the App Service app

V této části vytvoříte aplikaci App Service.In this section, you create the App Service app. Tuto aplikaci připojíte k databázi Postgres, kterou jste vytvořili a nasadili svůj kód.You will connect this app to the Postgres database you created and deploy your code.

Vytvoření aplikace App ServiceCreate the App Service app

Ujistěte se, že jste zpátky v kořenovém adresářidjangoappúložiště (), protože aplikace bude nasazená z tohoto adresáře.Make sure you're back in the repository root (djangoapp), because the app will be deployed from this directory.

Pomocí az webapp up příkazu vytvořte aplikaci App Service, jak je znázorněno v následujícím příkladu.Create an App Service app with the az webapp up command, as shown in the following example. Nahraďte * <název aplikace>* jedinečným názvem (koncovým bodem serveru je https://<App-Name>. azurewebsites.NET).Replace <app-name> with a unique name (the server endpoint is https://<app-name>.azurewebsites.net). Povolené znaky pro * <název aplikace>* jsou A - Z, 0 - 9a -.Allowed characters for <app-name> are A-Z, 0-9, and -.

az webapp up --plan myAppServicePlan --location westus2 --sku B1 --name <app-name>

Tento příkaz může chvíli trvat, protože je to následující:This command may take a while because it's doing the following:

  • Automaticky vygeneruje skupinu prostředků .Generates a resource group automatically.
  • Vytvoří plán App Service myAppServicePlan v cenové úrovni Basic (B1), pokud neexistuje.Creates the App Service plan myAppServicePlan in the Basic pricing tier (B1), if it doesn't exist. --plana --sku jsou volitelné.--plan and --sku are optional.
  • Vytvoří aplikaci App Service, pokud neexistuje.Creates the App Service app if it doesn't exist.
  • Povolí výchozí protokolování pro aplikaci, pokud ještě není povolené.Enables default logging for the app, if not already enabled.
  • Nahraje úložiště pomocí nasazení ZIP s povolenou automatizací sestavení.Uploads the repository using ZIP deployment with build automation enabled.

Po dokončení nasazení se zobrazí výstup JSON podobný následujícímu:Once the deployment finishes, you see a JSON output like the following:

{
  "URL": "http://<app-name>.azurewebsites.net",
  "appserviceplan": "myAppServicePlan",
  "location": "westus",
  "name": "<app-name>",
  "os": "Linux",
  "resourcegroup": "<app-resource-group>",
  "runtime_version": "python|3.7",
  "runtime_version_detected": "-",
  "sku": "BASIC",
  "src_path": "//var//lib//postgresql//djangoapp"
}

Zkopírujte hodnotu * <App-Resource-Group>*.Copy the value of <app-resource-group>. Budete ho potřebovat ke konfiguraci aplikace později.You need it to configure the app later.

Tip

Příslušná nastavení se uloží do skrytého adresáře . Azure v úložišti.The pertinent settings are saved into a hidden .azure directory in your repository. Jednoduchý příkaz můžete použít později k opětovnému nasazení změn a okamžitému povolení diagnostických protokolů pomocí:You can use the simple command later to redeploy any changes and immediately enable diagnostic logs with:

az webapp up

Vzorový kód je teď nasazený, ale aplikace se ještě nepřipojuje k databázi Postgres v Azure.The sample code is now deployed, but the app doesn't connect to the Postgres database in Azure yet. Provedete to dál.You'll do this next.

Konfigurace proměnných prostředíConfigure environment variables

Když aplikaci spouštíte místně, můžete nastavit proměnné prostředí v relaci Terminálové služby.When you run your app locally, you can set the environment variables in the terminal session. V App Service pomocí příkazu AZ WebApp config appSettings set uděláte nastavení aplikace.In App Service, you do it with app settings, by using the az webapp config appsettings set command.

Spusťte následující příkaz, který určuje podrobnosti připojení databáze jako nastavení aplikace.Run the following command to specify the database connection details as app settings. Nahraďte * <>* * <App-Resource-Group>* a * <PostgreSQL-Name>* vlastními hodnotami.Replace <app-name>, <app-resource-group>, and <postgresql-name> with your own values. Mějte na paměti, že root přihlašovací Pollsdb1 údaje uživatele a byly pro az postgres upvás vytvořeny.Remember that the user credentials root and Pollsdb1 were created for you by az postgres up.

az webapp config appsettings set --name <app-name> --resource-group <app-resource-group> --settings DJANGO_ENV="production" DBHOST="<postgresql-name>.postgres.database.azure.com" DBUSER="root@<postgresql-name>" DBPASS="Pollsdb1" DBNAME="pollsdb"

Informace o tom, jak váš kód přistupuje k těmto nastavením aplikace, najdete v tématu přístup k proměnným prostředí.For information on how your code accesses these app settings, see Access environment variables.

Spustit migrace databázeRun database migrations

Pokud chcete spustit migrace databáze v App Service, otevřete v prohlížeči relaci SSH tak, že přejdete na https://<App-name>. SCM.azurewebsites.NET/webssh/Host:To run database migrations in App Service, open an SSH session in the browser by navigating to https://<app-name>.scm.azurewebsites.net/webssh/host:

V relaci SSH spusťte následující příkazy:In the SSH session, run the following commands:

cd site/wwwroot

# Activate default virtual environment in App Service container
source /antenv/bin/activate
# Run database migrations
python manage.py migrate
# Create the super user (follow prompts)
python manage.py createsuperuser

Přejít k aplikaci AzureBrowse to the Azure app

V prohlížeči přejděte do nasazené aplikace s adresou URL http://<App-Name>. azurewebsites.NET .Browse to the deployed app with URL http://<app-name>.azurewebsites.net in a browser. Měla by se zobrazit zpráva žádná hlasování nejsou k dispozici.You should see the message No polls are available.

Přejděte na adresu http//<: název aplikace>. azurewebsites.NET/admin a přihlaste se pomocí uživatele s rolí správce, kterého jste vytvořili v posledním kroku.Browse to http://<app-name>.azurewebsites.net/admin and sign in using the admin user you created in the last step. Vyberte Přidat vedle otázkya vytvořte otázku dotazování s některými možnostmi.Select Add next to Questions, and create a poll question with some choices.

Přejděte k nasazené aplikaci s adresou URL http//<: App-Name>. azurewebsites.NET/admina vytvořte si nějaké otázky pro dotazování.Browse to the deployed app with URL http://<app-name>.azurewebsites.net/admin, and create some poll questions. Otázky můžete zobrazit na adrese http://<název aplikace>. azurewebsites.NET/.You can see the questions at http://<app-name>.azurewebsites.net/.

Spuštění aplikace Python Django v App Services v Azure

Přejděte k nasazené aplikaci s adresou URL http//<: App-Name>. azurewebsites.NET , abyste viděli otázku dotazování a odpověděli na otázku.Browse to the deployed app with URL http://<app-name>.azurewebsites.net again to see the poll question and answer the question.

App Service zjistí v úložišti projekt Django tak, že v každém podadresáři vyhledá soubor WSGI.py , který manage.py startproject se ve výchozím nastavení vytvoří.App Service detects a Django project in your repository by looking for a wsgi.py file in each subdirectory, which manage.py startproject creates by default. Když App Service najde soubor, načte webovou aplikaci Django.When App Service finds the file, it loads the Django web app. Další informace o tom, jak App Service načítají aplikace v Pythonu, najdete v tématu Konfigurace integrované image Pythonu.For more information on how App Service loads Python apps, see Configure built-in Python image.

Blahopřejeme!Congratulations! Spouštíte webovou aplikaci Python (Django) v Azure App Service pro Linux.You're running a Python (Django) web app in Azure App Service for Linux.

Místní vývoj a opětovné nasazení aplikaceDevelop app locally and redeploy

V této části vyvíjíte svou aplikaci v místním prostředí a znovu nasadíte kód pro App Service.In this section, you develop your app in your local environment and redeploy your code to App Service.

Nastavit místně a spustitSet up locally and run

Pokud chcete nastavit místní vývojové prostředí a poprvé spustit ukázkovou aplikaci, spusťte následující příkazy:To set up your local development environment and run the sample app for the first time, run the following commands:

# Configure the Python virtual environment
python3 -m venv venv
source venv/bin/activate

# Install packages
pip install -r requirements.txt
# Run Django migrations
python manage.py migrate
# Create Django superuser (follow prompts)
python manage.py createsuperuser
# Run the dev server
python manage.py runserver

Když je webová aplikace Django plně načtená, vrátí něco podobného jako následující zpráva:When the Django web app is fully loaded, it returns something like the following message:

Performing system checks...

System check identified no issues (0 silenced).
December 13, 2019 - 10:54:59
Django version 2.1.2, using settings 'azuresite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

V prohlížeči přejdete na http://localhost: 8000 .Go to http://localhost:8000 in a browser. Měla by se zobrazit zpráva žádná hlasování nejsou k dispozici.You should see the message No polls are available.

Přejít na http://localhost: 8000/admin a přihlaste se pomocí uživatele správce, kterého jste vytvořili v posledním kroku.Go to http://localhost:8000/admin and sign in using the admin user you created in the last step. Vyberte Přidat vedle otázkya vytvořte otázku dotazování s některými možnostmi.Select Add next to Questions, and create a poll question with some choices.

Spuštění aplikace Python Django v App Services místně

Přejděte na http://localhost: 8000 znovu, abyste viděli otázku dotazování a odpověděli na otázku.Go to http://localhost:8000 again to see the poll question and answer the question. Ukázková aplikace místní Django zapisuje a ukládá uživatelská data do místní databáze SQLite3, takže nemusíte si dělat starosti se sestavou provozní databáze.The local Django sample application writes and stores user data to a local Sqlite3 database, so you don't need to worry about messing up your production database. Pokud chcete, aby vývojové prostředí odpovídalo prostředí Azure, zvažte místo toho použití databáze Postgres místně.To make your development environment match the Azure environment, consider using a Postgres database locally instead.

Pokud chcete zastavit server Django, zadejte Ctrl + C.To stop the Django server, type Ctrl+C.

Aktualizace aplikaceUpdate the app

Pokud chcete vidět, jak funguje aktualizace aplikací, udělejte v polls/models.pynástroji malou změnu.Just to see how making app updates works, make a small change in polls/models.py. Najít řádek:Find the line:

choice_text = models.CharField(max_length=200)

A změňte ji na:And change it to:

choice_text = models.CharField(max_length=100)

Změnou datového modelu je potřeba vytvořit novou migraci Django.By changing the data model, you need to create a new Django migration. Udělejte to pomocí následujícího příkazu:Do it with the following command:

python manage.py makemigrations

Změny můžete otestovat místně spuštěním migrace, spuštěním vývojového serveru a přechodem na http://localhost: 8000/admin:You can test your changes locally by running migrations, running the development server, and navigating to http://localhost:8000/admin:

python manage.py migrate
python manage.py runserver

Opětovné nasazení kódu do AzureRedeploy code to Azure

Chcete-li znovu nasadit změny, spusťte následující příkaz z kořenového adresáře úložiště:To redeploy the changes, run the following command from the repository root:

az webapp up

App Service zjistí, že aplikace existuje, a jenom nasadí kód.App Service detects that the app exists and just deploys the code.

Znovu spustit migrace v AzureRerun migrations in Azure

Vzhledem k tomu, že jste provedli změny v datovém modelu, je nutné znovu spustit migrace databáze v App Service.Because you made changes to the data model, you need to rerun database migrations in App Service. V prohlížeči otevřete relaci SSH tak, že přejdete na https://<app-name>. SCM.azurewebsites.NET/webssh/Host.Open an SSH session in the browser by navigating to https://<app-name>.scm.azurewebsites.net/webssh/host. Spusťte následující příkazy:Run the following commands:

cd site/wwwroot

# Activate default virtual environment in App Service container
source /antenv/bin/activate
# Run database migrations
python manage.py migrate

Kontrola aplikace v produkčním prostředíReview app in production

Přejděte na adresu http//<: App-Name>. azurewebsites.NET a podívejte se, jaké změny běží živě v produkčním prostředí.Browse to http://<app-name>.azurewebsites.net and see the changes running live in production.

Streamování diagnostických protokolůStream diagnostic logs

Můžete přistupovat k protokolům konzoly generovaným zevnitř kontejneru.You can access the console logs generated from inside the container.

Tip

az webapp upzapne pro vás výchozí protokolování.az webapp up turns on the default logging for you. Z důvodu výkonu se toto protokolování po určitou dobu vypne, ale zase se znovu spustí az webapp up .For performance reasons, this logging turns itself off after some time, but turns back on each time you run az webapp up again. Pokud ho chcete zapnout ručně, spusťte následující příkaz:To turn it on manually, run the following command:

az webapp log config --name <app-name> --resource-group <app-resource-group> --docker-container-logging filesystem

Spuštěním následujícího příkazu rozhraní příkazového řádku Azure zobrazíte datový proud protokolu:Run the following Azure CLI command to see the log stream:

az webapp log tail --name <app-name> --resource-group <app-resource-group>

Pokud nevidíte protokoly konzoly okamžitě, podívejte se znovu za 30 sekund.If you don't see console logs immediately, check again in 30 seconds.

Poznámka

Soubory protokolu můžete také zkontrolovat v prohlížeči na adrese https://<app-name>.scm.azurewebsites.net/api/logs/docker.You can also inspect the log files from the browser at https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Pokud chcete streamování protokolů kdykoli zastavit, zadejte Ctrl + C.To stop log streaming at any time, type Ctrl+C.

Správa aplikace v Azure PortalManage your app in the Azure portal

V Azure Portalvyhledejte a vyberte aplikaci, kterou jste vytvořili.In the Azure portal, search for and select the app you created.

V Azure Portal přejděte do vaší aplikace Python Django

Ve výchozím nastavení se na portálu zobrazí stránka s přehledem vaší aplikace.By default, the portal shows your app's Overview page. Tato stránka poskytuje přehled, jak si vaše aplikace stojí.This page gives you a view of how your app is doing. Tady můžete provádět základní úlohy správy, jako je procházení, zastavení, restartování a odstranění.Here, you can also perform basic management tasks like browse, stop, restart, and delete. Karty na levé straně stránky obsahují různé stránky konfigurace, které můžete otevřít.The tabs on the left side of the page show the different configuration pages you can open.

Správa aplikace Python Django na stránce Přehled v Azure Portal

Vyčištění prostředkůClean up resources

Pokud neočekáváte, že tyto prostředky budete potřebovat v budoucnu, odstraňte skupiny prostředků spuštěním následujících příkazů:If you don't expect to need these resources in the future, delete the resource groups by running the following commands:

az group delete --name myResourceGroup
az group delete --name <app-resource-group>

Další krokyNext steps

V tomto kurzu jste se naučili:In this tutorial, you learned:

  • Vytvoření databáze Azure Database for PostgreSQLCreate an Azure Database for PostgreSQL database
  • Nasazení kódu pro Azure App Service a připojení k PostgresDeploy code to Azure App Service and connect to Postgres
  • Aktualizace kódu a opětovné nasazeníUpdate your code and redeploy
  • Zobrazit diagnostické protokolyView diagnostic logs
  • Správa webové aplikace v Azure PortalManage the web app in the Azure portal

V dalším kurzu se dozvíte, jak namapovat vlastní název DNS do vaší aplikace:Go to the next tutorial to learn how to map a custom DNS name to your app:

Nebo si prohlédněte další zdroje informací:Or check out other resources: