Nasazení webové aplikace Python FastAPI pomocí PostgreSQL v Azure
V tomto kurzu nasadíte webovou aplikaci Pythonu řízenou daty (FastAPI) do služby Aplikace Azure Service pomocí služby relační databáze Azure Database for PostgreSQL. služba Aplikace Azure podporuje Python v linuxovém serverovém prostředí Pokud chcete, přečtěte si místo toho kurz Flask nebo Django.
K dokončení tohoto kurzu budete potřebovat:
- Účet Azure s aktivním předplatným. Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
- Znalost Pythonu s vývojem fastAPI
- Účet Azure s aktivním předplatným. Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
- Nainstalované rozhraní příkazového řádku pro vývojáře Azure Pomocí Azure Cloud Shellu můžete postupovat podle kroků, protože už má nainstalované rozhraní příkazového řádku Azure Developer CLI.
- Znalost Pythonu s vývojem fastAPI
Přeskočit na konec
S nainstalovaným rozhraním příkazového řádku Pro vývojáře Azure můžete přeskočit na konec kurzu spuštěním následujících příkazů v prázdném pracovním adresáři:
azd auth login
azd init --template msdocs-fastapi-postgresql-sample-app
azd up
Ukázková aplikace
K dispozici je ukázková aplikace Pythonu využívající architekturu FastAPI, která vám pomůže postupovat společně s tímto kurzem. Pokud ji chcete nasadit bez místního spuštění, tuto část přeskočte.
Pokud chcete aplikaci spustit místně, ujistěte se, že máte místně nainstalovaný Python 3.8 nebo novější a PostgreSQL . Potom naklonujte větev ukázkového úložiště starter-no-infra
a přejděte do kořenového adresáře úložiště.
git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-fastapi-postgresql-sample-app
cd msdocs-fastapi-postgresql-sample-app
Vytvořte soubor .env , jak je znázorněno níže, pomocí souboru .env.sample jako průvodce. Nastavte hodnotu DBNAME
na název existující databáze v místní instanci PostgreSQL. Nastavte hodnoty parametru DBHOST
, DBUSER
a DBPASS
podle potřeby pro místní instanci PostgreSQL.
DBNAME=<database name>
DBHOST=<database-hostname>
DBUSER=<db-user-name>
DBPASS=<db-password>
Vytvořte pro aplikaci virtuální prostředí:
py -m venv .venv
.venv\scripts\activate
Nainstalujte závislosti:
python3 -m pip install -r src/requirements.txt
Nainstalujte aplikaci jako upravitelný balíček:
python3 -m pip install -e src
Spusťte ukázkovou aplikaci pomocí následujících příkazů:
# Run database migration
python3 src/fastapi_app/seed_data.py
# Run the app at http://127.0.0.1:8000
python3 -m uvicorn fastapi_app:app --reload --port=8000
1. Vytvoření služby App Service a PostgreSQL
V tomto kroku vytvoříte prostředky Azure. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, které zahrnují App Service a Azure Database for PostgreSQL. Pro proces vytváření zadáte:
- Název webové aplikace. Jedná se o název, který se používá jako součást názvu DNS pro webovou aplikaci ve formě
https://<app-name>.azurewebsites.net
. - Oblast, ve které se má aplikace spouštět fyzicky na světě.
- Zásobník modulu runtime pro aplikaci. Tady vyberete verzi Pythonu, kterou chcete pro svou aplikaci použít.
- Plán hostování aplikace. Je to cenová úroveň, která zahrnuje sadu funkcí a kapacitu škálování vaší aplikace.
- Skupina prostředků pro aplikaci. Skupina prostředků umožňuje seskupovat (v logickém kontejneru) všechny prostředky Azure potřebné pro aplikaci.
Přihlaste se k webu Azure Portal a podle těchto kroků vytvořte prostředky služby Aplikace Azure Service.
Krok 1: Na webu Azure Portal:
- Do vyhledávacího panelu v horní části webu Azure Portal zadejte "databáze webové aplikace".
- Vyberte položku s popiskem Web App + Database pod nadpisem Marketplace . Můžete také přejít přímo do průvodce vytvořením.
Krok 2: Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.
- Skupina prostředků → Vyberte vytvořit novou a použijte název msdocs-python-postgres-tutorial.
- Oblast → Libovolná oblast Azure blízko vás.
- Název → msdocs-python-postgres-XYZ , kde XYZ je jakékoli tři náhodné znaky. Tento název musí být v rámci služby Azure jedinečný.
- Zásobník modulu runtime → Python 3.12
- Jako databázový stroj je ve výchozím nastavení vybrán databázový → Flexibilní server PostgreSQL. Název serveru a název databáze jsou také standardně nastavené na odpovídající hodnoty.
- Plán hostování → Basic. Až budete připraveni, můžete později vertikálně navýšit kapacitu na cenovou úroveň produkčního prostředí.
- Vyberte Zkontrolovat a vytvořit.
- Po dokončení ověření vyberte Vytvořit.
Krok 3: Dokončení nasazení trvá několik minut. Po dokončení nasazení vyberte tlačítko Přejít k prostředku . Přejdete přímo do aplikace App Service, ale vytvoří se následující prostředky:
- Skupina prostředků → Kontejner pro všechny vytvořené prostředky.
- Plán služby App Service → Definuje výpočetní prostředky služby App Service. Vytvoří se plán Linuxu na úrovni Basic .
- → App Service Představuje vaši aplikaci a běží v plánu služby App Service.
- Virtuální síť → integrovaná s aplikací App Service a izoluje back-endový síťový provoz.
- Flexibilní server Azure Database for PostgreSQL → přístupný pouze z virtuální sítě. Databáze a uživatel se pro vás vytvoří na serveru.
- Privátní DNS zónu → Umožňuje překlad DNS serveru PostgreSQL ve virtuální síti.
Krok 4: U aplikací FastAPI musíte zadat spouštěcí příkaz, aby služba App Service spustila vaši aplikaci. Na stránce služby App Service:
- V nabídce vlevo v části Nastavení vyberte Konfigurace.
-
Na kartě Obecné nastavení na stránce Konfigurace zadejte
src/entrypoint.sh
do pole Spouštěcí příkaz v části Nastavení zásobníku. - Zvolte Uložit. Po zobrazení výzvy vyberte Pokračovat. Další informace o konfiguraci a spuštění aplikace ve službě App Service najdete v tématu Konfigurace linuxové aplikace Pythonu pro službu Aplikace Azure Service.
2. Ověření nastavení připojení
Průvodce vytvořením vygeneroval proměnné připojení, které už máte jako nastavení aplikace. Nastavení aplikace je jedním ze způsobů, jak udržovat tajné kódy připojení mimo úložiště kódu. Až budete připraveni přesunout tajné kódy do bezpečnějšího umístění, tady je článek o ukládání ve službě Azure Key Vault.
Krok 1: Na stránce služby App Service v nabídce vlevo vyberte proměnné prostředí.
Krok 2: Na kartě Nastavení aplikace na stránce Proměnné prostředí ověřte, že AZURE_POSTGRESQL_CONNECTIONSTRING
je k dispozici. Připojovací řetězec se vloží do prostředí runtime jako proměnná prostředí.
3. Nasazení ukázkového kódu
V tomto kroku nakonfigurujete nasazení GitHubu pomocí GitHub Actions. Je to jen jeden z mnoha způsobů nasazení do služby App Service, ale také skvělý způsob, jak mít kontinuální integraci v procesu nasazení. Ve výchozím nastavení spustí každá git push
z vašich úložišť GitHub akci sestavení a nasazení.
Krok 1: V novém okně prohlížeče:
- Přihlaste se k účtu GitHub.
- Přejděte na https://github.com/Azure-Samples/msdocs-fastapi-postgresql-sample-app.
- Vyberte Fork.
- Vyberte Vytvořit fork.
Krok 2: Na stránce GitHubu otevřete Visual Studio Code v prohlížeči stisknutím klávesy .
.
Krok 3: V editoru Visual Studio Code v prohlížeči otevřete soubor src/fastapi/models.py v průzkumníkovi. Podívejte se na proměnné prostředí používané v produkčním prostředí, včetně nastavení aplikace, která jste viděli na stránce konfigurace.
Krok 4: Zpět na stránce služby App Service v nabídce vlevo v části Nasazení vyberte Deployment Center.
Krok 5: Na stránce Deployment Center:
- Ve zdroji vyberte GitHub. Ve výchozím nastavení je jako zprostředkovatel sestavení vybrán GitHub Actions .
- Přihlaste se ke svému účtu GitHub a postupujte podle pokynů k autorizaci Azure.
- V organizaci vyberte svůj účet.
- V úložišti vyberte msdocs-fastapi-postgresql-sample-app.
- Ve větvi vyberte hlavní.
- Ponechte výchozí možnost vybranou pro přidání pracovního postupu.
- V části Typ ověřování vyberte Identitu přiřazenou uživatelem.
- V horní nabídce vyberte Uložit. App Service potvrdí soubor pracovního postupu do zvoleného úložiště GitHub v
.github/workflows
adresáři.
Krok 6: Na stránce Deployment Center:
- Vyberte Protokoly. Spuštění nasazení je již spuštěno.
- V položce protokolu pro spuštění nasazení vyberte Sestavit/Nasadit protokoly.
Krok 7: Přejdete do úložiště GitHub a zjistíte, že je spuštěná akce GitHubu. Soubor pracovního postupu definuje dvě samostatné fáze, sestavení a nasazení. Počkejte na spuštění GitHubu, aby se zobrazil stav Dokončeno. Trvá to asi 5 minut.
Máte problémy? Projděte si průvodce odstraňováním potíží.
4. Generování schématu databáze
V předchozí části jste přidali src/entrypoint.sh jako spouštěcí příkaz pro vaši aplikaci.
entrypoint.sh obsahuje následující řádek: python3 src/fastapi_app/seed_data.py
. Tento příkaz migruje databázi. V ukázkové aplikaci se zajistí pouze vytvoření správných tabulek ve vaší databázi. Nenaplní tyto tabulky žádnými daty.
V této části spustíte tento příkaz ručně pro demonstrační účely. S databází PostgreSQL chráněnou virtuální sítí je nejjednodušší způsob spuštění příkazu v relaci SSH s kontejnerem služby App Service.
Krok 1: Zpět na stránce služby App Service v nabídce vlevo
- Vyberte SSH.
- Vyberte Přejít.
Krok 2: V terminálu SSH spusťte python3 src/fastapi_app/seed_data.py
příkaz . Pokud proběhne úspěšně, služba App Service se úspěšně připojuje k databázi.
Kromě restartování aplikace se můžou zachovat jenom změny v /home
souborech. Změny mimo /home
jiné se neuchovávají.
5. Přejděte do aplikace.
Krok 1: Na stránce služby App Service:
- V nabídce vlevo vyberte Přehled.
- Vyberte adresu URL aplikace. Můžete také přejít přímo na
https://<app-name>.azurewebsites.net
.
Krok 2: Přidejte do seznamu několik restaurací. Blahopřejeme, spouštíte webovou aplikaci ve službě Aplikace Azure Service se zabezpečeným připojením ke službě Azure Database for PostgreSQL.
6. Streamování diagnostických protokolů
Ukázková aplikace používá modul protokolování standardní knihovny Pythonu, který vám pomůže diagnostikovat problémy s aplikací. Ukázková aplikace zahrnuje volání protokolovacího nástroje, jak je znázorněno v následujícím kódu.
@app.get("/", response_class=HTMLResponse)
async def index(request: Request, session: Session = Depends(get_db_session)):
logger.info("root called")
statement = (
select(Restaurant, func.avg(Review.rating).label("avg_rating"), func.count(Review.id).label("review_count"))
.outerjoin(Review, Review.restaurant == Restaurant.id)
.group_by(Restaurant.id)
)
Krok 1: Na stránce služby App Service:
- V nabídce vlevo v části Monitorování vyberte protokoly služby App Service.
- V části Protokolování aplikace vyberte Systém souborů.
- V horní nabídce vyberte Uložit.
Krok 2: V nabídce vlevo vyberte Stream protokolu. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru.
Zobrazení událostí v diagnostických protokolech může trvat několik minut. Přečtěte si další informace o protokolování v aplikacích Pythonu v řadě o nastavení služby Azure Monitor pro vaši aplikaci v Pythonu.
7. Vyčištění prostředků
Po dokončení můžete odstranit všechny prostředky z předplatného Azure odstraněním skupiny prostředků.
Krok 1: Na panelu hledání v horní části webu Azure Portal:
- Zadejte název skupiny prostředků.
- Vyberte tuto skupinu prostředků.
Krok 2: Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.
Krok 3:
- Potvrďte odstranění zadáním názvu skupiny prostředků.
- Vyberte Odstranit.
1. Vytvoření prostředků Azure a nasazení ukázkové aplikace
V tomto kroku vytvoříte prostředky Azure a nasadíte ukázkovou aplikaci do App Service v Linuxu. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, které zahrnují App Service a Azure Database for PostgreSQL.
Pokud jste to ještě neudělali, naklonujte větev ukázkového úložiště
starter-no-infra
v místním terminálu.git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-fastapi-postgresql-sample-app cd msdocs-fastapi-postgresql-sample-app
Tato naklonovaná větev je vaším výchozím bodem. Obsahuje jednoduchou aplikaci FastAPI pro datovou jednotku.
V kořenovém adresáři úložiště spusťte
azd init
příkaz .azd init --template msdocs-fastapi-postgresql-sample-app
Po zobrazení výzvy zadejte následující odpovědi:
Otázka Odpověď Aktuální adresář není prázdný. Chcete zde inicializovat projekt v adresáři<>? Y Co chcete s těmito soubory dělat? Zachovat stávající soubory beze změny Zadejte nový název prostředí. Zadejte jedinečný název. Šablona azd používá tento název jako součást názvu DNS vaší webové aplikace v Azure ( <app-name>.azurewebsites.net
). Jsou povoleny alfanumerické znaky a spojovníky.Spuštěním
azd up
příkazu zřiďte potřebné prostředky Azure a nasaďte kód aplikace. Pokud ještě nejste přihlášení k Azure, prohlížeč se spustí a požádá vás o přihlášení. Příkazazd up
vás také vyzve k výběru požadovaného předplatného a umístění pro nasazení.azd up
Dokončení
azd up
příkazu může trvat několik minut. Zkompiluje a nasadí také kód aplikace. Když je spuštěný, příkaz poskytuje zprávy o procesu zřizování a nasazení, včetně odkazu na nasazení v Azure. Po dokončení zobrazí příkaz také odkaz na aplikaci pro nasazení.Tato šablona azd obsahuje soubory (azure.yaml a adresář infrastruktury ), které ve výchozím nastavení generují zabezpečenou architekturu s následujícími prostředky Azure:
- Skupina prostředků → Kontejner pro všechny vytvořené prostředky.
- Plán služby App Service → Definuje výpočetní prostředky služby App Service. Je zadán plán Linuxu na úrovni B1 .
- → App Service Představuje vaši aplikaci a běží v plánu služby App Service.
- Virtuální síť → integrovaná s aplikací App Service a izoluje back-endový síťový provoz.
- Flexibilní server Azure Database for PostgreSQL → přístupný pouze z virtuální sítě. Databáze a uživatel se pro vás vytvoří na serveru.
- Privátní DNS zónu → Umožňuje překlad DNS serveru PostgreSQL ve virtuální síti.
- Pracovní prostor služby Log Analytics → funguje jako cílový kontejner vaší aplikace k odeslání protokolů, kde můžete také dotazovat protokoly.
azd up
Po dokončení příkazu si poznamenejte hodnoty ID předplatného (GUID), služby App Service a skupiny prostředků ve výstupu. Použijete je v následujících částech. Výstup bude vypadat podobně jako následující (částečný) výstup:Subscription: Your subscription name (1111111-1111-1111-1111-111111111111) Location: East US You can view detailed progress in the Azure Portal: https://portal.azure.com/#view/HubsExtension/DeploymentDetailsBlade/~/overview/id/%2Fsubscriptions%2F1111111-1111-1111-1111-111111111111%2Fproviders%2FMicrosoft.Resources%2Fdeployments%2Fyourenv-1721867673 (✓) Done: Resource group: yourenv-rg (✓) Done: Virtual Network: yourenv-e2najjk4vewf2-vnet (✓) Done: App Service plan: yourenv-e2najjk4vewf2-service-plan (✓) Done: Log Analytics workspace: yourenv-e2najjk4vewf2-workspace (✓) Done: Application Insights: yourenv-e2najjk4vewf2-appinsights (✓) Done: Portal dashboard: yourenv-e2najjk4vewf2-dashboard (✓) Done: App Service: yourenv-e2najjk4vewf2-app-service (✓) Done: Azure Database for PostgreSQL flexible server: yourenv-e2najjk4vewf2-postgres-server (✓) Done: Cache for Redis: yourenv-e2najjk4vewf2-redisCache (✓) Done: Private Endpoint: cache-privateEndpoint SUCCESS: Your application was provisioned in Azure in 32 minutes. You can view the resources created under the resource group yourenv-rg in Azure Portal: https://portal.azure.com/#@/resource/subscriptions/1111111-1111-1111-1111-111111111111/resourceGroups/yourenv-rg/overview Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: https://yourenv-e2najjk4vewf2-app-service.azurewebsites.net/
2. Prozkoumání připojovací řetězec databáze
Šablona azd vygeneruje proměnné připojení pro vás jako nastavení aplikace. Nastavení aplikace je jedním ze způsobů, jak udržovat tajné kódy připojení mimo úložiště kódu.
infra/resources.bicep
V souboru vyhledejte nastavení aplikace a najděte nastavení proAZURE_POSTGRESQL_CONNECTIONSTRING
.resource appSettings 'config' = { name: 'appsettings' properties: { SCM_DO_BUILD_DURING_DEPLOYMENT: 'true' AZURE_POSTGRESQL_CONNECTIONSTRING: 'dbname=${pythonAppDatabase.name} host=${postgresServer.name}.postgres.database.azure.com port=5432 sslmode=require user=${postgresServer.properties.administratorLogin} password=${databasePassword}' SECRET_KEY: secretKey AZURE_REDIS_CONNECTIONSTRING: 'rediss://:${redisCache.listKeys().primaryKey}@${redisCache.name}.redis.cache.windows.net:6380/0' } }
AZURE_POSTGRESQL_CONNECTIONSTRING
obsahuje připojovací řetězec do databáze Postgres v Azure. Abyste se k němu mohli připojit, musíte ho použít ve svém kódu. Kód, který používá tuto proměnnou prostředí, najdete v src/fastapi/models.py:sql_url = "" if os.getenv("WEBSITE_HOSTNAME"): logger.info("Connecting to Azure PostgreSQL Flexible server based on AZURE_POSTGRESQL_CONNECTIONSTRING...") env_connection_string = os.getenv("AZURE_POSTGRESQL_CONNECTIONSTRING") if env_connection_string is None: logger.info("Missing environment variable AZURE_POSTGRESQL_CONNECTIONSTRING") else: # Parse the connection string details = dict(item.split('=') for item in env_connection_string.split()) # Properly format the URL for SQLAlchemy sql_url = ( f"postgresql://{quote_plus(details['user'])}:{quote_plus(details['password'])}" f"@{details['host']}:{details['port']}/{details['dbname']}?sslmode={details['sslmode']}" ) else: logger.info("Connecting to local PostgreSQL server based on .env file...") load_dotenv() POSTGRES_USERNAME = os.environ.get("DBUSER") POSTGRES_PASSWORD = os.environ.get("DBPASS") POSTGRES_HOST = os.environ.get("DBHOST") POSTGRES_DATABASE = os.environ.get("DBNAME") POSTGRES_PORT = os.environ.get("DBPORT", 5432) sql_url = f"postgresql://{POSTGRES_USERNAME}:{POSTGRES_PASSWORD}@{POSTGRES_HOST}:{POSTGRES_PORT}/{POSTGRES_DATABASE}" engine = create_engine(sql_url)
3. Prozkoumání spouštěcího příkazu
služba Aplikace Azure ke spuštění aplikace FastAPI vyžaduje spouštěcí příkaz. Šablona azd nastaví tento příkaz za vás v instanci služby App Service.
infra/resources.bicep
V souboru vyhledejte deklaraci pro váš web a pak vyhledejte nastavení proappCommandLine
. Toto je nastavení spouštěcího příkazu.resource web 'Microsoft.Web/sites@2022-03-01' = { name: '${prefix}-app-service' location: location tags: union(tags, { 'azd-service-name': 'web' }) kind: 'app,linux' properties: { serverFarmId: appServicePlan.id siteConfig: { alwaysOn: true linuxFxVersion: 'PYTHON|3.11' ftpsState: 'Disabled' appCommandLine: 'src/entrypoint.sh' minTlsVersion: '1.2' } httpsOnly: true } identity: { type: 'SystemAssigned' }
Spouštěcí příkaz spustí soubor src/entrypoint.sh. Prozkoumejte kód v souboru a seznamte se s příkazy, které app Service spouští, aby se spustila vaše aplikace:
#!/bin/bash set -e python3 -m pip install --upgrade pip python3 -m pip install -e src python3 src/fastapi_app/seed_data.py python3 -m gunicorn fastapi_app:app -c src/gunicorn.conf.py
Další informace o konfiguraci a spuštění aplikace ve službě App Service najdete v tématu Konfigurace linuxové aplikace Pythonu pro službu Aplikace Azure Service.
4. Generování schématu databáze
Možná jste si v předchozí části všimli, že entrypoint.sh obsahuje následující řádek: python3 src/fastapi_app/seed_data.py
. Tento příkaz migruje databázi. V ukázkové aplikaci se zajistí pouze vytvoření správných tabulek ve vaší databázi. Nenaplní tyto tabulky žádnými daty.
V této části spustíte tento příkaz ručně pro demonstrační účely. S databází PostgreSQL chráněnou virtuální sítí je nejjednodušší způsob spuštění příkazu v relaci SSH s kontejnerem služby App Service.
Pomocí hodnoty služby App Service , kterou jste si poznamenali dříve ve výstupu azd, a šablony uvedené níže vytvořte adresu URL relace SSH a přejděte na ni v prohlížeči:
https://<app-name>.scm.azurewebsites.net/webssh/host
V terminálu SSH spusťte
python3 src/fastapi_app/seed_data.py
příkaz . Pokud proběhne úspěšně, služba App Service se úspěšně připojuje k databázi.Poznámka:
Kromě restartování aplikace se můžou zachovat jenom změny v
/home
souborech. Změny mimo/home
jiné se neuchovávají.
5. Přejděte do aplikace.
Ve výstupu azd vyhledejte adresu URL aplikace a přejděte na ni v prohlížeči. Adresa URL vypadá takto ve výstupu AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: https://<app-name>.azurewebsites.net/
Přidejte do seznamu několik restaurací.
Blahopřejeme, spouštíte webovou aplikaci ve službě Aplikace Azure Service se zabezpečeným připojením ke službě Azure Database for PostgreSQL.
6. Streamování diagnostických protokolů
Aplikace Azure Služba může zaznamenávat protokoly, které vám pomůžou diagnostikovat problémy s vaší aplikací. Pro usnadnění používání šablony AZD už protokolování do místního systému souborů povolilo.
Ukázková aplikace používá modul protokolování standardní knihovny Pythonu k výstupním protokolům. Ukázková aplikace zahrnuje volání protokolovacího nástroje, jak je znázorněno níže.
@app.get("/", response_class=HTMLResponse)
async def index(request: Request, session: Session = Depends(get_db_session)):
logger.info("root called")
statement = (
select(Restaurant, func.avg(Review.rating).label("avg_rating"), func.count(Review.id).label("review_count"))
.outerjoin(Review, Review.restaurant == Restaurant.id)
.group_by(Restaurant.id)
)
Pomocí hodnot ID předplatného (GUID), skupiny prostředků a služby App Service, které jste si poznamenali dříve ve výstupu azd a šabloně uvedené níže, vytvořte adresu URL pro streamování protokolů služby App Service a přejděte na ni v prohlížeči.
https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream
Zobrazení událostí v diagnostických protokolech může trvat několik minut. Přečtěte si další informace o protokolování v aplikacích Pythonu v řadě o nastavení služby Azure Monitor pro vaši aplikaci v Pythonu.
7. Vyčištění prostředků
Pokud chcete odstranit všechny prostředky Azure v aktuálním prostředí nasazení, spusťte azd down
příkaz .
azd down
Řešení problému
Níže jsou uvedené problémy, se kterými se můžete setkat při pokusu o práci v tomto kurzu a postupu při jejich řešení.
Nemůžu se připojit k relaci SSH
Pokud se nemůžete připojit k relaci SSH, nepovedlo se spustit samotnou aplikaci. Podrobnosti najdete v diagnostických protokolech . Pokud se například zobrazí nějaká chyba KeyError: 'AZURE_POSTGRESQL_CONNECTIONSTRING'
, může to znamenat, že proměnná prostředí chybí (možná jste odebrali nastavení aplikace).
Při spouštění migrací databází se zobrazí chyba
Pokud dojde k nějakým chybám souvisejícím s připojením k databázi, zkontrolujte, jestli nedošlo ke změně nastavení aplikace (AZURE_POSTGRESQL_CONNECTIONSTRING
). Bez toho připojovací řetězec nemůže migrovat příkaz komunikovat s databází.
Nejčastější dotazy
- Kolik stojí toto nastavení?
- Návody se připojit k serveru PostgreSQL, který je zabezpečený za virtuální sítí pomocí jiných nástrojů?
- Jak místní vývoj aplikací funguje s GitHub Actions?
Kolik stojí toto nastavení?
Ceny vytvořených prostředků jsou následující:
- Plán služby App Service se vytvoří na úrovni Basic a dá se vertikálně navýšit nebo snížit. Podívejte se na ceny služby App Service.
- Flexibilní server PostgreSQL se vytváří v nejnižší vrstvě s možností nárazového škálování Standard_B1ms s minimální velikostí úložiště, kterou je možné vertikálně navýšit nebo snížit. Podívejte se na ceny služby Azure Database for PostgreSQL.
- Za virtuální síť se neúčtují poplatky, pokud nenakonfigurujete další funkce, jako je partnerský vztah. Podívejte se na ceny služby Azure Virtual Network.
- Za privátní zónu DNS se účtují malé poplatky. Podívejte se na ceny Azure DNS.
Návody se připojit k serveru PostgreSQL, který je zabezpečený za virtuální sítí pomocí jiných nástrojů?
- Základní přístup z nástroje příkazového řádku můžete spustit
psql
z terminálu SSH aplikace. - Pokud se chcete připojit z desktopového nástroje, musí být váš počítač ve virtuální síti. Může to být například virtuální počítač Azure, který je připojený k jedné z podsítí, nebo počítač v místní síti, který má připojení VPN typu site-to-site s virtuální sítí Azure.
- Azure Cloud Shell můžete také integrovat s virtuální sítí.
Jak místní vývoj aplikací funguje s GitHub Actions?
Když jako příklad použijete automaticky vygenerovaný soubor pracovního postupu ze služby App Service, spustí se nové git push
sestavení a nasazení. Z místního klonu úložiště GitHub provedete požadované aktualizace a nasdílíte je na GitHub. Příklad:
git add .
git commit -m "<some-message>"
git push origin main
Další kroky
V dalším kurzu se dozvíte, jak zabezpečit aplikaci pomocí vlastní domény a certifikátu.
Zjistěte, jak App Service spouští aplikaci v Pythonu: