Bagikan melalui


Menyebarkan ke Azure App Service dengan menggunakan Git lokal

Salah satu cara paling sederhana untuk menyebarkan kode adalah dari komputer lokal Anda. Artikel ini memperlihatkan kepada Anda cara menyebarkan aplikasi ke Azure App Service dari repositori Git di komputer lokal Anda.

Catatan

Penyebaran Git lokal memerlukan autentikasi dasar Source Control Manager (SCM), yang kurang aman daripada metode penyebaran lainnya. Jika autentikasi dasar dinonaktifkan, Anda tidak dapat mengonfigurasi penyebaran Git lokal di Pusat Penyebaran aplikasi.

Prasyarat

Untuk menyelesaikan langkah-langkah dalam artikel ini, Anda perlu:

  • Akun Azure dan langganan dengan izin untuk membuat sumber daya App Services. Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.

  • Git diinstal, dan repositori Git lokal yang berisi kode aplikasi untuk disebarkan.

    Anda dapat mengkloning sampel Node.js repositori aplikasi dengan menjalankan perintah berikut di jendela terminal Bash lokal Anda:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • Jika Anda ingin menggunakan perintah Azure CLI, versi terbaru Azure CLI yang diinstal pada komputer lokal Anda. Masuk ke Azure menggunakan az login.

  • Jika Anda ingin menjalankan perintah Azure PowerShell, versi terbaru Azure PowerShell terinstal. Masuk ke Azure menggunakan Connect-AzAccount.

Siapkan repositori Anda

Untuk mendapatkan build otomatis dari build server App Service, pastikan akar repositori Anda memiliki berkas yang sesuai dalam proyek Anda.

Waktu Operasi File direktori akar
ASP.NET (khusus Windows) *.sln, *.csproj, atau default.aspx.
ASP.NET Core *.sln atau *.csproj.
PHP index.php.
Ruby (khusus Linux) Gemfile.
Node.js server.js, app.js, atau package.json dengan skrip awal.
Phyton *.py, requirements.txt, atau runtime.txt.
HTML default.htm, , default.htmldefault.asp, index.htm, index.html, , atau iisstart.htm.
WebJobs <job_name>/run.<extension> di bawah App_Data/jobs/continuous untuk Pekerjaan Web kontinu, atau App_Data/jobs/triggered untuk Pekerjaan Web terpicu. Untuk informasi selengkapnya, lihat Dokumentasi Kudu WebJobs.
Functions Lihat Penyebaran berkelanjutan untuk Azure Functions.

Untuk menyesuaikan penyebaran Anda, sertakan .deployment file di akar repositori. Untuk informasi selengkapnya, lihat Mengkustomisasi penyebaran dan Skrip penyebaran kustom.

Kiat

Visual Studio dapat membuat repositori untuk Anda. Dengan metode ini, proyek Anda segera siap untuk penyebaran melalui Git.

Kredensial pengguna untuk penyebaran

Anda memerlukan kredensial pengguna penyebaran untuk mengautentikasi dan menyebarkan aplikasi Anda. Ini berbeda dari kredensial langganan Azure Anda, dan Anda dapat menggunakan kredensial cakupan pengguna atau cakupan aplikasi .

Pengguna dalam cakupan pengguna untuk penyebaran Git lokal hanya memerlukan nama pengguna, bukan kata sandi. Anda dapat mengatur nama pengguna pada cakupan pengguna dengan menjalankan perintah Azure CLI, atau di bawah az webapp deployment user set --user-name <username> pada tab Kredensial Git/FTPS Lokal dari Pusat Penerapan aplikasi.

Setelah membuat pengguna penyebaran cakupan pengguna, Anda dapat menggunakannya untuk semua aplikasi App Service yang dapat Anda akses. Untuk informasi selengkapnya, lihat Mengonfigurasi kredensial cakupan pengguna.

Pengguna penyebaran cakupan aplikasi khusus aplikasi dan dibuat secara otomatis saat Anda membuat aplikasi. Anda bisa mendapatkan kredensial pengguna cakupan aplikasi untuk digunakan untuk penyebaran dari tab kredensial Git/FTPS Lokal di Pusat Penyebaran aplikasi.

Membuat dan mengonfigurasi aplikasi berkemampuan Git

Anda dapat membuat dan mengonfigurasi aplikasi berkemampuan Git, atau mengonfigurasi penyebaran Git lokal untuk aplikasi yang sudah ada sebelumnya, dengan menggunakan Azure CLI, Azure PowerShell, atau portal Microsoft Azure.

  • Untuk membuat aplikasi web baru yang dikonfigurasi untuk penyebaran Git lokal, jalankan az webapp create dengan --deployment-local-git opsi . Contohnya:

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:24-lts" --deployment-local-git
    
  • Untuk mengonfigurasi penyebaran Git lokal untuk aplikasi yang sudah ada, jalankan az webapp deployment source config-local-git. Contohnya:

    az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
    

Salah satu perintah menghasilkan output yang menyertakan URL, seperti:

Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'

URL sebelumnya berisi nama contoso-user. Jika Anda tidak memiliki nama pengguna penyebaran cakupan pengguna, URL menggunakan nama pengguna cakupan aplikasi, misalnya https://$myApp@myApp.scm.azurewebsites.net/myApp.git.

