Tworzenie bramy Spring Cloud Gateway

Ukończone

W tym module utworzymy bramę Spring Cloud Gateway i wdrożymy ją w usłudze Azure Spring Apps.

Bramy służą do kierowania publicznego ruchu HTTP do mikrousług:

  • Obsługują logikę routingu.
  • Zabezpieczają dostęp do mikrousług, które nie będą dostępne publicznie.
  • Mogą pełnić także spełniać funkcje jakości usług, takie jak ograniczanie szybkości protokołu HTTP.

Tworzenie bramy Spring Cloud Gateway

Aby utworzyć bramę, użyjemy polecenia https://start.spring.io z wierszem polecenia:

curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=cloud-gateway,cloud-eureka,cloud-config-client -d baseDir=todo-gateway -d bootVersion=3.1.5.RELEASE -d javaVersion=17 | tar -xzvf -

Uwaga

Używamy składników Cloud Gateway, Eureka Discovery Clienti Config Client .

Konfigurowanie aplikacji

W pliku konfiguracji src/main/resources/application.properties dodaj następującą właściwość:

spring.main.allow-bean-definition-overriding=true
spring.cloud.gateway.discovery.locator.enabled=true
  • Częścią spring.main.allow-bean-definition-overriding=true jest skonfigurowanie usługi Spring Cloud Gateway pod kątem używania fasoli Spring Cloud Discovery Server skonfigurowanej w bibliotece klienta usługi Azure Spring Apps.
  • Element spring.cloud.gateway.discovery.locator.enabled=true służy do skonfigurowania bramy Spring Cloud Gateway pod kątem korzystania z rejestru Spring Cloud Service Registry w celu odnajdywania dostępnych mikrousług.

Tworzenie aplikacji w usłudze Azure Spring Apps

Podobnie jak w poprzednim module, utwórz określoną todo-gateway aplikację w wystąpieniu usługi Azure Spring Apps. Ponieważ ta aplikacja jest bramą, dodamy flagę --assign-endpoint , aby była widoczna publicznie.

az spring app create --name todo-gateway --service "$SPRING_CLOUD_NAME" --resource-group "$RESOURCE_GROUP_NAME" --runtime-version Java_17 --assign-endpoint

Wdrażanie aplikacji

Teraz możesz skompilować projekt todo-gateway i wysłać go do usługi Azure Spring Apps:

cd todo-gateway
./mvnw clean package -DskipTests
az spring app deploy --name todo-gateway --service "$SPRING_CLOUD_NAME" --resource-group "$RESOURCE_GROUP_NAME" --artifact-path target/demo-0.0.1-SNAPSHOT.jar
cd ..

Testowanie projektu w chmurze

  1. Przejdź do obszaru Aplikacje w wystąpieniu usługi Azure Spring Apps.

    1. Sprawdź, czy brama zadań do wykonania ma stan rejestracji z informacją 1/1. Te informacje pokazują, że jest on poprawnie zarejestrowany w rejestrze Spring Cloud Service Registry.
    2. Wybierz pozycję todo-gateway, aby uzyskać więcej informacji na temat mikrousługi.
  2. Skopiuj/wklej podany publiczny adres URL. Ten adres URL będzie przydatny w kolejnych sekcjach.

    Istnieje testowy punkt końcowy — podobnie jak w przypadku mikrousług — ale brama jest bezpośrednio uwidoczniona w Internecie, więc użyjemy publicznego adresu URL.

Ponieważ brama jest połączona z rejestrem Spring Cloud Service Registry, powinna automatycznie otwierać trasy do dostępnych mikrousług, ze ścieżkami adresów URL w postaci /MICROSERVICE-ID/**: [IDENTYFIKATOR MIKROUSŁUGI musi być wielkimi literami]

Przetestuj todo-service punkt końcowy mikrousługi, wykonując następujące czynności: curl https://XXXXXXXX-todo-gateway.azuremicroservices.io/TODO-SERVICE/ (zastępując ciąg XXXXXXXX nazwą wystąpienia usługi Azure Spring Apps).

Tak jak w poprzednim module, wynikiem tego polecenia powinny być trzy elementy, które zostały początkowo wstawione do bazy danych MySQL:

[{"id":"1","description":"First item","done":true},{"id":"2","description":"Second item","done":true},{"id":"3","description":"Third item","done":false}]