Bagikan melalui


Menyebarkan file ke Azure App Service

Artikel ini menunjukkan cara menyebarkan kode Anda sebagai paket ZIP, WAR, JAR, atau EAR ke Azure App Service. Ini juga menunjukkan kepada Anda cara menyebarkan file individual ke App Service, terpisah dari paket aplikasi Anda.

Prasyarat

Untuk menyelesaikan langkah-langkah dalam artikel, buat aplikasi App Service, atau gunakan aplikasi yang Anda buat untuk tutorial lain.

Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.

Membuat paket ZIP proyek

Penting

Saat Anda membuat paket ZIP untuk penyebaran, jangan sertakan direktori akar. Hanya sertakan file dan direktori di direktori root. Jika Anda mengunduh repositori GitHub sebagai file ZIP, Anda tidak dapat menyebarkan file tersebut apa adanya ke App Service. GitHub menambahkan direktori berlapis di tingkat atas, yang tidak berfungsi dengan App Service.

Di jendela terminal lokal, arahkan ke direktori akar proyek aplikasi Anda.

Direktori ini harus berisi file entri ke aplikasi web Anda, seperti index.html, , index.phpdan app.js. Ini juga dapat berisi file manajemen paket seperti project.json, , composer.json, package.jsonbower.json, dan requirements.txt.

Jika Anda tidak ingin App Service menjalankan otomatisasi penyebaran untuk Anda, jalankan semua tugas build. Misalnya: npm, , bowergulp, composer, dan pip. Pastikan Anda memiliki semua file yang Anda butuhkan untuk menjalankan aplikasi. Langkah ini diperlukan jika Anda ingin menjalankan paket Anda secara langsung.

Buat arsip ZIP dari semua yang ada di proyek Anda. Untuk proyek dotnet, tambahkan semua yang ada di dalam direktori hasil perintah dotnet publish, kecuali direktori hasil itu sendiri. Misalnya, masukkan perintah berikut di terminal Anda untuk membuat paket ZIP yang menyertakan konten direktori saat ini:

# Bash
zip -r <file-name>.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip

Menyebarkan paket ZIP

Saat Anda menyebarkan paket ZIP, App Service membongpas kemasan kontennya di jalur default untuk aplikasi Anda: D:\home\site\wwwroot untuk Windows dan /home/site/wwwroot untuk Linux.

Penyebaran paket ZIP ini juga menggunakan layanan Kudu yang mendukung penyebaran berbasis integrasi berkelanjutan. Kudu mendukung fungsi berikut untuk penyebaran paket ZIP:

  • Penghapusan file yang tersisa dari penyebaran sebelumnya
  • Opsi untuk mengaktifkan proses build default, yang mencakup pemulihan paket
  • Penyesuaian penyebaran, termasuk menjalankan skrip penyebaran
  • Log penyebaran
  • Batas ukuran paket 2.048 megabyte

Catatan

File dalam paket ZIP disalin hanya jika tanda waktu mereka tidak sesuai dengan yang telah disebarkan.

Menyebarkan menggunakan UI ZIP deploy di Kudu

  1. Buka aplikasi Anda di portal Microsoft Azure dan pilih Alat> PengembanganAlat Tingkat Lanjut, lalu pilih Buka.
  2. Di Kudu, pilih Alat>Zip Push Deploy.
  3. Unggah paket ZIP yang Anda buat di Buat paket ZIP proyek. Seret ke area penjelajah file pada halaman web.

Saat penyebaran sedang berlangsung, ikon di sudut kanan atas menunjukkan persentase kemajuan. Halaman ini juga menampilkan pesan untuk operasi di bawah area File Explorer . Ketika penyebaran selesai, pesan terakhir harus mengatakan "Penyebaran berhasil."

Titik akhir ini tidak berfungsi untuk App Service di Linux saat ini. Pertimbangkan untuk menggunakan FTP atau API penyebaran ZIP sebagai gantinya.

Menyebarkan tanpa menggunakan metode ZIP deploy di Kudu

Sebarkan paket ZIP ke aplikasi web Anda dengan menggunakan az webapp deploy perintah . Perintah CLI menggunakan API penerbitan Kudu untuk menyebarkan file dan dapat sepenuhnya disesuaikan.

Contoh berikut mendorong paket ZIP ke situs Anda. Tentukan jalur ke paket ZIP lokal Anda untuk --src-path.

az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>

Perintah ini memulai ulang aplikasi setelah menyebarkan paket ZIP.

Mengaktifkan otomatisasi proses build untuk ZIP deploy

Secara default, mesin penyebaran mengasumsikan bahwa file ZIP siap untuk dijalankan apa adanya dan tidak menjalankan otomatisasi build apa pun. Untuk mengaktifkan otomatisasi build yang sama yang digunakan dalam penyebaran Git, atur SCM_DO_BUILD_DURING_DEPLOYMENT pengaturan aplikasi. Jalankan perintah berikut di Azure Cloud Shell:

az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true

Untuk informasi selengkapnya, lihat dokumentasi Kudu.

Menyebarkan paket WAR, JAR, atau EAR

Anda dapat menyebarkan paket WAR, JAR, atau EAR ke App Service untuk menjalankan aplikasi web Java anda dengan menggunakan Azure CLI, PowerShell, atau Kudu publish API.