Gunakan URL klon Git ini untuk menyebarkan aplikasi Anda di langkah berikutnya.

Menggunakan aplikasi web

Untuk menyebarkan aplikasi ke Azure, buat cabang jarak jauh jika perlu, pastikan Anda menyebarkan ke cabang yang benar, lalu dorong kode Anda ke jarak jauh.

Membuat cabang jarak jauh

Jika Anda menggunakan Azure PowerShell New-AzWebApp untuk membuat aplikasi dari kode sampel, azure remote sudah dibuat. Jika tidak, ikuti instruksi berikut untuk membuat remote:

  1. Di terminal lokal, ubah direktori ke akar repositori Git kloning Anda.

  2. Tambahkan remote Git bernama azure dengan menggunakan URL klon Git Anda. Jika Anda tidak tahu URL klonIng Git Anda, gunakan https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

Dorong ke cabang yang tepat

Repositori App Service menyebarkan file ke master cabang secara default. Jika file lokal yang sudah ada sebelumnya berada di master cabang repositori, Anda sekarang dapat menyebarkan aplikasi dengan menjalankan git push azure master.

Namun, banyak repositori Git, termasuk repositori kode sampel untuk artikel ini, gunakan main atau nama cabang default lainnya. Untuk menyebarkan ke cabang yang benar, Anda harus secara eksplisit menyebarkan ke cabang jarak jauh master , atau mengubah cabang penyebaran ke main atau nama cabang lain dan menyebarkan ke cabang tersebut.

Sebarkan secara eksplisit ke master dari cabang Anda main dengan menggunakan perintah berikut push :

git push azure main:master

Atau ubah pengaturan aplikasi Anda DEPLOYMENT_BRANCH menjadi main lalu dorong langsung ke main, sebagai berikut:

  • Azure CLI:

    az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main'
    git push azure main
    
  • Portal Azure

    1. Pada halaman portal untuk aplikasi Anda, pilih Variabel lingkungan di bawah Pengaturan di menu navigasi kiri.
    2. Pilih Tambahkan, tambahkan pengaturan aplikasi dengan nama DEPLOYMENT_BRANCH dan nilai utama, dan pilih Terapkan.
    3. Di jendela terminal, jalankan git push azure main.

Menyelesaikan dan memverifikasi penyebaran

Jika dialog Git Credential Manager muncul setelah Anda mengirimkan kode, masukkan nama pengguna cakupan pengguna atau nama pengguna dan kata sandi cakupan aplikasi Anda. Jika URL jarak jauh Git Anda sudah berisi informasi masuk, Anda tidak diminta untuk memasukkannya.

Tinjau output dari perintah push. Anda mungkin melihat otomatisasi khusus runtime, seperti npm install untuk Node.js, MSBuild untuk ASP.NET, atau pip install untuk Python. Jika Anda mendapatkan kesalahan, lihat Memecahkan masalah penyebaran.

Buka portal Microsoft Azure dan verifikasi bahwa aplikasi berhasil disebarkan dengan memilih tautan Domain default di halaman Gambaran Umum aplikasi. Aplikasi harus terbuka di tab browser dan menampilkan Halo Dunia!.

Pemecahan Masalah Penyebaran

Kesalahan umum berikut mungkin terjadi saat Anda menggunakan Git lokal untuk menerbitkan ke aplikasi App Service di Azure:

Pesan Penyebab Resolusi
Unable to access '[siteURL]': Failed to connect to [scmAddress] Aplikasi tidak berjalan. Di portal Microsoft Azure, mulai aplikasi. Penyebaran Git tidak tersedia saat aplikasi web dihentikan.
Couldn't resolve host 'hostname' Informasi alamat untuk azure remote tidak benar. Gunakan perintah git remote -v untuk mencantumkan semua remote dan URL terkait. Verifikasi bahwa URL untuk azure remote sudah benar. Jika perlu, hapus URL yang salah dengan menggunakan git remote remove lalu buat ulang remote dengan 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 saat menjalankan git push atau tidak mengatur nilai push.default di .gitconfig. Jalankan git push lagi dan tentukan cabang yang benar dengan git push azure <branch>.
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, atau ubah cabang penyebaran dengan mengikuti instruksi di Dorong ke cabang yang benar.
src refspec [branchname] does not match any. Anda mencoba mendorong ke cabang selain main di azure remote. Jalankan git push lagi, dan tentukan main cabang dengan git push azure main.
RPC failed; result=22, HTTP code = 5xx. Anda mencoba mengunggah repositori Git besar melalui HTTPS. Ubah konfigurasi git di komputer lokal untuk mengatur nilai yang lebih tinggi untuk postBuffer. Misalnya: git config --global http.postBuffer 524288000.
Error - Changes committed to remote repository but your web app not updated. Anda menyebarkan aplikasi Node.js dengan file package.json yang menentukan modul yang diperlukan yang ditambahkan. npm ERR! Tinjau pesan kesalahan yang muncul sebelum kesalahan ini untuk konteks lebih lanjut. Penyebab kesalahan berikut yang diketahui menghasilkan pesan npm ERR! yang sesuai:
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\