Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Att använda Dev Proxy i CI/CD-scenarier är ett bra sätt att testa dina program i en kontrollerad miljö. När du kombinerar Dev Proxy med tester som genererar API-begäranden i ditt program kan du ta upp en mängd olika scenarier: från att se till att appen inte använder skugg- eller icke-produktions-API:er till att kontrollera att den använder minimala Microsoft Graph-behörigheter. De exakta konfigurationsstegen varierar beroende på ditt CI/CD-system, men här är några allmänna principer som du bör följa.
I de flesta fall har din löpare inte Dev Proxy installerat. Innan du kan använda Dev Proxy måste du installera den. Installationsstegen för beror på vilket operativsystem som körs.
Tips
Du kan påskynda pipelinen genom att cachelagra installationsmappen för Dev Proxy. På så sätt behöver du inte ladda ned Dev Proxy varje gång du kör din pipeline. De exakta stegen finns i dokumentationen för ditt CI/CD-system.
När du installerar Dev Proxy i en CI/CD-miljö vill du vanligtvis låsa den version av Dev Proxy som du installerar. Om du fäster versionen ser du till att pipelinen använder samma version av Dev Proxy varje gång du kör den. De exakta stegen för att fästa en version beror på operativsystemet för din löpare. Här är ett exempel på hur du kan fästa versionen av Dev Proxy på en Linux-baserad löpare:
# install Dev Proxy v1.0.0
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- v1.0.0
Starta Dev Proxy
När du har installerat Dev Proxy måste du starta den. När du startar Dev Proxy i en CI/CD-pipeline är det viktigt att du startar den i bakgrunden. Annars blockeras pipelinen tills du stoppar Dev Proxy.
Om du använder en Linux-baserad löpare kan du starta Dev Proxy i bakgrunden:
# start Dev Proxy in the background
./devproxy/devproxy &`.
Lita på rotcertifikatet för Dev Proxy
När du har startat Dev Proxy måste du lita på dev proxy-rotcertifikatet innan du skickar begäranden, eftersom Dev Proxy använder ett självsignerat rotcertifikat.
När Dev Proxy startar skapas certifikatet rootCert.pfx i ~/.config/dev-proxy/rootCert mappen .
Beroende på dina behörigheter kan du behöva skapa ~/.config/dev-proxy/rootCert mappen innan du startar 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 &
Om du använder en Linux-baserad löpare kan du installera dev proxy-rotcertifikatet genom att kopiera det till systemets betrodda CA-certifikatarkiv:
# 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
Vänta tills Dev Proxy startar
När du startar Dev Proxy i bakgrunden körs skriptet omedelbart. Dev Proxy behöver dock lite tid att starta. För att säkerställa att Dev Proxy är redo innan du börjar utfärda begäranden väntar du på att den ska starta. Om du vill vänta tills Dev Proxy startar loggar du utdata till en fil och kontrollerar sedan om Dev Proxy lyssnar efter webbbegäranden, till exempel:
# 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
Konfigurera proxymiljövariabler
Många program och bibliotek använder http_proxy miljövariablerna och https_proxy för att fastställa vilken proxyserver som ska användas för HTTP- och HTTPS-begäranden. För att säkerställa att ditt program använder Dev Proxy måste du ange dessa miljövariabler så att de pekar på Dev Proxy-instansen.
export http_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000
Kontroll dev proxy
När du kör Dev Proxy i en CI/CD-pipeline kan du inte styra den interaktivt. I stället kan du styra det genom att skicka begäranden till Dev Proxy-API:et.
Om du vill analysera API-begäranden som utfärdats av din app kan du skicka en POST begäran till /record slutpunkten:
curl -X POST http://localhost:8897/proxy/record -H "Content-Type: application/json" -d '{"recording": true}'
Om du vill stoppa Dev Proxy kan du skicka en POST begäran till /stop slutpunkten:
curl -X POST http://localhost:8897/proxy/stop
När du har stoppat Dev Proxy-processen kan det ta en stund innan den stängs helt. För att säkerställa att Dev Proxy har slutförts väntar du till exempel på att processen stängs:
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
När alla plugin-program för inspelning har körts skriver Dev Proxy ut det DONE meddelandet till utdata. Om det inte fanns några begäranden att bearbeta skriver Dev Proxy ut det No requests to process meddelandet. Om ett fel uppstod i ett plugin-program skriver Dev Proxy ut det An error occurred in a plugin meddelandet. När du ser något av dessa meddelanden kan du vara säker på att Dev Proxy har bearbetat de inspelade begärandena.
Exempel på startskript
Här är ett exempel på ett bash-skript som du kan använda för att starta Dev Proxy i en CI/CD-pipeline:
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