Proses penyebaran yang ditampilkan di sini menempatkan paket pada berbagi konten aplikasi dengan konvensi penamaan dan struktur direktori yang tepat. Untuk informasi selengkapnya, lihat Referensi API penerbitan Kudu. Kami merekomendasikan pendekatan ini. Jika Anda menyebarkan paket WAR, JAR, atau EAR dengan menggunakan FTP atau Web Deploy, Anda mungkin melihat kegagalan yang tidak diketahui karena kesalahan dalam penamaan atau struktur.

Sebarkan paket WAR ke Tomcat atau JBoss EAP dengan menggunakan az webapp deploy perintah . Tentukan jalur ke paket Java lokal Anda untuk --src-path.

az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war

Perintah CLI menggunakan API penerbitan Kudu untuk menyebarkan paket dan dapat sepenuhnya disesuaikan.

Menyebarkan file individu

Sebarkan skrip startup, pustaka, dan file statis ke aplikasi web Anda dengan menggunakan az webapp deploy perintah dengan --type parameter .

Jika menyebarkan skrip startup dengan cara ini, App Service secara otomatis menggunakan skrip Anda untuk memulai aplikasi.

Perintah CLI menggunakan API penerbitan Kudu untuk menyebarkan file. Perintah dapat sepenuhnya disesuaikan.

Menerapkan skrip mulai

az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup

Menyebarkan file pustaka

az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib

Menyebarkan file statis

az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static

Menyebarkan ke aplikasi yang diamankan oleh jaringan

Bergantung pada konfigurasi jaringan aplikasi web Anda, akses langsung ke aplikasi dari lingkungan pengembangan Anda mungkin diblokir. (Lihat Menyebarkan ke situs yang diamankan jaringan dan Menyebarkan ke situs yang diamankan jaringan, bagian 2.) Alih-alih mendorong paket atau file ke aplikasi web secara langsung, Anda dapat menerbitkannya ke sistem penyimpanan yang dapat diakses dari aplikasi web dan memicu aplikasi untuk menarik ZIP dari lokasi penyimpanan.

URL jarak jauh dapat menjadi lokasi yang dapat diakses publik, tetapi yang terbaik adalah menggunakan kontainer penyimpanan blob dengan kunci tanda tangan akses bersama (SAS) untuk melindunginya.

Gunakan perintah az webapp deploy seperti yang Anda lakukan di bagian lain, tetapi gunakan --src-url alih-alih --src-path. Contoh berikut menggunakan --src-url parameter untuk menentukan URL file ZIP yang dihosting di akun Azure Storage.

az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip

Referensi API penerbitan Kudu

API Kudu publish memungkinkan Anda menentukan parameter yang sama dari perintah CLI sebagai parameter kueri URL. Untuk mengautentikasi dengan Kudu REST API, kami merekomendasikan autentikasi token, tetapi Anda juga dapat menggunakan autentikasi dasar dengan kredensial penyebaran aplikasi Anda.

Tabel berikut ini memperlihatkan parameter kueri yang tersedia, nilai yang diizinkan, dan deskripsinya.

Kunci Nilai yang diizinkan Deskripsi Wajib diisi Tipe
type war|jar|ear|lib|startup|static|zip Ini adalah jenis artefakt yang sedang diterapkan. Ini mengatur jalur target default dan menginformasikan aplikasi web bagaimana penyebaran harus ditangani.

type=zip: Sebarkan paket ZIP dengan membuka zip konten ke /home/site/wwwroot. Parameter path bersifat opsional.

type=war: Menyebarkan paket WAR. Secara default, paket WAR disebarkan ke /home/site/wwwroot/app.war. Jalur target dapat ditentukan dengan path.

type=jar: Sebarkan paket JAR ke /home/site/wwwroot/app.jar. Parameter path diabaikan.

type=ear: Sebarkan paket EAR ke /home/site/wwwroot/app.ear. Parameter path diabaikan.

type=lib: Menyebarkan file pustaka JAR. Secara default, file tersebut disebarkan ke /home/site/libs. Jalur target dapat ditentukan dengan path.

type=static: Sebarkan file statis, seperti skrip. Secara default, file tersebut disebarkan ke /home/site/wwwroot.

type=startup: Sebarkan skrip yang secara otomatis digunakan App Service sebagai skrip startup untuk aplikasi Anda. Secara default, skrip tersebut disebarkan ke D:\home\site\scripts\<name-of-source> untuk Windows dan home/site/wwwroot/startup.sh untuk Linux. Jalur target dapat ditentukan dengan path.
Ya string
restart true|false Secara default, API memulai ulang aplikasi setelah operasi penyebaran selesai (restart=true). Saat Anda menyebarkan beberapa artefak, Anda dapat mencegah memulai ulang pada semua penyebaran kecuali yang terakhir dengan mengatur restart=false. Tidak Boolean
clean true|false Menentukan apakah akan membersihkan (menghapus) target penyebaran sebelum menyebarkan artefak di sana. Tidak Boolean
ignorestack true|false API penerbitan menggunakan variabel lingkungan WEBSITE_STACK untuk memilih default yang aman tergantung pada tumpukan bahasa situs Anda. Mengatur parameter ini menjadi false menonaktifkan default khusus bahasa. Tidak Boolean
path Jalur absolut Jalur mutlak untuk menempatkan artefak di tujuan. Misalnya, /home/site/deployments/tools/driver.jar atau /home/site/scripts/helper.sh. Tidak string

Untuk skenario penyebaran yang lebih canggih, coba sebarkan ke Microsoft Azure dengan Git. Penyebaran berbasis Git ke Microsoft Azure memungkinkan kontrol versi, pemulihan paket, MSBuild, dan banyak lagi.