Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Usar o Dev Proxy em cenários de CI/CD é uma ótima maneira de testar seus aplicativos em um ambiente controlado. Ao combinar o Proxy de Desenvolvimento com testes que geram solicitações de API em seu aplicativo, você pode cobrir uma ampla variedade de cenários: desde garantir que seu aplicativo não use APIs de sombra ou de não produção até verificar se ele usa permissões mínimas do Microsoft Graph. Embora as etapas exatas de configuração variem dependendo do seu sistema de CI/CD, aqui estão alguns princípios gerais que você deve seguir.
Na maioria dos casos, seu corredor não tem o Dev Proxy instalado. Então, antes de poder usar o Dev Proxy, você precisa instalá-lo. As etapas de instalação dependem do sistema operacional que seu corredor usa.
Dica
Para acelerar seu pipeline, considere armazenar em cache a pasta de instalação do Dev Proxy. Dessa forma, você não precisa baixar o Dev Proxy toda vez que executar seu pipeline. Para obter as etapas exatas, consulte a documentação do seu sistema CI/CD.
Ao instalar o Dev Proxy numa configuração de CI/CD, normalmente pretendes especificar a versão do Dev Proxy que instalas. Definir a versão garante que o seu pipeline utilize sempre a mesma versão do Dev Proxy sempre que o executa. As etapas exatas para fixar uma versão dependem do sistema operacional do seu corredor. Aqui está um exemplo de como você pode fixar a versão do Dev Proxy em um corredor baseado em Linux:
# install Dev Proxy v1.0.0
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- v1.0.0
Iniciar Dev Proxy
Depois de instalar o Dev Proxy, você precisa iniciá-lo. Ao iniciar o Dev Proxy em um pipeline de CI/CD, é importante iniciá-lo em segundo plano. Caso contrário, seu pipeline será bloqueado até que você pare o Dev Proxy.
Se você estiver usando um corredor baseado em Linux, você pode iniciar o Dev Proxy em segundo plano:
# start Dev Proxy in the background
./devproxy/devproxy &`.
Confie no certificado raiz do Dev Proxy
Depois de iniciar o Proxy de Desenvolvimento, você precisa confiar no certificado raiz do Proxy de Desenvolvimento antes de enviar solicitações, porque o Proxy de Desenvolvimento usa um certificado raiz autoassinado.
Quando o Dev Proxy é iniciado, o rootCert.pfx certificado é criado na ~/.config/dev-proxy/rootCert pasta.
Dependendo de suas permissões, talvez seja necessário criar a pasta antes de iniciar o ~/.config/dev-proxy/rootCert 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 &
Se você estiver usando um runner baseado em Linux, poderá instalar o certificado raiz do Dev Proxy copiando-o para o armazenamento de certificados de CA confiáveis do sistema:
# 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
Aguarde até que o Dev Proxy inicie
Quando você inicia o Dev Proxy em segundo plano, seu script é executado imediatamente. No entanto, o Dev Proxy precisa de algum tempo para começar. Para garantir que o Dev Proxy esteja pronto antes de começar a emitir solicitações, aguarde até que ele seja iniciado. Para aguardar o Proxy de Desenvolvimento iniciar, registre sua saída em um arquivo e verifique se o Proxy de Desenvolvimento está escutando solicitações da Web, por exemplo:
# 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
Configurar variáveis de ambiente proxy
Muitos aplicativos e bibliotecas usam as http_proxy variáveis e https_proxy de ambiente para determinar o servidor proxy a ser usado para solicitações HTTP e HTTPS. Para garantir que seu aplicativo use o Dev Proxy, você precisa definir essas variáveis de ambiente para apontar para a instância do Dev Proxy.
export http_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000
Proxy de Controlo de Desenvolvimento
Quando você executa o Dev Proxy em um pipeline de CI/CD, não é possível controlá-lo interativamente. Em vez disso, você pode controlá-lo enviando solicitações para a API de proxy de desenvolvimento.
Se quiser analisar as solicitações de API emitidas pelo seu aplicativo, você pode enviar uma POST solicitação para o /record ponto de extremidade:
curl -X POST http://localhost:8897/proxy/record -H "Content-Type: application/json" -d '{"recording": true}'
Para parar o Dev Proxy, você pode enviar uma POST solicitação para o /stop ponto de extremidade:
curl -X POST http://localhost:8897/proxy/stop
Depois de parar o processo de Proxy de Desenvolvimento, pode levar um momento para que ele feche totalmente. Para garantir que o Dev Proxy tenha terminado, aguarde até que o processo seja fechado, por exemplo:
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
Quando todos os plug-ins de gravação terminam de ser executados, o Dev Proxy imprime a mensagem DONE na saída. Se não houver solicitações para processar, o Dev Proxy imprimirá a mensagem No requests to process. Se ocorreu um erro em um plugin, o Dev Proxy imprimirá a mensagem An error occurred in a plugin. Quando você vir qualquer uma dessas mensagens, você pode ter certeza de que o Dev Proxy terminou de processar as solicitações gravadas.
Exemplo de script de início
Aqui está um exemplo de um script bash que você pode usar para iniciar o Dev Proxy em um pipeline de 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