Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'uso di Dev Proxy negli scenari CI/CD è un ottimo modo per testare le applicazioni in un ambiente controllato. Quando si combina Dev Proxy con test che generano richieste API nell'applicazione, è possibile coprire un'ampia gamma di scenari: dall'assicurare che l'app non usi API shadow o non di produzione per verificare che usi autorizzazioni minime di Microsoft Graph. Anche se i passaggi di configurazione esatti variano a seconda del sistema CI/CD, ecco alcuni principi generali da seguire.
Nella maggior parte dei casi, il tuo runner non ha installato Dev Proxy. Quindi, prima di poter usare Dev Proxy, è necessario installarlo. I passaggi di installazione del dipendono dal sistema operativo utilizzato dal runner.
Suggerimento
Per velocizzare la pipeline, prendere in considerazione la memorizzazione nella cache della cartella di installazione di Dev Proxy. In questo modo, non è necessario scaricare Dev Proxy ogni volta che si esegue la pipeline. Per i passaggi esatti, vedere la documentazione del sistema CI/CD.
Quando si installa Dev Proxy in un'installazione CI/CD, in genere si vuole aggiungere la versione di Dev Proxy installata. Fissare la versione garantisce che la tua pipeline utilizzi la stessa versione di Dev Proxy ogni volta che viene eseguita. I passaggi esatti per bloccare una versione dipendono dal sistema operativo del runner. Ecco un esempio di come aggiungere la versione di Dev Proxy in uno strumento di esecuzione basato su Linux:
# install Dev Proxy v1.0.0
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- v1.0.0
Avviare il proxy di sviluppo
Dopo aver installato Dev Proxy, è necessario avviarlo. Quando si avvia Dev Proxy in una pipeline CI/CD, è importante avviarlo in background. In caso contrario, la pipeline viene bloccata fino a quando non si arresta il proxy di sviluppo.
Se si usa uno strumento di esecuzione basato su Linux, è possibile avviare Dev Proxy in background:
# start Dev Proxy in the background
./devproxy/devproxy &`.
Considerare attendibile il certificato radice del proxy di sviluppo
Dopo aver avviato Dev Proxy, è necessario considerare attendibile il certificato radice del proxy di sviluppo prima di inviare richieste, perché Dev Proxy usa un certificato radice autofirmato.
All'avvio del proxy di sviluppo, il rootCert.pfx certificato viene creato nella ~/.config/dev-proxy/rootCert cartella .
A seconda delle autorizzazioni, potrebbe essere necessario creare la ~/.config/dev-proxy/rootCert cartella prima di avviare 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 si usa uno strumento di esecuzione basato su Linux, è possibile installare il certificato radice di Dev Proxy copiandolo nell'archivio certificati CA attendibili del 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
Attendere l'avvio di Dev Proxy
Quando si avvia Dev Proxy in background, lo script viene eseguito immediatamente. Tuttavia, Dev Proxy richiede un po' di tempo per iniziare. Per assicurarsi che Dev Proxy sia pronto prima di avviare le richieste, attendere l'avvio. Per attendere l'avvio di Dev Proxy, registrare l'output in un file e quindi controllare se Dev Proxy è in ascolto delle richieste Web, ad esempio:
# 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
Configurare le variabili di ambiente proxy
Molte applicazioni e librerie usano le http_proxy variabili di ambiente e https_proxy per determinare il server proxy da usare per le richieste HTTP e HTTPS. Per assicurarsi che l'applicazione usi Dev Proxy, è necessario impostare queste variabili di ambiente in modo che puntino all'istanza di Dev Proxy.
export http_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000
Controllare il proxy di sviluppo
Quando si esegue Dev Proxy in una pipeline CI/CD, non è possibile controllarlo in modo interattivo. È invece possibile controllarlo inviando richieste all'API del proxy di sviluppo.
Per analizzare le richieste API inviate dall'app, è possibile inviare una POST richiesta all'endpoint /record :
curl -X POST http://localhost:8897/proxy/record -H "Content-Type: application/json" -d '{"recording": true}'
Per arrestare Dev Proxy, è possibile inviare una POST richiesta all'endpoint /stop :
curl -X POST http://localhost:8897/proxy/stop
Dopo aver arrestato il processo dev proxy, la chiusura completa del processo può richiedere alcuni minuti. Per assicurarsi che il proxy di sviluppo sia terminato, attendere la chiusura del processo, ad esempio:
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 tutti i plug-in di registrazione terminano l'esecuzione, Dev Proxy stampa il messaggio DONE nell'output. Se non ci fossero richieste da elaborare, Dev Proxy stampa il messaggio No requests to process. Se si è verificato un errore in un plug-in, Dev Proxy stampa il messaggio An error occurred in a plugin. Quando viene visualizzato uno di questi messaggi, è possibile assicurarsi che Dev Proxy abbia completato l'elaborazione delle richieste registrate.
Script di avvio di esempio
Di seguito è riportato un esempio di script bash che è possibile usare per avviare Dev Proxy in una pipeline 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