Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam tutorial ini, Anda menyebarkan aplikasi web Python berbasis data (FastAPI ) ke Azure App Service dengan layanan database relasional Azure Database for PostgreSQL . Azure App Service mendukung Python di lingkungan server Linux. Jika mau, lihat tutorial Flask atau tutorial Django sebagai gantinya.
Untuk menyelesaikan tutorial ini, Anda memerlukan:
- Akun Azure dengan langganan aktif. Jika Anda tidak memiliki akun Azure, Anda dapat membuatnya secara gratis.
- Pengetahuan tentang Python dengan pengembangan FastAPI
- Akun Azure dengan langganan aktif. Jika Anda tidak memiliki akun Azure, Anda dapat membuatnya secara gratis.
- Azure Developer CLI terinstal. Anda dapat mengikuti langkah-langkah dengan Azure Cloud Shell karena sudah menginstal Azure Developer CLI.
- Pengetahuan tentang Python dengan pengembangan FastAPI
Lewati ke akhir
Dengan Azure Developer CLI terinstal, Anda dapat melompat ke akhir tutorial dengan menjalankan perintah berikut di direktori kerja kosong:
azd auth login
azd init --template msdocs-fastapi-postgresql-sample-app
azd up
Aplikasi sampel
Sampel aplikasi Python menggunakan kerangka kerja FastAPI disediakan untuk membantu Anda mengikuti tutorial ini. Untuk menyebarkannya tanpa menjalankannya secara lokal, lewati bagian ini.
Untuk menjalankan aplikasi secara lokal, pastikan Anda memiliki Python 3.8 atau yang lebih tinggi dan PostgreSQL yang diinstal secara lokal. Kemudian, kloning cabang repositori starter-no-infra
sampel dan beralih ke direktori akar repositori.
git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-fastapi-postgresql-sample-app
cd msdocs-fastapi-postgresql-sample-app
Buat file .env seperti yang ditunjukkan di bawah ini menggunakan file .env.sample sebagai panduan. Atur nilai DBNAME
ke nama database yang ada di instans PostgreSQL lokal Anda. Atur nilai DBHOST
, , DBUSER
, dan DBPASS
sesuai untuk instans PostgreSQL lokal Anda.
DBNAME=<database name>
DBHOST=<database-hostname>
DBUSER=<db-user-name>
DBPASS=<db-password>
Buat lingkungan virtual untuk aplikasi:
py -m venv .venv
.venv\scripts\activate
Pasang dependensi:
python3 -m pip install -r src/requirements.txt
Instal aplikasi sebagai paket yang dapat diedit:
python3 -m pip install -e src
Jalankan aplikasi sampel dengan perintah berikut:
# 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. Buat App Service dan PostgreSQL
Dalam langkah ini, Anda membuat sumber daya Azure. Langkah-langkah yang digunakan dalam tutorial ini membuat sekumpulan sumber daya aman secara default yang menyertakan App Service dan Azure Database for PostgreSQL. Untuk proses pembuatan, Anda menentukan:
- Nama untuk aplikasi web. Ini adalah nama yang digunakan sebagai bagian dari nama DNS untuk aplikasi web Anda.
- Wilayah tempat aplikasi dijalankan secara fisik di dunia.
- Tumpukan Runtime untuk aplikasi tersebut. Di sinilah Anda memilih versi Python yang akan digunakan untuk aplikasi Anda.
- Paket Hosting untuk aplikasi. Ini adalah tingkat harga yang mencakup serangkaian fitur dan kapasitas penskalaan untuk aplikasi Anda.
- Grup Sumber Daya untuk aplikasi. Grup sumber daya memungkinkan Anda mengelompokkan (dalam kontainer logika) semua sumber daya Azure yang diperlukan untuk aplikasi.
Masuk ke portal Microsoft Azure dan ikuti langkah-langkah ini untuk membuat sumber daya Azure App Service Anda.
Langkah 1: Di portal Microsoft Azure:
- Masukkan "database apl web" di bilah pencarian di bagian atas portal Azure.
- Pilih item berlabel Aplikasi Web + Database di bawah judul Marketplace . Anda juga dapat menavigasi ke wizard pembuatan secara langsung.
Langkah 2: Di halaman Buat Aplikasi Web + Database , isi formulir sebagai berikut.
- Grup Sumber Daya → Pilih Buat baru dan gunakan nama msdocs-python-postgres-tutorial.
- Wilayah → wilayah Azure mana pun di dekat Anda.
- Nama → msdocs-python-postgres-XYZ di mana XYZ adalah tiga karakter acak. Nama ini harus unik di seluruh Azure.
- Stack runtime → Python 3.12.
- Database → PostgreSQL - Server Fleksibel dipilih secara default sebagai mesin database. Nama server dan nama database juga diatur secara default ke nilai yang sesuai.
- Paket hosting → Basic. Setelah siap, Anda dapat meningkatkan skala ke tingkat harga produksi nanti.
- Pilih Tinjau + buat.
- Setelah validasi selesai, pilih Buat.
Langkah 3: Penyebaran membutuhkan waktu beberapa menit untuk diselesaikan. Setelah penyebaran selesai, pilih tombol Buka sumber daya . Anda diarahkan ke aplikasi App Service, tetapi sumber daya berikut dibuat:
- Grup sumber daya → Kontainer untuk semua sumber daya yang dibuat.
- Paket App Service → Menentukan sumber daya komputasi untuk App Service. Rencana Linux di tingkat Basic telah dibuat.
- App Service → Mewakili aplikasi Anda dan berjalan dalam paket App Service.
- Jaringan virtual → Terintegrasi dengan aplikasi App Service dan mengisolasi lalu lintas jaringan back-end.
- Server fleksibel Azure Database for PostgreSQL → Hanya dapat diakses dari dalam jaringan virtual. Database dan pengguna dibuat untuk Anda di server.
- Zona DNS privat → Memungkinkan resolusi DNS server PostgreSQL di jaringan virtual.
Langkah 4: Untuk aplikasi FastAPI, Anda harus memasukkan perintah startup sehingga App service dapat memulai aplikasi Anda. Pada halaman App Service:
- Di menu sebelah kiri, di bawah Pengaturan, pilih Konfigurasi.
- Di tab Pengaturan umum halaman Konfigurasi , masukkan
src/entrypoint.sh
di bidang Perintah Startup di bawah Pengaturan tumpukan. - Pilih Simpan. Saat diminta, pilih Lanjutkan. Untuk mempelajari selengkapnya tentang konfigurasi dan startup aplikasi di App Service, lihat Mengonfigurasi aplikasi Linux Python untuk Azure App Service.
2. Verifikasi pengaturan koneksi
Wizard pembuatan telah menghasilkan variabel konektivitas sebagai pengaturan aplikasi untuk Anda. Pengaturan aplikasi adalah salah satu cara untuk menjaga rahasia koneksi keluar dari repositori kode Anda. Saat Anda siap untuk memindahkan rahasia Anda ke lokasi yang lebih aman, berikut adalah artikel tentang menyimpan di Azure Key Vault.
Langkah 1: Di halaman App Service, di menu sebelah kiri, pilih Variabel lingkungan.
Langkah 2: Di tab Pengaturan aplikasi dari halaman Variabel lingkungan , verifikasi bahwa AZURE_POSTGRESQL_CONNECTIONSTRING
ada. string koneksi akan disuntikkan ke lingkungan runtime sebagai variabel lingkungan.
3. Menyebarkan kode sampel
Dalam langkah ini, Anda mengonfigurasi penyebaran GitHub menggunakan GitHub Actions. Ini hanya salah satu dari banyak cara untuk menyebarkan ke App Service, tetapi juga cara yang bagus untuk memiliki integrasi berkelanjutan dalam proses penyebaran Anda. Secara default, setiap tindakan seperti git push
pada repositori GitHub Anda akan memulai proses build dan deploy.
Langkah 1: Di jendela browser baru:
- Masuk ke akun GitHub Anda.
- Arahkan ke https://github.com/Azure-Samples/msdocs-fastapi-postgresql-sample-app.
- Pilih Fork.
- Pilih Buat fork.
Langkah 2: Di halaman GitHub, buka Visual Studio Code di browser dengan menekan tombol .
.
Langkah 3: Di Visual Studio Code di browser, buka src/fastapi/models.py di penjelajah. Lihat variabel lingkungan yang digunakan di lingkungan produksi, termasuk pengaturan aplikasi yang Anda lihat di halaman konfigurasi.
Langkah 4: Kembali ke halaman App Service, di menu sebelah kiri, di bawah Penyebaran, pilih Pusat Penyebaran.
Langkah 5: Di halaman Pusat Penyebaran:
- Di Sumber, pilih GitHub. Secara default, GitHub Actions dipilih sebagai penyedia build.
- Masuk ke akun GitHub Anda dan ikuti perintah untuk mengotorisasi Azure.
- Di Organisasi, pilih akun Anda.
- Di Repositori, pilih msdocs-fastapi-postgresql-sample-app.
- Di Cabang, pilih main.
- Pertahankan opsi default dipilih untuk Menambahkan alur kerja.
- Di bawah Jenis autentikasi, pilih Identitas yang ditetapkan pengguna.
- Di menu atas, pilih Simpan. App Service menerapkan file alur kerja ke dalam repositori GitHub yang dipilih, di direktori
.github/workflows
.
Langkah 6: Di halaman Pusat Penyebaran:
- Pilih Log. Proses penyebaran sudah dimulai.
- Di item log untuk eksekusi penyebaran, pilih Log Pembuatan/Penerapan.
Langkah 7: Anda dibawa ke repositori GitHub Anda dan melihat bahwa tindakan GitHub sedang berjalan. File alur kerja menentukan dua tahap terpisah, mem-build dan menyebarkan. Tunggu hingga eksekusi GitHub memperlihatkan status Selesai. Dibutuhkan sekitar 5 menit.
Mengalami masalah? Periksa panduan Pemecahan Masalah.
4. Hasilkan skema database
Di bagian sebelumnya, Anda menambahkan src/entrypoint.sh sebagai perintah startup untuk aplikasi Anda.
entrypoint.sh berisi baris berikut: python3 src/fastapi_app/seed_data.py
. Perintah ini memigrasikan database Anda. Di aplikasi sampel, ini hanya memastikan bahwa tabel yang benar dibuat di database Anda. Ini tidak mengisi tabel ini dengan data apa pun.
Di bagian ini, Anda akan menjalankan perintah ini secara manual untuk tujuan demonstrasi. Dengan database PostgreSQL yang dilindungi oleh jaringan virtual, cara term mudah untuk menjalankan perintah adalah dalam sesi SSH dengan kontainer App Service.
Langkah 1: Kembali ke halaman App Service, di menu sebelah kiri,
- Pilih SSH.
- Pilih Buka.
Langkah 2: Di terminal SSH, jalankan python3 src/fastapi_app/seed_data.py
. Jika berhasil, App Service berhasil tersambung ke database.
Hanya perubahan pada file di /home
yang dapat bertahan di luar mulai ulang aplikasi. Perubahan di luar /home
tidak dipertahankan.
5. Telusuri aplikasi
Langkah 1: Di halaman App Service:
- Dari menu sebelah kiri, pilih Gambaran Umum.
- Pilih URL aplikasi Anda.
Langkah 2: Tambahkan beberapa restoran ke daftar. Selamat, Anda menjalankan aplikasi web di Azure App Service, dengan konektivitas yang aman ke Azure Database for PostgreSQL.
6. Mengalirkan log diagnostik
Aplikasi sampel menggunakan modul pengelogan Pustaka Standar Python untuk membantu Anda mendiagnosis masalah dengan aplikasi Anda. Aplikasi sampel menyertakan panggilan ke pencatat seperti yang ditunjukkan dalam kode berikut.
@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)
)
Langkah 1: Di halaman App Service:
- Dari menu sebelah kiri, di bawah Pemantauan, pilih Log App Service.
- Di bawah Pengelogan aplikasi, pilih Sistem File.
- Di menu atas, pilih Simpan.
Langkah 2: Dari menu sebelah kiri, pilih Aliran log. Anda melihat log untuk aplikasi Anda, termasuk log platform dan log dari dalam kontainer.
Peristiwa dapat memakan waktu beberapa menit untuk muncul di log diagnostik. Pelajari selengkapnya tentang pengelogan di aplikasi Python dalam seri tentang menyiapkan Azure Monitor untuk aplikasi Python Anda.
7. Membersihkan sumber daya
Setelah selesai, Anda dapat menghapus semua sumber daya dari langganan Azure dengan menghapus grup sumber daya.
Langkah 1: Di bilah pencarian di bagian atas portal Microsoft Azure:
- Masukkan nama grup sumber daya.
- Pilih grup sumber daya.
Langkah 2: Di halaman grup sumber daya, pilih Hapus grup sumber daya.
Langkah 3:
- Masukkan nama grup sumber daya untuk mengonfirmasi penghapusan Anda.
- Pilih Hapus.
1. Buat sumber daya Azure dan sebarkan aplikasi sampel
Dalam langkah ini, Anda membuat sumber daya Azure dan menyebarkan aplikasi sampel ke App Service di Linux. Langkah-langkah yang digunakan dalam tutorial ini membuat sekumpulan sumber daya aman secara default yang menyertakan App Service dan Azure Database for PostgreSQL.
Jika Anda belum melakukannya, kloning cabang repositori
starter-no-infra
sampel di terminal lokal.git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-fastapi-postgresql-sample-app cd msdocs-fastapi-postgresql-sample-app
Cabang kloning ini adalah titik awal Anda. Ini berisi aplikasi FastAPI berbasis data sederhana.
Dari akar repositori, jalankan
azd init
.azd init --template msdocs-fastapi-postgresql-sample-app
Saat diminta, berikan jawaban berikut:
Pertanyaan Jawaban Direktori saat ini tidak kosong. Apakah Anda ingin menginisialisasi proyek di sini di '<your-directory>'? Y Apa yang ingin Anda lakukan dengan file-file ini? Jaga agar file saya yang ada tidak berubah Masukkan nama lingkungan baru Ketik nama unik. Templat azd menggunakan nama ini sebagai bagian dari nama DNS aplikasi web Anda di Azure ( <app-name>.azurewebsites.net
). Karakter alfanumerik dan tanda hubung diperbolehkan.Jalankan
azd up
perintah untuk menyediakan sumber daya Azure yang diperlukan dan menyebarkan kode aplikasi. Jika Anda belum masuk ke Azure, browser akan meluncurkan dan meminta Anda untuk masuk. Perintahazd up
juga akan meminta Anda untuk memilih langganan dan lokasi yang diinginkan untuk men-deploy.azd up
Perintah
azd up
dapat memakan waktu beberapa menit untuk diselesaikan. Ini juga mengkompilasi dan menyebarkan kode aplikasi Anda. Saat sedang berjalan, perintah menyediakan pesan tentang proses provisi dan penyebaran, termasuk tautan ke penyebaran di Azure. Setelah selesai, perintah juga menampilkan tautan ke aplikasi penyebaran.Templat azd ini berisi file (azure.yaml dan direktori infra ) yang menghasilkan arsitektur aman secara default dengan sumber daya Azure berikut:
- Grup sumber daya → Kontainer untuk semua sumber daya yang dibuat.
- Paket App Service → Menentukan sumber daya komputasi untuk App Service. Paket Linux di tingkat B1 ditentukan.
- App Service → Mewakili aplikasi Anda dan berjalan dalam paket App Service.
- Jaringan virtual → Terintegrasi dengan aplikasi App Service dan mengisolasi lalu lintas jaringan back-end.
- Server fleksibel Azure Database for PostgreSQL → Hanya dapat diakses dari dalam jaringan virtual. Database dan pengguna dibuat untuk Anda di server.
- Zona DNS privat → Memungkinkan resolusi DNS server PostgreSQL di jaringan virtual.
- Ruang kerja Analitik Log → Bertindak sebagai kontainer target bagi aplikasi Anda untuk mengirimkan lognya, di mana Anda juga dapat mengkueri log.
azd up
Saat perintah selesai, catat nilai untuk ID Langganan (Guid), App Service, dan Grup Sumber Daya dalam output. Anda akan menggunakannya di bagian berikut. Output Anda akan terlihat mirip dengan output (parsial) berikut: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. Periksa database string koneksi
Templat azd menghasilkan variabel konektivitas untuk Anda sebagai pengaturan aplikasi. Pengaturan aplikasi adalah salah satu cara untuk menjaga rahasia koneksi keluar dari repositori kode Anda.
Dalam file
infra/resources.bicep
, temukan pengaturan aplikasi dan temukan pengaturan untukAZURE_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
berisi string koneksi ke database Postgres di Azure. Anda perlu menggunakannya dalam kode Anda untuk menyambungkannya. Anda dapat menemukan kode yang menggunakan variabel lingkungan ini di 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. Periksa perintah startup
Azure App Service memerlukan perintah startup untuk menjalankan aplikasi FastAPI Anda. Templat azd mengatur perintah ini untuk Anda di instans App Service Anda.
Dalam file
infra/resources.bicep
, temukan deklarasi untuk situs web Anda lalu temukan pengaturan untukappCommandLine
. Ini adalah pengaturan untuk perintah startup Anda.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' }
Perintah startup menjalankan file src/entrypoint.sh. Periksa kode dalam file tersebut untuk memahami perintah yang dijalankan App Service untuk memulai aplikasi Anda:
#!/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
Untuk mempelajari selengkapnya tentang konfigurasi dan startup aplikasi di App Service, lihat Mengonfigurasi aplikasi Linux Python untuk Azure App Service.
4. Hasilkan skema database
Anda mungkin telah memperhatikan di bagian sebelumnya bahwa entrypoint.sh berisi baris berikut: python3 src/fastapi_app/seed_data.py
. Perintah ini memigrasikan database Anda. Di aplikasi sampel, ini hanya memastikan bahwa tabel yang benar dibuat di database Anda. Ini tidak mengisi tabel ini dengan data apa pun.
Di bagian ini, Anda akan menjalankan perintah ini secara manual untuk tujuan demonstrasi. Dengan database PostgreSQL yang dilindungi oleh jaringan virtual, cara term mudah untuk menjalankan perintah adalah dalam sesi SSH dengan kontainer App Service.
Gunakan nilai App Service yang Anda catat sebelumnya dalam output azd untuk membuat URL untuk sesi SSH dan menavigasinya di browser:
Di terminal SSH, jalankan
python3 src/fastapi_app/seed_data.py
. Jika berhasil, App Service berhasil tersambung ke database.Catatan
Hanya perubahan pada file di
/home
yang dapat bertahan di luar mulai ulang aplikasi. Perubahan di luar/home
tidak dipertahankan.
5. Telusuri aplikasi
Dalam output azd, temukan URL aplikasi Anda dan navigasikan ke url tersebut di browser. URL terlihat seperti ini dalam output AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Tambahkan beberapa restoran ke daftar.
Selamat, Anda menjalankan aplikasi web di Azure App Service, dengan konektivitas yang aman ke Azure Database for PostgreSQL.
6. Mengalirkan log diagnostik
Azure App Service dapat mengambil log untuk membantu Anda mendiagnosis masalah dengan aplikasi Anda. Untuk kenyamanan, templat azd telah mengaktifkan pengelogan ke sistem file lokal.
Aplikasi sampel menggunakan modul pengelogan Pustaka Standar Python untuk log output. Aplikasi sampel mencakup panggilan ke pencatat seperti yang ditunjukkan di bawah ini.
@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)
)
Untuk mengakses aliran log, buka aplikasi Anda di portal Microsoft Azure. Pilih Pemantauan>Aliran Log.
Peristiwa dapat memakan waktu beberapa menit untuk muncul di log diagnostik. Pelajari selengkapnya tentang pengelogan di aplikasi Python dalam seri tentang menyiapkan Azure Monitor untuk aplikasi Python Anda.
7. Membersihkan sumber daya
Untuk menghapus semua sumber daya Azure di lingkungan penyebaran saat ini, jalankan azd down
.
azd down
Pemecahan Masalah
Tercantum di bawah ini adalah masalah yang mungkin Anda temui saat mencoba bekerja melalui tutorial ini dan langkah-langkah untuk mengatasinya.
Saya tidak dapat tersambung ke sesi SSH
Jika Anda tidak dapat terhubung ke sesi SSH, aplikasi itu sendiri telah gagal dimulai. Periksa log diagnostik untuk detailnya. Misalnya, jika Anda melihat kesalahan seperti KeyError: 'AZURE_POSTGRESQL_CONNECTIONSTRING'
, itu mungkin berarti bahwa variabel lingkungan hilang (Anda mungkin telah menghapus pengaturan aplikasi).
Saya mendapatkan kesalahan saat menjalankan migrasi database
Jika Anda mengalami kesalahan yang terkait dengan menyambungkan ke database, periksa apakah pengaturan aplikasi (AZURE_POSTGRESQL_CONNECTIONSTRING
) telah diubah. Tanpa string koneksi itu, perintah migrasi tidak dapat berkomunikasi dengan database.
Tanya jawab umum
- Berapa biaya penyiapan ini?
- Bagaimana cara menyambungkan ke server PostgreSQL yang diamankan di belakang jaringan virtual dengan alat lain?
- Bagaimana cara kerja pengembangan aplikasi lokal dengan GitHub Actions?
Berapa biaya untuk penyiapan ini?
Harga untuk sumber daya yang dibuat adalah sebagai berikut:
- Paket App Service dibuat di tingkat Dasar dan dapat ditingkatkan atau diturunkan skalanya. Lihat Harga App Service.
- Server fleksibel PostgreSQL dibuat dalam tingkat burstable terendah Standard_B1ms, dengan ukuran penyimpanan minimum, yang dapat ditingkatkan atau diturunkan skalanya. Lihat Harga Azure Database for PostgreSQL.
- Jaringan virtual tidak dikenakan biaya kecuali Anda mengonfigurasi fungsionalitas tambahan, seperti peering. Lihat Harga Azure Virtual Network.
- Zona DNS privat dikenakan biaya kecil. Lihat Harga Azure DNS.
Bagaimana cara menyambungkan ke server PostgreSQL yang diamankan di belakang jaringan virtual dengan alat lain?
- Untuk akses dasar dari alat baris perintah, Anda dapat menjalankan
psql
dari terminal SSH aplikasi. - Untuk terhubung dari alat desktop, komputer Anda harus berada dalam jaringan virtual. Misalnya, itu bisa menjadi Azure VM yang terhubung ke salah satu subnet, atau komputer di jaringan lokal yang memiliki koneksi VPN situs-ke-situs dengan jaringan virtual Azure.
- Anda juga dapat mengintegrasikan Azure Cloud Shell dengan jaringan virtual.
Bagaimana cara kerja pengembangan aplikasi lokal dengan GitHub Actions?
Menggunakan sebuah file alur kerja yang dibuat secara otomatis dari App Service sebagai contoh, masing-masing git push
memulai proses build dan pengiriman baru. Dari klon lokal repositori GitHub, Anda membuat pembaruan yang diinginkan dan mengunggahnya ke GitHub. Contohnya:
git add .
git commit -m "<some-message>"
git push origin main
Langkah berikutnya
Lanjutkan ke tutorial berikutnya untuk mempelajari cara mengamankan aplikasi Anda dengan domain dan sertifikat kustom.
Pelajari cara Azure App Service menjalankan aplikasi Python: