Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Usar o Proxy de Desenvolvimento 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 abranger uma ampla gama de cenários: desde garantir que seu aplicativo não use APIs de sombra ou não de 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, o executor não tem o Proxy de Desenvolvimento instalado. Portanto, antes de usar o Proxy de Desenvolvimento, você precisa instalá-lo. As etapas de instalação dependem do sistema operacional usado pelo executor.
Dica
Para acelerar seu pipeline, considere armazenar em cache a pasta onde o Proxy de Desenvolvimento está instalado. Dessa forma, você não precisa baixar o Dev Proxy sempre que executar o pipeline. Para obter as etapas exatas, consulte a documentação do seu sistema de CI/CD.
Ao instalar o Proxy de Desenvolvimento em uma configuração de CI/CD, você normalmente deseja fixar a versão do Proxy de Desenvolvimento que você instala. Fixar a versão garante que o pipeline use a mesma versão do Proxy de Desenvolvimento sempre que você executá-la. As etapas exatas para fixar uma versão dependem do sistema operacional do executor. Aqui está um exemplo de como você pode fixar a versão do Dev Proxy em um runner baseado em Linux:
# install Dev Proxy v1.0.0
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- v1.0.0
Iniciar Proxy de Desenvolvimento
Depois de instalar o Proxy de Desenvolvimento, você precisa iniciá-lo. Ao iniciar o Dev Proxy em um pipeline de CI/CD, é importante executá-lo em segundo plano. Caso contrário, o pipeline será bloqueado até que você interrompa o Proxy de Desenvolvimento.
Se você estiver usando um executor baseado em Linux, poderá iniciar o Proxy de Desenvolvimento em segundo plano:
# start Dev Proxy in the background
./devproxy/devproxy &`.
Confiar no certificado raiz do Proxy de Desenvolvimento
Depois de iniciar o Proxy de Desenvolvimento, você precisa confiar no certificado raiz do Proxy de Desenvolvimento antes de enviar solicitações, pois o Proxy de Desenvolvimento usa um certificado raiz autoassinado.
Quando o Proxy de Desenvolvimento é iniciado, o certificado rootCert.pfx é criado no diretório ~/.config/dev-proxy/rootCert.
Dependendo de suas permissões, talvez seja necessário criar a pasta ~/.config/dev-proxy/rootCert antes de iniciar o Proxy de Desenvolvimento.
# 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 executor baseado em Linux, poderá instalar o certificado raiz do Proxy de Desenvolvimento copiando-o para o repositório de certificados de AC 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
Aguardar até que o Proxy de Desenvolvimento seja iniciado
Quando você inicia o Proxy de Desenvolvimento em segundo plano, o script é executado imediatamente. No entanto, o Proxy de Desenvolvimento precisa de algum tempo para começar. Para garantir que o Proxy de Desenvolvimento esteja pronto antes de iniciar a emissão de solicitações, aguarde até que ele seja iniciado. Para aguardar o início do Proxy de Desenvolvimento, 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 de proxy
Muitos aplicativos e bibliotecas usam as http_proxy variáveis de ambiente 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 Proxy de Desenvolvimento, você precisa definir essas variáveis de ambiente para apontar para a instância do Proxy de Desenvolvimento.
export http_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000
Controlar o Proxy de Desenvolvimento
Quando você executa o Proxy de Desenvolvimento 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 você quiser analisar as solicitações de API emitidas pelo aplicativo, poderá 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 interromper o Dev Proxy, você pode enviar uma POST solicitação para o /stop endpoint:
curl -X POST http://localhost:8897/proxy/stop
Depois que você interrompe o processo do Proxy de Desenvolvimento, talvez sejam necessários alguns instantes para que ele seja totalmente fechado. Para garantir que o Dev Proxy termine, aguarde o fechamento do processo, 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 Proxy de Desenvolvimento imprimirá a mensagem No requests to process. Se ocorreu um erro em um plug-in, o Proxy de Desenvolvimento imprime a mensagem An error occurred in a plugin. Ao ver qualquer uma dessas mensagens, você pode ter certeza de que o Proxy de Desenvolvimento terminou de processar as solicitações gravadas.
Exemplo de script de início
Aqui está um exemplo de 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