Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Использование прокси-сервера разработки в сценариях CI/CD — отличный способ тестирования приложений в управляемой среде. При объединении Dev Proxy с тестами, создающими запросы API в вашем приложении, можно охватить широкий спектр сценариев: от проверки, что приложение не использует неофициальные или непроизводственные API, до проверки использования минимальных разрешений Microsoft Graph. Хотя точные шаги конфигурации зависят от системы CI/CD, ниже приведены некоторые общие принципы, которые следует выполнить.
В большинстве случаев у вашего runner не установлен Dev Proxy. Таким образом, прежде чем использовать прокси-сервер разработки, необходимо установить его. Этапы установки зависят от операционной системы, которую использует ваш runner.
Подсказка
Чтобы ускорить ваш конвейер, рассмотрите кэширование папки установки Dev Proxy. Таким образом, вам не нужно скачивать Dev Proxy каждый раз при запуске вашего конвейера. Подробные инструкции см. в документации по системе CI/CD.
При установке Dev Proxy в контексте CI/CD обычно требуется зафиксировать используемую версию. Закрепление версии гарантирует, что конвейер использует одну и ту же версию прокси-сервера разработки при каждом запуске. Точные шаги по закреплению версии зависят от операционной системы вашей исполняющей среды. Ниже приведен пример того, как можно закрепить версию прокси-сервера разработки на сервере runner под управлением Linux:
# install Dev Proxy v1.0.0
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- v1.0.0
Запуск прокси-сервера разработки
После установки прокси-сервера разработки необходимо запустить его. При запуске Dev Proxy в конвейере CI/CD важно запустить его в фоновом режиме. В противном случае конвейер блокируется до тех пор, пока вы не остановите прокси-сервер разработки.
Если вы используете раннер на базе Linux, вы можете запустить прокси-сервер разработки в фоновом режиме:
# start Dev Proxy in the background
./devproxy/devproxy &`.
Доверить корневому сертификату Dev Proxy
После запуска прокси-сервера разработки необходимо доверять корневому сертификату прокси-сервера разработки перед отправкой запросов, так как в прокси-сервере разработки используется самозаверяющий корневой сертификат.
При запуске rootCert.pfx
прокси-сервера разработки сертификат создается в папке ~/.config/dev-proxy/rootCert
.
В зависимости от разрешений может потребоваться создать папку перед запуском ~/.config/dev-proxy/rootCert
прокси-сервера разработки:
# 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 &
Если вы используете средство выполнения на основе Linux, вы можете установить корневой сертификат прокси-сервера разработки, скопируйв его в хранилище сертификатов доверенного ЦС системы:
# 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
Дождитесь запуска прокси-сервера разработки
При запуске прокси-сервера разработки в фоновом режиме скрипт выполняется немедленно. Однако для запуска прокси-сервера разработки требуется некоторое время. Чтобы убедиться, что прокси-сервер разработки готов перед началом выдачи запросов, дождитесь его запуска. Чтобы дождаться запуска прокси-сервера разработки, запишите его вывод в файл, а затем проверьте, прослушивает ли прокси-сервер разработки веб-запросы, например:
# 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
Настройка переменных среды прокси-сервера
Многие приложения и библиотеки используют http_proxy
переменные среды и https_proxy
среды для определения прокси-сервера, используемого для HTTP-запросов и HTTPS. Чтобы убедиться, что приложение использует прокси-сервер разработки, необходимо задать эти переменные среды, чтобы указать экземпляр прокси-сервера разработки.
export http_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000
Управление прокси-сервером разработки
При запуске Dev Proxy в конвейере CI/CD, вы не можете управлять им интерактивно. Вместо этого вы можете управлять им, отправляя запросы в API прокси-сервера разработки.
Если вы хотите проанализировать запросы API, выданные приложением, можно отправить запрос /record
в конечную POST
точку:
curl -X POST http://localhost:8897/proxy/record -H "Content-Type: application/json" -d '{"recording": true}'
Чтобы остановить Dev-прокси, можно отправить POST
запрос на конечную точку /stop
.
curl -X POST http://localhost:8897/proxy/stop
После остановки процесса прокси-сервера разработки требуется некоторое время, пока он полностью закроется. Чтобы убедиться, что Dev-прокси завершил работу, дождитесь, пока процесс закроется, например:
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
После завершения работы всех подключаемых модулей записи Dev Proxy выводит сообщение DONE
в консоль. Если не было запросов на обработку, прокси-сервер разработки печатает сообщение No requests to process
. Если в подключаемом модуле произошла ошибка, Dev Proxy выводит сообщение An error occurred in a plugin
. Когда вы увидите любое из этих сообщений, вы можете убедиться, что прокси-сервер разработки завершил обработку записанных запросов.
Пример скрипта запуска
Ниже приведен пример скрипта bash, который можно использовать для запуска прокси-сервера разработки в конвейере 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