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.

  • Pasang Git.

  • 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.jsatau 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

  1. 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.

  2. Dorong ke Azure jarak jauh dengan git push azure master (lihat Mengubah cabang penyebaran).

  3. 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.

  4. Tinjau output. Anda mungkin melihat otomatisasi khusus runtime, seperti MSBuild untuk ASP.NET, npm install untuk Node.js, dan pip install untuk Python.

  5. 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 Konfigurasi di bawah Pengaturan dan menambahkan Pengaturan Aplikasi baru dengan nama DEPLOYMENT_BRANCH dan nilai main.

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\

Sumber daya lainnya