Penyebaran Git lokal ke Azure App Service
Panduan ini memperlihatkan cara menyebarkan aplikasi ke Azure App Service dari repositori Git di komputer lokal Anda.
Catatan
Saat autentikasi dasar SCM dinonaktifkan, penyebaran Git Lokal tidak berfungsi, dan Anda tidak dapat mengonfigurasi penyebaran Git Lokal di Pusat Penyebaran aplikasi.
Prasyarat
Untuk mengikuti langkah-langkah dalam panduan ini:
-
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Miliki repositori Git lokal dengan kode yang ingin disebarkan. Untuk mengunduh contoh repositori, jalankan perintah berikut ini jendela terminal lokal Anda:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Siapkan repositori Anda
Untuk mendapatkan build otomatis dari server build Azure App Service, pastikan akar repositori Anda memiliki file yang benar di proyek Anda.
Runtime | File direktori akar |
---|---|
ASP.NET (khusus Windows) | *.sln , *.csproj , atau default.aspx |
Inti ASP.NET | *.sln atau *.csproj |
PHP | index.php |
Ruby (khusus Linux) | Gemfile |
Node.js | server.js , , app.js atau package.json dengan skrip mulai |
Python | *.py , requirements.txt , atau runtime.txt |
HTML | default.htm , default.html , default.asp , index.htm , index.html , atau iisstart.htm |
WebJobs | <job_name>/run.<extension> di bawah App_Data/jobs/continuous untuk WebJobs berkelanjutan, atau App_Data/jobs/triggered untuk WebJobs yang dipicu. Untuk informasi selengkapnya, lihat Dokumentasi Kudu WebJobs. |
Fungsi | Lihat Penyebaran berkelanjutan untuk Azure Functions. |
Untuk menyesuaikan penyebaran Anda, sertakan file .penyebaran di akar repositori. Untuk informasi selengkapnya, lihat Mengkustomisasi penyebaran dan Skrip penyebaran kustom.
Catatan
Jika Anda menggunakan Visual Studio, biarkan Visual Studio membuat repositori untuk Anda. Proyek Anda akan segera siap untuk disebarkan melalui Git.
Mengonfigurasikan manifes penyebaran
Lihat Mengonfigurasi info masuk penyebaran untuk Azure App Service. Anda dapat menggunakan info masuk cakupan pengguna atau info masuk cakupan aplikasi.
Membuat aplikasi yang diaktifkan Git
Jika Anda sudah memiliki aplikasi App Service dan ingin mengonfigurasi penyebaran Git lokal untuk aplikasi tersebut, lihat Mengonfigurasi aplikasi yang sudah ada.
Jalankan az webapp create
dengan opsi --deployment-local-git
. Contohnya:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
Output berisi URL seperti: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Gunakan URL ini untuk menyebarkan aplikasi Anda di langkah berikutnya.
Mengonfigurasi aplikasi yang sudah ada
Jika Anda belum memiliki aplikasi, lihat Membuat aplikasi yang diaktifkan Git sebagai gantinya.
Jalankan az webapp deployment source config-local-git
. Contohnya:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
Output berisi URL seperti: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Gunakan URL ini untuk menyebarkan aplikasi Anda di langkah berikutnya.
Tip
URL ini berisi nama pengguna penyebaran cakupan pengguna. Jika menginginkannya, Anda dapat menggunakan info masuk cakupan aplikasi.
Menggunakan aplikasi web
Di jendela terminal lokal, ubah direktori ke akar repositori Git Anda, dan tambahkan remote Git menggunakan URL yang didapatkan dari aplikasi Anda. Jika metode yang dipilih tidak memberikan URL, gunakan
https://<app-name>.scm.azurewebsites.net/<app-name>.git
dengan nama aplikasi Anda di<app-name>
.git remote add azure <url>
Catatan
Jika Anda membuat aplikasi yang diaktifkan Git di PowerShell menggunakan New-AzWebApp, Git remote sudah dibuat untuk Anda.
Dorong ke Azure jarak jauh dengan
git push azure master
(lihat Mengubah cabang penyebaran).Di jendela pengelola Info Masuk Git, masukkan info masuk cakupan pengguna atau cakupan aplikasi Anda, bukan info masuk Azure Anda.
Jika URL remote Git Anda sudah berisi nama pengguna dan kata sandi, Anda tidak akan diminta.
Tinjau output. Anda mungkin melihat otomatisasi khusus runtime, seperti MSBuild untuk ASP.NET,
npm install
untuk Node.js, danpip install
untuk Python.Telusuri ke aplikasi Anda di portal Azure untuk memverifikasi bahwa konten tersebut sudah disebarkan.
Mengubah cabang penyebaran
Saat Anda mendorong penerapan ke repositori App Service Anda, App Service menyebarkan file di cabang master
secara default. Karena banyak repositori Git bergerak menjauh dari master
ke main
, Anda perlu memastikan bahwa Anda mendorong ke cabang yang tepat di repositori App Service dengan salah satu dari dua cara:
Sebarkan ke
master
secara eksplisit dengan perintah seperti:git push azure main:master
Ubah cabang penyebaran dengan menetapkan pengaturan aplikasi
DEPLOYMENT_BRANCH
, lalu dorong penerapan ke cabang kustom. Untuk melakukannya dengan Azure CLI:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Anda juga dapat mengubah
DEPLOYMENT_BRANCH
pengaturan aplikasi di portal Azure, dengan memilih Variabel lingkungan di bawah Pengaturan dan menambahkan pengaturan Aplikasi baru dengan namaDEPLOYMENT_BRANCH
dan nilaimain
.
Memecahkan masalah penyebaran
Anda mungkin melihat pesan kesalahan umum berikut saat menggunakan Git untuk menerbitkan ke aplikasi App Service di Azure:
Pesan | Penyebab | Resolusi |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
Aplikasi ini tidak meningkat dan berjalan. | Mulai aplikasi di portal Azure. Penyebaran Git tidak tersedia saat aplikasi web dihentikan. |
Couldn't resolve host 'hostname' |
Informasi alamat untuk azure remote salah. |
Gunakan perintah git remote -v untuk mencantumkan semua remote, beserta URL terkait. Verifikasi bahwa URL untuk azure jarak jauh sudah benar. Jika perlu, hapus dan buat ulang remote ini menggunakan URL yang benar. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
Anda tidak menentukan cabang selama git push , atau belum mengatur nilai push.default di .gitconfig . |
Jalankan git push lagi, dengan menentukan cabang utama: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
Anda mendorong cabang lokal yang tidak cocok dengan cabang penyebaran aplikasi pada azure . |
Verifikasi bahwa cabang saat ini adalah master . Untuk mengubah cabang default, gunakan pengaturan aplikasi DEPLOYMENT_BRANCH (lihat Mengubah cabang penyebaran). |
src refspec [branchname] does not match any. |
Anda mencoba mendorong ke cabang selain utama di azure remote. |
Jalankan git push lagi, dengan menentukan cabang utama: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
Kesalahan ini bisa terjadi jika Anda mencoba mendorong repositori git besar melalui HTTPS. | Ubah konfigurasi git di komputer lokal untuk membuat postBuffer lebih besar. Misalnya: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
Anda menerapkan aplikasi Node.js dengan file package.json yang menentukan modul tambahan yang diperlukan. | Tinjau npm ERR! pesan kesalahan sebelum kesalahan ini untuk konteks selengkapnya tentang kegagalan tersebut. Berikut penyebab umum kesalahan ini, dan pesan npm ERR! terkait:File package.json tidak diformat dengan benar: npm ERR! Couldn't read dependencies. Modul asli tidak memiliki distribusi biner untuk Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 atau npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |