Udostępnij za pośrednictwem


Wprowadzenie do usługi Dev Proxy

Dev Proxy to narzędzie wiersza polecenia, które pomaga symulować zachowania i błędy interfejsów API w chmurze, które ułatwiają tworzenie odpornych aplikacji.

Z tego samouczka dowiesz się, jak zainstalować, uruchomić i skonfigurować serwer proxy deweloperów.

Jeśli napotkasz jakiekolwiek trudności, nie wahaj się skontaktować się z nami, podnosząc nowy problem i cieszymy się, że pomożemy Ci.

Instalowanie serwera proxy deweloperskiego

Najprostszym sposobem instalowania serwera proxy deweloperskiego jest użycie zestawu winget. Alternatywnie można zainstalować serwer proxy deweloperów ręcznie.

Aby zainstalować serwer proxy deweloperów przy użyciu zestawu winget, uruchom następujące polecenie:

winget install Microsoft.DevProxy --silent

Ważne

Instalator serwera proxy deweloperów dodaje nowy wpis do ścieżki. Aby po zakończeniu instalacji użyć serwera proxy deweloperów, należy ponownie uruchomić wiersz polecenia, aby upewnić się, że zmienne środowiskowe PATH zostały odświeżone.

Uwaga

Aby wypróbować najnowsze funkcje w wersji zapoznawczej, zainstaluj wersję beta serwera proxy dev.

Aby zainstalować serwer proxy deweloperów przy użyciu zestawu winget, uruchom następujące polecenie:

winget install Microsoft.DevProxy.Beta --silent

Aby uruchomić wersję beta serwera proxy deweloperskiego, użyj polecenia devproxy-beta

Najprostszym sposobem zainstalowania serwera proxy deweloperskiego jest użycie oprogramowania Homebrew. Alternatywnie można zainstalować serwer proxy deweloperów ręcznie.

Aby zainstalować serwer proxy deweloperów przy użyciu oprogramowania Homebrew, uruchom następujące polecenia:

brew tap microsoft/dev-proxy
brew install dev-proxy

Uwaga

Aby wypróbować najnowsze funkcje w wersji zapoznawczej, zainstaluj wersję beta serwera proxy dev.

Aby zainstalować serwer proxy deweloperów przy użyciu oprogramowania Homebrew, uruchom następujące polecenia:

brew tap microsoft/dev-proxy
brew install dev-proxy-beta

Aby uruchomić wersję beta serwera proxy deweloperskiego, użyj polecenia devproxy-beta

Najprostszym sposobem zainstalowania serwera proxy deweloperskiego jest użycie skryptu konfiguracji. Alternatywnie można zainstalować serwer proxy deweloperów ręcznie.

Aby zainstalować serwer proxy deweloperów przy użyciu skryptu instalacji, uruchom następujące polecenia:

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

Jeśli używasz programu PowerShell, uruchom następujące polecenie:

(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression

Uwaga

Aby wypróbować najnowsze funkcje w wersji zapoznawczej, zainstaluj wersję beta serwera proxy dev.

Aby zainstalować serwer proxy deweloperów przy użyciu skryptu instalacji, uruchom następujące polecenia:

bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"

Jeśli używasz programu PowerShell, uruchom następujące polecenie:

(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression

Aby uruchomić wersję beta serwera proxy deweloperskiego, użyj polecenia devproxy-beta

Uruchamianie serwera proxy deweloperskiego po raz pierwszy

Przy pierwszym uruchomieniu serwera proxy deweloperskiego na maszynie należy wykonać kilka kroków, aby upewnić się, że serwer proxy deweloperów może przechwytywać żądania z maszyny i pomyślnie odpowiadać. Nie trzeba powtarzać tych kroków po pierwszym uruchomieniu.

  1. Uruchom serwer proxy deweloperów. Otwórz sesję wiersza polecenia. Wprowadź devproxy i naciśnij Enter.
  2. Certyfikat zaufania. Serwer proxy deweloperów instaluje certyfikat o nazwie Dev Proxy CA. Zostanie wyświetlone ostrzeżenie. Wybierz Yes , aby potwierdzić, że chcesz zainstalować certyfikat. Serwer proxy deweloperów używa tego certyfikatu do odszyfrowywania ruchu HTTPS wysyłanego z maszyny.
  3. Zezwalaj na dostęp do zapory. Zapora systemu Windows blokuje serwer proxy. Zostanie wyświetlone ostrzeżenie. Wybierz Allow access przycisk, aby zezwolić na ruch przez zaporę.
  1. Uruchom serwer proxy deweloperów. Otwórz sesję wiersza polecenia. Wprowadź devproxy i naciśnij Enter.
  2. Certyfikat zaufania. Serwer proxy deweloperów instaluje certyfikat o nazwie Dev Proxy CA, który jest używany do odszyfrowywania ruchu HTTPS wysyłanego z maszyny. Zostanie wyświetlone ostrzeżenie. Naciśnij y , aby potwierdzić, że chcesz ufać certyfikatowi.
  3. Zaakceptuj połączenia przychodzące. Zostanie wyświetlone ostrzeżenie. Wybierz, Allow aby potwierdzić.
  1. Uruchom serwer proxy deweloperów. Otwórz sesję wiersza polecenia. Wprowadź devproxy i naciśnij Enter.

  2. Certyfikat zaufania. Serwer proxy deweloperów używa niestandardowego certyfikatu SSL do odszyfrowywania ruchu HTTPS wysyłanego z maszyny.

    Ważne

    Poniższe instrukcje dotyczą systemu Ubuntu. W przypadku innych dystrybucji systemu Linux kroki mogą się różnić.

    Aby zainstalować i zaufać certyfikatowi, w nowym wierszu polecenia uruchom następujące polecenia:

    # Export Dev Proxy root certificate
    openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
    # Install the certificate
    sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
    # Update certificates
    sudo update-ca-certificates
    

Wiersz polecenia wyświetla następujące dane wyjściowe:

 info    8 error responses loaded from devproxy-errors.json
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Domyślnie serwer proxy deweloperów jest skonfigurowany do:

  • Przechwytywanie żądań wysyłanych do dowolnego punktu końcowego interfejsu API symbolu zastępczego JSON
  • Symulowanie odpowiedzi na błędy interfejsu API i ograniczanie interfejsu API z szybkością awarii wynoszącą 50%

Przechwytywanie żądań

Serwer proxy deweloperów przechwytuje żądania wysyłane do znanych adresów URL z dowolnej aplikacji na maszynie. Po wykryciu żądania serwer proxy dewelopera przekazuje żądanie do interfejsu API (nie podejmij żadnej akcji) lub zwraca odpowiedź.

  • Wyślij żądanie do interfejsu API symbolu zastępczego JSON z wiersza polecenia i wróć do procesu serwera proxy, aby wyświetlić dane wyjściowe.

W programie PowerShell użyj Invoke-WebRequest polecenia cmdlet , aby wysłać żądanie GET do interfejsu API symbolu zastępczego JSON.

Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts

Jeśli używasz polecenia curl, wyślij żądanie GET do interfejsu API symbolu zastępczego JSON przy użyciu następującego polecenia.

curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts

Możesz również użyć klienta interfejsu API, takiego jak Postman , aby wysłać żądanie GET do https://jsonplaceholder.typicode.com/postsusługi .

Wpis jest wyświetlany z podstawowymi informacjami na temat żądania przychodzącego i akcją wykonywaną przez serwer proxy deweloperów. Serwer proxy deweloperów symuluje odpowiedź na błąd z 50% szansą. Jeśli żądanie nie zwraca błędu, serwer proxy deweloperów przekazuje go.

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through
  • Powtarzaj wysyłanie żądań do interfejsu API symbolu zastępczego JSON z wiersza polecenia, aż zostanie zwrócona odpowiedź o błędzie.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 403 Forbidden

Gdy serwer proxy deweloperów zwraca odpowiedź o błędzie, chaos w wpisie zostanie wyświetlona etykieta.

  • Spróbuj wysłać żądania do innych punktów końcowych dostępnych w interfejsie API symbolu zastępczego JSON
    • https://jsonplaceholder.typicode.com/posts
    • https://jsonplaceholder.typicode.com/posts/1
    • https://jsonplaceholder.typicode.com/posts/1/comments
    • https://jsonplaceholder.typicode.com/comments?postId=1

Bezpieczne zatrzymywanie serwera proxy deweloperskiego

Jeśli serwer proxy deweloperów nie będzie już potrzebny do uruchomienia, zawsze należy go bezpiecznie zatrzymać.

  • Naciśnij Ctrl + C, aby bezpiecznie zatrzymać serwer proxy deweloperów.

Jeśli zamkniesz sesję wiersza polecenia, serwer proxy dewelopera nie wyrejestruje się poprawnie jako serwer proxy systemu i może wystąpić kilka typowych problemów.

Aktualizowanie adresów URL do obejrzenia

Domyślnie serwer proxy deweloperów jest skonfigurowany do przechwytywania wszystkich żądań do interfejsu API symbolu zastępczego JSON. Serwer proxy deweloperów można skonfigurować tak, aby przechwycił żądania do dowolnego interfejsu API HTTP.

  • W wierszu polecenia uruchom polecenie brew list dev-proxy , aby zlokalizować folder instalacyjny.
  • Otwórz folder instalacyjny serwera proxy dev w programie Finder.
  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxyrc.json w edytorze tekstów.
  • Znajdź tablicę urlsToWatch .
"urlsToWatch": [
  "https://jsonplaceholder.typicode.com/*"
],

Tablica urlsToWatch reprezentuje znane adresy URL. Serwer proxy deweloperów obserwuje żądania z bieżącego wpisu do dowolnego punktu końcowego. Wpis używa gwiazdki po adresie URL jako symbolu wieloznacznego. Dodanie większej liczby wpisów do tej tablicy rozszerza adresy URL, dla których zwraca uwagę serwer proxy deweloperów.

Rozważmy, że nie chcesz, aby serwer proxy deweloperów przechwycił żądania wysyłane do określonego punktu końcowego.

  • Dodaj nowy wpis do tablicy urlsToWatch .
"urlsToWatch": [
  "!https://jsonplaceholder.typicode.com/posts/2",
  "https://jsonplaceholder.typicode.com/*"
],

Wykrzyknik na początku adresu URL informuje serwer proxy deweloperów o ignorowaniu żądań pasujących do tego adresu URL. Możesz mieszać i dopasowywać wykrzykniki i gwiazdki w adresie URL.

  • W wierszu polecenia wprowadź i devproxy naciśnij Enter , aby uruchomić serwer proxy deweloperów.
  • Wyślij żądanie z https://jsonplaceholder.typicode.com/posts/2 wiersza polecenia i wyświetl dane wyjściowe.

Gdy ignorowany adres URL jest zgodny z żądaniem, serwer proxy dewelopera nie przetwarza żądania, więc żadne dane wyjściowe nie są wyświetlane.

Kolejność, w jakiej adresy URL są wymienione w tablicy urlsToWatch , jest ważna. Serwer proxy deweloperów przetwarza te adresy URL w kolejności. Gdy adres URL jest zgodny, nie jest przetwarzany ponownie. Dlatego umieszczenie adresu URL najpierw gwarantuje, że żądanie zostanie zignorowane przed przetworzeniem następnego adresu URL.

Współczynnik niepowodzeń zmian

Domyślnie serwer proxy deweloperów jest skonfigurowany do żądania niepowodzenia z 50% szansą na obserwowane adresy URL. Możesz zwiększyć lub zmniejszyć prawdopodobieństwo zwrócenia odpowiedzi błędu przez żądanie.

Zaktualizujmy współczynnik niepowodzeń, aby każde żądanie do interfejsu API symbolu zastępczego JSON zwracało odpowiedź o błędzie.

  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxyrc.json w edytorze tekstów.
  • rate Znajdź właściwość i zaktualizuj wartość z 50 na 100.

Plik devproxyrc.json zawiera ustawienia konfiguracji, które są używane podczas uruchamiania serwera proxy deweloperskiego. Podczas zmieniania ustawień konfiguracji należy zawsze zatrzymywać i uruchamiać serwer proxy deweloperów, aby zmiany zostały utrwalone.

  • W wierszu polecenia wprowadź i devproxy naciśnij Enter , aby uruchomić serwer proxy deweloperów.
  • Wyślij żądanie do interfejsu API symbolu zastępczego JSON z wiersza polecenia i wyświetl dane wyjściowe.

Alternatywnie można zastąpić ustawienia konfiguracji w czasie wykonywania przy użyciu opcji podczas uruchamiania --failure-rate serwera proxy deweloperskiego.

devproxy --failure-rate 100
  • Naciśnij Ctrl + C, aby bezpiecznie zatrzymać serwer proxy deweloperów.

Symulowanie ograniczania przepustowości

Domyślnie serwer proxy deweloperów zwraca zakres ogólnych odpowiedzi na błędy 400 i 500. Te odpowiedzi na błędy można dostosować do własnych potrzeb.

Serwer proxy deweloperów używa wtyczek do włączania różnych zachowań interfejsu API. Domyślnie włączamy dla Ciebie dwie wtyczki.

Zmieńmy konfigurację, aby serwer proxy deweloperów zawsze zwracał 429 Too Many requests odpowiedź o błędzie w celu symulowania ograniczania przepustowości.

Najpierw znajdźmy lokalizację pliku zawierającego definicje błędów.

  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxyrc.json w edytorze tekstów.
  • W tablicy plugins znajdź wpis dla wtyczki GenericRandomErrorPlugin . Zanotuj configSection wartość właściwości .
  • W dalszej części pliku znajdź genericRandomErrorPlugin obiekt . Zanotuj errorsFile wartość właściwości .

Napiwek

Lokalizacja pliku błędów jest również wyświetlana w danych wyjściowych podczas uruchamiania serwera proxy deweloperskiego.

  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxy-errors.json w edytorze tekstów.
  • Usuń wszystkie wpisy odpowiedzi w tablicy responses z wyjątkiem 429 odpowiedzi.
{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
  "errors": [
    {
      "request": {
        "url": "https://jsonplaceholder.typicode.com/*"
      },
      "responses": [
        {
          "statusCode": 429,
          "body": {
            "message": "Too Many Requests",
            "details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
          },
          "headers": {
            "Retry-After": "@dynamic"
          }
        }
      ]
    }
  ]
}
  • W wierszu polecenia wprowadź i devproxy naciśnij Enter , aby uruchomić serwer proxy deweloperów.
  • Wyślij żądanie do interfejsu API symbolu zastępczego JSON z wiersza polecenia i wyświetl dane wyjściowe.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 429 TooManyRequests
  • Naciśnij Ctrl + C, aby bezpiecznie zatrzymać serwer proxy deweloperów.

Następny krok

Dowiedz się, jak używać serwera proxy deweloperów do symulowania losowych błędów dla własnej aplikacji.