Menggunakan Dev Proxy dalam skenario CI/CD

Sekilas
Tujuan: Mengintegrasikan Dev Proxy di CI/CD
Waktu: 30 menit
Plugin: Berbagai
Prasyarat:Menyiapkan Proksi Dev

Menggunakan Dev Proxy dalam skenario CI/CD adalah cara yang bagus untuk menguji aplikasi Anda di lingkungan yang terkontrol. Saat menggabungkan Dev Proxy dengan pengujian yang menghasilkan permintaan API di aplikasi, Anda dapat mencakup berbagai skenario: dari memastikan bahwa aplikasi Anda tidak menggunakan API bayangan atau nonproduksi untuk memeriksa apakah aplikasi menggunakan izin Microsoft Graph minimal. Meskipun langkah-langkah konfigurasi yang tepat bervariasi tergantung pada sistem CI/CD Anda, berikut adalah beberapa prinsip umum yang harus Anda ikuti.

Dalam kebanyakan kasus, runner Anda tidak memiliki Dev Proxy yang terinstal. Jadi sebelum Anda dapat menggunakan Dev Proxy, Anda perlu menginstalnya. Langkah-langkah penginstalan bergantung pada sistem operasi yang digunakan runner Anda.

Ujung

Untuk mempercepat alur Anda, pertimbangkan untuk membuat cache folder penginstalan Dev Proxy. Dengan cara ini, Anda tidak perlu mengunduh Dev Proxy setiap kali Anda menjalankan pipeline Anda. Untuk langkah-langkah yang tepat, lihat dokumentasi sistem CI/CD Anda.

Saat menginstal Dev Proxy dalam penyiapan CI/CD, Anda biasanya perlu mengunci versi Dev Proxy yang diinstal. Mengunci versi memastikan bahwa pipeline Anda menggunakan versi Proksi Dev yang sama setiap kali Anda menjalankannya. Langkah-langkah tepat untuk menyematkan versi bergantung pada sistem operasi runner Anda. Berikut adalah contoh bagaimana Anda dapat menyematkan versi Dev Proxy pada runner berbasis Linux:

# install Dev Proxy v1.0.0
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- v1.0.0

Mulai Proksi Dev

Setelah menginstal Dev Proxy, Anda perlu memulainya. Saat memulai Dev Proxy dalam alur CI/CD, penting bagi Anda untuk memulainya di latar belakang. Jika tidak, alur Anda diblokir hingga Anda menghentikan Dev Proxy.

Anda dapat memulai Dev Proxy di latar belakang menggunakan --detach opsi :

# start Dev Proxy in detached mode
./devproxy/devproxy --detach --as-system-proxy false

Dev Proxy mencetak informasi startup termasuk ID proses (PID), URL Proksi, URL API, dan jalur file log:

Dev Proxy started in background.

  PID:       6456
  Proxy URL: http://127.0.0.1:8000
  API URL:   http://127.0.0.1:8897
  Log file:  /home/runner/.local/dev-proxy/logs/devproxy-6456-2026-03-05.log

Untuk output yang dapat dibaca mesin, gunakan --output json untuk mendapatkan JSONL:

./devproxy/devproxy --detach --as-system-proxy false --output json
{"type":"result","data":{"pid":6456,"proxyUrl":"http://127.0.0.1:8000","apiUrl":"http://127.0.0.1:8897","logFile":"/home/runner/.local/dev-proxy/logs/devproxy-6456-2026-03-05.log"},"timestamp":"2026-03-05T14:22:42.0000000Z"}

Ujung

Gunakan --port 0 dan --api-port 0 untuk membiarkan OS menetapkan port acak yang tersedia. Mode keluaran yang terpisah menampilkan port aktual yang ditetapkan oleh OS, yang berguna dalam skenario CI/CD untuk menghindari konflik port.

Atau, jika Anda menggunakan runner berbasis Linux, Anda dapat memulai Dev Proxy di latar belakang menggunakan kontrol pekerjaan shell:

# start Dev Proxy in the background
./devproxy/devproxy &`.

Percayai sertifikat akar Dev Proxy

Setelah memulai Dev Proxy, Anda perlu mempercayai sertifikat akar Dev Proxy sebelum mengirim permintaan, karena Dev Proxy menggunakan sertifikat akar yang ditandatangani sendiri.

Saat Dev Proxy dimulai, sertifikat rootCert.pfx dibuat di folder ~/.config/dev-proxy/rootCert.

Bergantung pada izin Anda, Anda mungkin perlu membuat ~/.config/dev-proxy/rootCert folder sebelum memulai Dev Proxy:

# ensure the rootCert folder
echo "Ensuring the Dev Proxy rootCert folder"
mkdir -p ~/.config/dev-proxy/rootCert

# start Dev Proxy
echo "Starting Dev Proxy"
./devproxy/devproxy &

Jika Anda menggunakan runner berbasis Linux, Anda dapat menginstal sertifikat akar Proksi Dev dengan menyalinnya ke penyimpanan sertifikat CA tepercaya sistem:

# export the Dev Proxy's Root Certificate
echo "Exporting the Dev Proxy's Root Certificate"
openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""

# install root certificate
echo "Installing the Dev Proxy's Root Certificate"
sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/

# update CA certificates
echo "Updating the CA certificates"
sudo update-ca-certificates

Tunggu hingga Proksi Dev dimulai

Saat Anda memulai Dev Proxy di latar belakang, skrip Anda segera dijalankan. Namun, Dev Proxy membutuhkan beberapa waktu untuk memulai. Untuk memastikan bahwa Dev Proxy siap sebelum Anda mulai mengeluarkan permintaan, tunggu hingga dimulai. Untuk menunggu Dev Proxy dimulai, catat outputnya ke file, lalu periksa apakah Dev Proxy mendengarkan permintaan web, misalnya:

# log file path
log_file=devproxy.log

# start Dev Proxy in the background
# log Dev Proxy output to the log file
# log stdout and stderr to the file
./devproxy/devproxy > $log_file 2>&1 &

# wait for init
echo "Waiting for Dev Proxy to start..."
while true; do
  if grep -q "Listening on 127.0.0.1:8000" $log_file; then
    break
  fi
  sleep 1
done

# the rest of your script

Mengonfigurasi variabel lingkungan proksi

Banyak aplikasi dan pustaka menggunakan http_proxy variabel lingkungan dan https_proxy untuk menentukan server proksi yang akan digunakan untuk permintaan HTTP dan HTTPS. Untuk memastikan bahwa aplikasi Anda menggunakan Dev Proxy, Anda perlu mengatur variabel lingkungan ini untuk menunjuk ke instans Proksi Dev.

export http_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000

Mengontrol Proksi Pengembang

Saat menjalankan Dev Proxy dalam alur CI/CD, Anda tidak dapat mengontrolnya secara interaktif. Sebagai gantinya, Anda dapat mengontrolnya dengan mengirim permintaan ke DEV Proxy API.

Jika Anda ingin menganalisis permintaan API yang dikeluarkan oleh aplikasi, Anda dapat mengirim POST permintaan ke /record titik akhir:

curl -X POST http://localhost:8897/proxy/record -H "Content-Type: application/json" -d '{"recording": true}'

Untuk menghentikan Dev Proxy, Anda dapat mengirim POST permintaan ke /stop titik akhir:

curl -X POST http://localhost:8897/proxy/stop

Setelah Anda menghentikan proses Proksi Dev, mungkin perlu waktu sejenak sebelum proses tersebut benar-benar berhenti sepenuhnya. Untuk memastikan bahwa Dev Proxy selesai, tunggu hingga proses ditutup, misalnya:

echo "Waiting for Dev Proxy to complete..."
while true; do
  if grep -q -e "DONE" -e "No requests to process" -e "An error occurred in a plugin" $log_file; then
    break
  fi
  sleep 1
done

Ketika semua plugin perekaman selesai berjalan, Dev Proxy mencetak pesan DONE ke output. Jika tidak ada permintaan untuk diproses, Dev Proxy akan mencetak pesan No requests to process. Jika terjadi kesalahan dalam plugin, Dev Proxy akan mencetak pesan An error occurred in a plugin. Saat Anda melihat salah satu pesan ini, Anda dapat yakin bahwa Dev Proxy selesai memproses permintaan yang direkam.

Contoh skrip permulaan

Berikut adalah contoh skrip bash yang dapat Anda gunakan untuk memulai Dev Proxy dalam alur CI/CD:

log_file=devproxy.log

echo "Ensuring Dev Proxy rootCert folder"
mkdir -p ~/.config/dev-proxy/rootCert

# start Dev Proxy in the background
# log Dev Proxy output to the log file
# log stdout and stderr to the file
echo "Starting Dev Proxy"
./devproxy/devproxy > $log_file 2>&1 &

echo "Waiting for Dev Proxy to start..."
while true; do
  if grep -q "Listening on 127.0.0.1:8000" $log_file; then
    break
  fi
  sleep 1
done

echo "Exporting the Dev Proxy's Root Certificate"
openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""

echo "Installing the Dev Proxy's Root Certificate"
sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/

echo "Updating the CA certificates"
sudo update-ca-certificates

echo "Set proxy variables"
export http_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000

Lihat juga