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.
Azure App Service menyediakan tumpukan aplikasi yang telah ditentukan sebelumnya, seperti ASP.NET atau Node.js, di Windows. Stack aplikasi ini berjalan pada IIS. Lingkungan Windows yang telah dikonfigurasi sebelumnya membatasi sistem operasi dari hal-hal berikut:
- Akses administratif.
- Penginstalan perangkat lunak.
- Perubahan pada Global Assembly Cache.
Untuk informasi selengkapnya, lihat Fungsionalitas sistem operasi di App Service.
Anda dapat menyebarkan image Windows yang dikonfigurasi secara kustom dari Visual Studio untuk membuat perubahan OS yang dibutuhkan aplikasi Anda. Melakukannya memudahkan migrasi aplikasi lokal yang memerlukan OS kustom dan konfigurasi perangkat lunak. Tutorial ini menunjukkan cara bermigrasi ke App Service aplikasi ASP.NET yang menggunakan font kustom yang diinstal di pustaka font Windows. Anda menyebarkan image Windows yang dikonfigurasi khusus dari Visual Studio ke Azure Container Registry lalu menjalankannya di App Service.
Prasyarat
- Daftar untuk akun Docker Hub.
- Pasang Docker untuk Windows.
- Konfigurasikan Docker untuk menjalankan kontainer Windows.
-
Pasang Visual Studio 2022 dengan workload ASP.NET dan pengembangan web serta pengembangan Azure. Jika Anda sudah menginstal Visual Studio 2022:
- Pasang pembaruan terbaru di Visual Studio dengan memilih Bantuan>Periksa Pembaruan.
- Tambahkan beban kerja di Visual Studio dengan mengeklik Perkakas>Dapatkan Perkakas dan Fitur.
Menyiapkan aplikasi secara lokal
Unduh sampel
Dalam langkah ini, Anda menyiapkan proyek .NET lokal.
- Unduh proyek sampel.
- Ekstrak (unzip) file custom-font-win-container-master.zip.
Proyek sampel berisi aplikasi ASP.NET sederhana yang menggunakan font kustom yang diinstal ke pustaka font Windows. Tidak perlu menginstal font. Namun, sampel adalah contoh aplikasi yang terintegrasi dengan sistem operasi yang mendasari. Untuk memigrasikan aplikasi tersebut ke App Service, Anda harus baik merancang ulang arsitektur kode Anda untuk menghapus integrasi, atau memigrasikannya apa adanya dalam kontainer Windows kustom.
Instal font
Di Windows Explorer, buka custom-font-win-container-master/CustomFontSample, klik kanan FrederickatheGreat-Regular.ttf, dan pilih Instal.
Font ini tersedia untuk umum dari Google Fonts.
Jalankan aplikasi
Buka file custom-font-win-container-master/CustomFontSample.sln di Visual Studio.
Pilih Ctrl+F5 untuk menjalankan aplikasi tanpa penelusuran kesalahan. Aplikasi ini ditampilkan di browser default Anda.
Karena aplikasi menggunakan font yang diinstal, aplikasi tidak dapat berjalan di kotak pasir App Service. Namun, Anda dapat menyebarkannya dengan menggunakan kontainer Windows sebagai gantinya, karena Anda dapat menginstal font di kontainer Windows.
Konfigurasikan kontainer Windows
Di Penjelajah Solusi, klik kanan proyek CustomFontSample dan pilih Add>Dukungan Orkestrasi Kontainer.
Pilih Docker Compose>OK.
Proyek Anda sekarang diatur untuk dijalankan di kontainer Windows.
Dockerfile ditambahkan ke proyek CustomFontSample, dan proyek docker-compose ditambahkan ke solusi.
Dari Penjelajah Solusi, buka Dockerfile.
Anda harus menggunakan image induk yang kompatibel. Ubah gambar induk dengan mengganti baris FROM dengan kode berikut:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019
Tambahkan baris berikut ke akhir file dan simpan file:
RUN ${source:-obj/Docker/publish/InstallFont.ps1}
Anda dapat menemukan InstallFont.ps1 dalam proyek CustomFontSample. Ini adalah skrip sederhana yang menginstal font. Anda dapat menemukan versi skrip yang lebih kompleks di Galeri PowerShell.
Catatan
Untuk menguji kontainer Windows secara lokal, pastikan Docker dimulai di komputer lokal Anda.
Publikasikan ke Azure Container Registry
Azure Container Registry dapat menyimpan image Anda untuk penyebaran kontainer. Anda dapat mengonfigurasi App Service untuk menggunakan gambar yang dihosting di Container Registry.
Buka jendela Terbitkan
Di Penjelajah Solusi, klik kanan proyek CustomFontSample dan pilih Terbitkan.
Buat dan menerbitkan registri
Di jendela Terbitkan , pilih Azure, lalu pilih Berikutnya.
Pilih Azure Container Registry, lalu pilih Berikutnya.
Pilih langganan tempat Anda ingin menerbitkan registri, lalu pilih Buat baru.
Masuk dengan akun Azure
Di jendela Azure Container Registry , pilih Tambahkan akun, lalu masuk ke langganan Azure Anda. Jika Anda sudah masuk, pilih akun yang berisi langganan yang diinginkan dari daftar dropdown.
Konfigurasikan registri
Konfigurasikan registri kontainer baru dengan menggunakan nilai yang disarankan dalam tabel berikut sebagai panduan. Setelah selesai, pilih Buat.
| Pengaturan | Nilai yang disarankan |
|---|---|
| Awalan DNS | Pertahankan nama registri yang dihasilkan, atau ubah ke nama unik lainnya. |
| grup Sumber Daya | Pilih Baru, masukkan myResourceGroup, lalu pilih OK. |
| SKU | Dasar. Untuk informasi selengkapnya, lihat Tingkatan harga. |
| Lokasi Registry | Eropa Barat |
Pilih Selesai.
Jendela terminal terbuka dan menampilkan kemajuan penyebaran image. Tunggu hingga penerapan selesai.
Masuk ke Azure
Masuk ke portal Azure.
Buat aplikasi web
Pilih Buat sumber daya, lalu pilih Buat di bawah Aplikasi Web.
Konfigurasikan dasar aplikasi
Pada tab Dasar , konfigurasikan pengaturan dengan menggunakan tabel berikut ini sebagai panduan.
| Pengaturan | Nilai yang disarankan |
|---|---|
| Langganan | Pastikan langganan yang benar dipilih. |
| grup Sumber Daya | Pilih Buat baru, masukkan myResourceGroup, lalu pilih OK. |
| Nama | Masukkan nama unik. URL aplikasi web adalah https://<app-name>.azurewebsites.net, di mana <app-name> adalah nama aplikasi Anda. |
| Menerbitkan | Kontainer |
| Sistem Operasi | Windows |
| Wilayah | Eropa Barat |
| Paket Windows | Pilih Buat baru, masukkan myAppServicePlan, lalu pilih OK. |
Tab Dasar-Dasar Anda akan terlihat mirip dengan yang satu ini:
Mengonfigurasi kontainer Windows
Pada tab Kontainer , konfigurasikan kontainer Windows kustom Anda seperti yang diperlihatkan dalam tabel berikut, lalu pilih Tinjau + buat.
| Pengaturan | Nilai yang disarankan |
|---|---|
| Sumber Gambar | Azure Container Registry |
| Registry | Pilih registri yang Anda buat sebelumnya. |
| Gambar | customfontsample |
| Tag | terbaru |
Pembuatan aplikasi lengkap
Klik Buat dan tunggu hingga Azure membuat sumber daya yang diperlukan.
Buka aplikasi web
Saat penyebaran selesai, pesan pemberitahuan muncul:
Pilih Buka resource.
Di halaman aplikasi, pilih tautan di bawah URL.
Halaman browser baru dibuka ke halaman berikut:
Tunggu beberapa menit dan coba lagi, hingga Anda mendapatkan beranda dengan font yang Anda harapkan:
Selamat! Anda telah memigrasikan aplikasi ASP.NET ke App Service dalam kontainer Windows.
Lihat log saat kontainer memulai
Mungkin perlu waktu bagi kontainer Windows untuk memuat. Untuk melihat kemajuannya, buka URL berikut. (Ganti <app-name> dengan nama aplikasi Anda.)
https://<app-name>.scm.azurewebsites.net/api/logstream
Log yang dialirkan terlihat seperti ini:
14/09/2018 23:16:19.889 INFO - Site: fonts-win-container - Creating container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest.
14/09/2018 23:16:19.928 INFO - Site: fonts-win-container - Create container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest succeeded. Container Id 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:23.405 INFO - Site: fonts-win-container - Start container succeeded. Container: 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Configuring container
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container start-up and configuration completed successfully
Azure App Service menggunakan teknologi kontainer Docker untuk menghosting gambar bawaan dan gambar kustom. Untuk melihat daftar gambar bawaan, jalankan perintah Azure CLI, az webapp list-runtimes --os linux. Jika gambar tersebut tidak memenuhi kebutuhan Anda, Anda dapat membuat dan menerapkan gambar kustom.
Catatan
Kontainer Anda harus menargetkan arsitektur x86-64. ARM64 tidak didukung.
Dalam tutorial ini, Anda akan mempelajari cara:
- Push image Docker kustom ke Azure Container Registry.
- Sebarkan image kustom ke App Service.
- Konfigurasikan variabel lingkungan.
- Tarik gambar ke App Service dengan menggunakan identitas terkelola.
- Akses log diagnostik.
- Aktifkan CI/CD dari Container Registry ke App Service.
- Sambungkan ke kontainer dengan menggunakan SSH.
Menyelesaikan tutorial ini dikenakan biaya kecil di akun Azure Anda untuk registri kontainer dan dapat dikenakan lebih banyak biaya jika Anda menghosting kontainer lebih lama dari sebulan.
Menyiapkan lingkungan awal Anda
Tutorial ini memerlukan Azure CLI versi 2.0.80 atau lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terpasang.
- Pastikan Anda memiliki akun Azure dengan langganan aktif. Buat akun secara gratis.
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah az login. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan az version untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan az upgrade.
- Instal Docker, yang Anda gunakan untuk membangun gambar Docker. Menginstal Docker mungkin perlu memulai ulang komputer.
Setelah menginstal Docker, buka jendela terminal dan verifikasi bahwa docker diinstal:
docker --version
Klon atau unduh aplikasi sampel
Anda dapat memperoleh sampel untuk tutorial ini melalui klon Git atau unduh.
Mengkloning repositori dengan menggunakan Git Bash
Kloning repositori sampel:
git clone https://github.com/Azure-Samples/docker-django-webapp-linux.git --config core.autocrlf=input
Pastikan Anda menyertakan --config core.autocrlf=input argumen untuk menjamin akhiran baris yang tepat dalam file yang digunakan di dalam kontainer Linux.
Lalu navigasikan ke folder:
cd docker-django-webapp-linux
Unduh ZIP dari GitHub
Alih-alih menggunakan kloning Git, Anda dapat membuka https://github.com/Azure-Samples/docker-django-webapp-linux dan memilih Kode>Lokal>Unduh ZIP.
Ekstrak file ZIP ke dalam folder bernama docker-django-webapp-linux.
Kemudian buka jendela terminal di folder docker-django-webapp-linux.
Siapkan wadah sampel
Terminal browser yang lebih baru dan az webapp exec menyediakan akses terautentikasi ke kontainer Linux yang berjalan tanpa memerlukan server SSH atau password SSH tertanam di image. WebSSH Kudu lama dan az webapp ssh akses mungkin masih memerlukan server SSH. Repositori contoh berisi pengaturan SSH lama. Sebelum membangun, ganti isi Dockerfile-nya dengan konfigurasi hanya aplikasi berikut:
FROM tiangolo/uwsgi-nginx-flask:python3.6
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt --no-cache-dir
ADD . /code/
COPY init.sh /usr/local/bin/
RUN chmod u+x /usr/local/bin/init.sh
EXPOSE 8000
ENTRYPOINT ["init.sh"]
Ganti isi init.sh dengan skrip berikut, tetap menggunakan akhiran baris Linux:
#!/bin/bash
set -e
exec python /code/manage.py runserver 0.0.0.0:8000
Hapus file sshd_config lama dari folder contoh lokal Anda agar ADD . /code/ tidak menyalinnya ke dalam image.
Dockerfile menginstal ketergantungan aplikasi, menyalin aplikasi dan skrip startup, serta mengekspos port aplikasi. Entrypoint hanya memulai aplikasi Python. Perubahan ini menghapus instalasi SSH milik sampel dan kredensialnya. Gambar mencakup /bin/bash untuk terminal browser terbaru dan shell default az webapp exec .
Membangun dan menguji image secara lokal
Catatan
Docker Hub memberlakukan kuota pada jumlah penarikan anonim per IP dan jumlah penarikan terautentikasi per pengguna gratis. Jika Anda melihat bahwa penarikan dari Docker Hub dibatasi, coba jalankan docker login jika Anda belum masuk.
Jalankan perintah berikut untuk membuat image:
docker build --tag appsvc-tutorial-custom-image .Uji bahwa build berfungsi dengan menjalankan kontainer Docker secara lokal:
docker run -it -p 8000:8000 appsvc-tutorial-custom-imagePerintah ini
docker runmenentukan port dengan menggunakan-pargumen dan menyertakan nama gambar.-itmemungkinkan Anda menghentikannya dengan menggunakan Ctrl+C.Tip
Jika Anda berjalan di Windows dan melihat kesalahan *standard_init_linux.go:211: proses pengguna exec menyebabkan "tidak ada file atau direktori tersebut," file init.sh berisi akhiran baris CRLF alih-alih akhiran LF yang diharapkan. Kesalahan ini terjadi jika Anda menggunakan Git untuk mengkloning repositori sampel tetapi menghilangkan
--config core.autocrlf=inputparameter. Dalam hal ini, kloning repositori lagi dengan argumen--config. Anda mungkin juga melihat kesalahan jika Anda mengedit init.sh dan menyimpannya dengan akhiran CRLF. Dalam hal ini, simpan kembali file hanya dengan akhiran baris LF.Buka
http://localhost:8000untuk memverifikasi bahwa aplikasi web dan kontainer berfungsi dengan benar.
Buat identitas terkelola yang ditetapkan pengguna
App Service dapat menggunakan identitas terkelola default atau identitas terkelola yang ditetapkan pengguna untuk mengautentikasi dengan registri kontainer. Dalam tutorial ini, Anda akan menggunakan identitas terkelola yang ditetapkan pengguna.
Jalankan perintah az group create untuk membuat grup sumber daya:
az group create --name msdocs-custom-container-tutorial --location westeuropeAnda bisa mengubah nilai
--locationuntuk menentukan wilayah di dekat Anda.Buat identitas terkelola di grup sumber daya:
az identity create --name myID --resource-group msdocs-custom-container-tutorial
Buat registri kontainer
Buat registri kontainer dengan menggunakan perintah berikut
az acr create. Ganti<registry-name>dengan nama unik untuk registri Anda. Nama hanya boleh berisi huruf dan angka, dan harus unik di semua Azure.az acr create --name <registry-name> --resource-group msdocs-custom-container-tutorial --sku Basic --admin-enabled trueParameter
--admin-enabledini memungkinkan Anda mengunggah citra ke registri dengan menggunakan kredensial admin.Ambil kredensial administratif dengan menjalankan perintah
az credential acr show:az acr credential show --resource-group msdocs-custom-container-tutorial --name <registry-name>Output JSON dari perintah ini menyediakan dua kata sandi bersama dengan nama pengguna registri.
Dorong gambar sampel ke Container Registry
Di bagian ini, Anda mendorong gambar ke Container Registry, yang digunakan oleh App Service nanti.
Dari terminal lokal tempat Anda membuat gambar sampel, gunakan
docker loginperintah untuk masuk ke registri kontainer:docker login <registry-name>.azurecr.io --username <registry-username>Ganti
<registry-name>dan<registry-username>dengan nilai dari langkah-langkah sebelumnya. Saat diminta, ketik salah satu kata sandi dari bagian sebelumnya.Gunakan nama registri yang sama di semua langkah yang tersisa dari bagian ini.
Saat login berhasil, beri tag pada image Docker lokal Anda untuk registri:
docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestGunakan perintah
docker pushuntuk mendorong gambar ke registri:docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestMengunggah gambar untuk pertama kali mungkin memakan waktu beberapa menit karena menyertakan gambar dasar. Unggahan berikutnya biasanya lebih cepat.
Saat menunggu, Anda dapat menyelesaikan langkah-langkah di bagian berikutnya untuk mengonfigurasi App Service agar menyebarkan dari registri.
Berikan otorisasi untuk identitas terkelola untuk registri Anda
Identitas terkelola yang Anda buat belum memiliki otorisasi untuk menarik dari registri kontainer. Dalam langkah ini, Anda mengaktifkan otorisasi.
Ambil ID prinsipal untuk identitas terkelola:
principalId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query principalId --output tsv)Ambil ID sumber daya untuk registri kontainer:
registryId=$(az acr show --resource-group msdocs-custom-container-tutorial --name <registry-name> --query id --output tsv)Beri izin identitas terkelola untuk mengakses registri kontainer:
az role assignment create --assignee $principalId --scope $registryId --role "AcrPull"Untuk informasi selengkapnya tentang izin ini, lihat Apa itu kontrol akses berbasis peran Azure?.
Buat aplikasi web
Buat paket App Service dengan menggunakan
az appservice plan createperintah :az appservice plan create --name myAppServicePlan --resource-group msdocs-custom-container-tutorial --is-linuxPaket App Service setara dengan komputer virtual yang menghost aplikasi web. Secara bawaan, perintah sebelumnya menggunakan tingkat harga B1 murah yang gratis untuk bulan pertama. Anda dapat menentukan tier dengan menggunakan parameter
--sku.Buat aplikasi web dengan perintah
az webapp create:az webapp create --resource-group msdocs-custom-container-tutorial --plan myAppServicePlan --name <app-name> --deployment-container-image-name <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestGanti
<app-name>dengan nama untuk aplikasi web. Nama harus unik di seluruh Azure. Juga ganti<registry-name>dengan nama registri Anda dari bagian sebelumnya.Tip
Anda dapat mengambil pengaturan kontainer aplikasi web kapan saja dengan perintah
az webapp config container show --name <app-name> --resource-group msdocs-custom-container-tutorial. Gambar ditentukan dalam propertiDOCKER_CUSTOM_IMAGE_NAME. Saat aplikasi web disebarkan melalui templat Azure DevOps atau Azure Resource Manager, gambar juga dapat muncul di properti bernamaLinuxFxVersion. Kedua properti melayani tujuan yang sama. Jika keduanya ada dalam konfigurasi aplikasi web,LinuxFxVersionlebih diutamakan.
Mengonfigurasi aplikasi web
Dalam langkah ini, Anda mengonfigurasi aplikasi web sebagai berikut:
- Konfigurasikan aplikasi untuk mengirim permintaan ke port 8000. Kontainer sampel mendengarkan pada port 8000 untuk permintaan web.
- Konfigurasikan aplikasi Anda untuk menggunakan identitas terkelola untuk menarik gambar dari registri kontainer Anda.
- Konfigurasikan penyebaran berkelanjutan dari registri kontainer. (Setiap pendorongan gambar ke registri akan memicu aplikasi Anda untuk menarik gambar baru.) Langkah ini tidak diperlukan untuk mengonfigurasi aplikasi web Anda untuk menarik dari registri kontainer Anda, tetapi dapat memberi tahu aplikasi web saat gambar baru didorong ke registri. Jika Anda tidak menyelesaikan langkah ini, Anda harus memicu penarikan gambar secara manual dengan memulai ulang aplikasi web.
Gunakan
az webapp config appsettings setuntuk mengatur variabel lingkunganWEBSITES_PORTseperti yang diharapkan oleh kode aplikasi:az webapp config appsettings set --resource-group msdocs-custom-container-tutorial --name <app-name> --settings WEBSITES_PORT=8000Ganti
<app-name>dengan nama yang Anda gunakan di langkah sebelumnya.Aktifkan identitas terkelola yang ditetapkan pengguna di aplikasi web dengan menggunakan
az webapp identity assignperintah :id=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query id --output tsv) az webapp identity assign --resource-group msdocs-custom-container-tutorial --name <app-name> --identities $idGanti
<app-name>dengan nama yang Anda gunakan di langkah sebelumnya.Konfigurasikan aplikasi Anda untuk mengambil dari Container Registry dengan memanfaatkan identitas terkelola.
appConfig=$(az webapp config show --resource-group msdocs-custom-container-tutorial --name <app-name> --query id --output tsv) az resource update --ids $appConfig --set properties.acrUseManagedIdentityCreds=TrueGanti
<app-name>dengan nama yang Anda gunakan di langkah sebelumnya.Atur ID klien yang aplikasi web Anda gunakan untuk mengambil dari Container Registry. Langkah ini tidak diperlukan jika Anda menggunakan identitas terkelola yang ditetapkan sistem.
clientId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query clientId --output tsv) az resource update --ids $appConfig --set properties.AcrUserManagedIdentityID=$clientIdMengaktifkan CI/CD di App Service.
cicdUrl=$(az webapp deployment container config --enable-cd true --name <app-name> --resource-group msdocs-custom-container-tutorial --query CI_CD_URL --output tsv)CI_CD_URLadalah URL yang dihasilkan App Service untuk Anda. Registri Anda harus menggunakan URL ini untuk memberi tahu App Service bahwa terjadi push image. Ini sebenarnya tidak membuat webhook untuk Anda.Buat webhook di registri kontainer Anda. Gunakan CI_CD_URL yang Anda dapatkan di langkah terakhir.
az acr webhook create --name appserviceCD --registry <registry-name> --uri $cicdUrl --actions push --scope appsvc-tutorial-custom-image:latestUntuk memeriksa apakah webhook Anda sudah dikonfigurasi dengan benar, lakukan ping ke webhook dan periksa apakah Anda menerima respons "200 OK".
eventId=$(az acr webhook ping --name appserviceCD --registry <registry-name> --query id --output tsv) az acr webhook list-events --name appserviceCD --registry <registry-name> --query "[?id=='$eventId'].eventResponseMessage"Tip
Untuk melihat semua informasi tentang semua kejadian webhook, hapus parameter
--query.Jika Anda melakukan streaming log kontainer, Anda akan melihat pesan
Starting container for sitesetelah ping webhook karena webhook memicu aplikasi untuk memulai ulang.
Buka aplikasi web
Untuk menguji aplikasi, telusuri ke https://<app-name>.azurewebsites.net. Ganti <app-name> dengan nama aplikasi web Anda.
Pertama kali Anda mencoba mengakses aplikasi, mungkin perlu waktu bagi aplikasi untuk merespons karena App Service harus menarik seluruh gambar dari registri. Jika browser mengalami timeout, cukup refresh halaman. Setelah gambar awal ditarik, pengujian berikutnya akan berjalan jauh lebih cepat.
Akses log diagnostik
Saat Anda menunggu App Service menarik gambar, akan sangat membantu untuk melihat dengan tepat apa yang dilakukan App Service dengan mengalirkan log kontainer ke terminal Anda.
Aktifkan pengelogan kontainer:
az webapp log config --name <app-name> --resource-group msdocs-custom-container-tutorial --docker-container-logging filesystemAktifkan aliran log:
az webapp log tail --name <app-name> --resource-group msdocs-custom-container-tutorialJika Anda tidak segera melihat log konsol, periksa lagi dalam 30 detik.
Anda juga dapat memeriksa file log dari browser dengan masuk ke
https://<app-name>.scm.azurewebsites.net/api/logs/docker.Untuk menghentikan streaming log kapan saja, pilih Ctrl+C.
Ubah kode aplikasi dan sebarkan ulang
Di bagian ini, Anda membuat perubahan pada kode aplikasi web, membangun kembali image, lalu mendorongnya ke registri kontainer. Selanjutnya App Service secara otomatis menarik image yang diperbarui dari registri untuk memperbarui aplikasi web yang sedang berjalan.
Di folder docker-django-webapp-linux lokal Anda, buka file app/templates/app/index.html.
Ubah elemen HTML pertama untuk menyesuaikan dengan kode berikut.
<nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="#">Azure App Service - Updated Here!</a> </div> </div> </nav>Simpan perubahan Anda.
Buka folder docker-django-webapp-linux dan bangun kembali gambar:
docker build --tag appsvc-tutorial-custom-image .Perbarui tag gambar ke
latest:docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestGanti
<registry-name>dengan nama registri Anda.Push image ke registry:
docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestKetika push image selesai, webhook memberi tahu App Service tentang push tersebut, dan App Service mencoba pull image yang diperbarui. Tunggu beberapa menit, lalu verifikasi bahwa pembaruan disebarkan dengan masuk ke
https://<app-name>.azurewebsites.net.
Menyambungkan ke kontainer dengan menggunakan SSH
Saat kontainer berjalan, Anda dapat mengaksesnya melalui proxy Kudu yang terautentikasi dari App Service dengan menggunakan terminal browser yang lebih baru atau az webapp exec. Anda tidak perlu menginstal atau memulai server SSH di gambar untuk opsi ini.
Untuk prasyarat akses dan kontrol aplikasi atau slot, lihat Buka shell kontainer (SSH) dan jalankan perintah.
Buka koneksi SSH ke kontainer
Gunakan Azure CLI 2.90.0 atau lebih baru dan masuk ke akun Azure Anda. Buka shell interaktif di terminal lokal Anda dengan perintah preview
az webapp exec:az webapp exec --resource-group msdocs-custom-container-tutorial --name <app-name>Periksa proses yang berjalan di dalam aplikasi dengan menggunakan
top, jika tersedia di gambar.
Untuk eksekusi perintah terpisah alih-alih sesi interaktif, lihat Jalankan perintah tanpa sesi interaktif. Penerimaan permintaan tidak mengonfirmasi bahwa perintah berhasil diselesaikan.
Bersihkan sumber daya
Sumber daya yang Anda buat dalam artikel ini dapat menimbulkan biaya berkelanjutan. Untuk membersihkan sumber daya, Anda hanya perlu menghapus grup sumber daya yang berisi sumber daya tersebut:
az group delete --name msdocs-custom-container-tutorial
Langkah berikutnya
Apa yang Anda pelajari:
- Menyebarkan image kustom ke registri kontainer privat.
- Sebarkan image kustom ke App Service.
- Perbarui dan sebarkan ulang image.
- Akses log diagnostik.
- Sambungkan ke kontainer dengan menggunakan SSH.
- Dorong gambar Docker kustom ke Container Registry.
- Sebarkan image kustom ke App Service.
- Konfigurasikan variabel lingkungan.
- Tarik gambar ke App Service dengan menggunakan identitas terkelola.
- Akses log diagnostik.
- Aktifkan CI/CD dari Container Registry ke App Service.
- Sambungkan ke kontainer dengan menggunakan SSH.
Buka tutorial berikutnya:
Atau lihat sumber daya lain: