Samouczek: komunikacja między mikrousługami w usłudze Azure Container Apps

Usługa Azure Container Apps uwidacznia każdą aplikację kontenera za pośrednictwem nazwy domeny, jeśli ruch przychodzący jest włączony. Punkty końcowe ruchu przychodzącego dla aplikacji kontenerów w środowisku zewnętrznym mogą być dostępne publicznie lub dostępne tylko dla innych aplikacji kontenerów w tym samym środowisku.

Gdy znasz w pełni kwalifikowaną nazwę domeny dla danej aplikacji kontenera, możesz wykonywać bezpośrednie wywołania usługi z innych aplikacji kontenera w środowisku udostępnionym.

W tym samouczku wdrożysz drugą aplikację kontenera, która wykonuje bezpośrednie wywołanie usługi do interfejsu API wdrożonego w przewodniku Szybki start Wdrażanie kodu w usłudze Azure Container Apps .

Poniższy zrzut ekranu przedstawia mikrousługę interfejsu użytkownika wdrożoną w aplikacjach kontenerów na końcu tego artykułu.

Zrzut ekranu przedstawiający mikrousługę interfejsu użytkownika listy albumów.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Wdrażanie aplikacji frontonu w usłudze Azure Container Apps
  • Łączenie aplikacji frontonu z punktem końcowym interfejsu API wdrożonym w poprzednim przewodniku Szybki start
  • Sprawdzanie, czy aplikacja frontonu może komunikować się z interfejsem API zaplecza

Wymagania wstępne

W kodzie przewodnika Szybki start dotyczącego chmury wdrożono internetowy interfejs API zaplecza w celu zwrócenia listy albumów muzycznych. Jeśli nie wdrożono mikrousługi interfejsu API albumu, wróć do przewodnika Szybki start: Wdrażanie kodu w usłudze Azure Container Apps , aby kontynuować.

Ustawienia

Jeśli obecnie uwierzytelniono się na platformie Azure i masz zmienne środowiskowe zdefiniowane w przewodniku Szybki start, pomiń poniższe kroki i przejdź bezpośrednio do sekcji Przygotowywanie repozytorium GitHub.

Zdefiniuj następujące zmienne w powłoce powłoki bash.

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

Przed uruchomieniem tego polecenia pamiętaj, aby zastąpić <YOUR_GITHUB_USERNAME> ciąg nazwą użytkownika usługi GitHub.

Następnie zdefiniuj unikatową nazwę rejestru kontenerów.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Zaloguj się do interfejsu wiersza polecenia platformy Azure.

az login
az acr login --name $ACR_NAME

Przygotowywanie repozytorium GitHub

  1. Na nowej karcie przeglądarki przejdź do repozytorium aplikacji interfejsu użytkownika i wybierz przycisk Rozwidlenie w górnej części strony, aby utworzyć rozwidlenie repozytorium na koncie.

    Postępuj zgodnie z monitami z usługi GitHub, aby utworzyć rozwidlenie repozytorium i wróć tutaj po zakończeniu operacji.

  2. Przejdź do elementu nadrzędnego folderu code-to-cloud . Jeśli nadal jesteś w katalogu code-to-cloud/src , możesz użyć poniższego polecenia, aby powrócić do folderu nadrzędnego.

    cd ../..
    
  3. Użyj następującego polecenia git, aby sklonować rozwidlenie repozytorium do folderu code-to-cloud-ui :

    git clone https://github.com/$GITHUB_USERNAME/containerapps-albumui.git code-to-cloud-ui
    

    Uwaga

    Jeśli polecenie zakończy się niepowodzeniem clone , sprawdź, czy rozwidlenie repozytorium zostało pomyślnie utworzone.

  4. Następnie zmień katalog na folder src sklonowanego repozytorium.

    cd code-to-cloud-ui/src
    

Tworzenie aplikacji frontonu

az acr build --registry $ACR_NAME --image albumapp-ui .

Dane wyjściowe z az acr build polecenia pokazują postęp przekazywania kodu źródłowego na platformę Azure oraz szczegóły docker build operacji.

  1. Następujące polecenie kompiluje obraz kontenera dla interfejsu użytkownika albumu i oznacza go w pełni kwalifikowaną nazwą serwera logowania usługi ACR. Na . końcu polecenia reprezentuje kontekst kompilacji platformy Docker, co oznacza, że to polecenie powinno być uruchamiane w folderze src , w którym znajduje się plik Dockerfile.

    docker build --tag "$ACR_NAME.azurecr.io/albumapp-ui" . 
    

Wypchnięcie obrazu do rejestru usługi ACR

  1. Najpierw zaloguj się do usługi Azure Container Registry.

    az acr login --name $ACR_NAME
    
  2. Teraz wypchnij obraz do rejestru.

    
     docker push "$ACR_NAME.azurecr.io/albumapp-ui" 
    

Komunikacja między aplikacjami kontenerów

W poprzednim przewodniku Szybki start interfejs API albumu został wdrożony przez utworzenie aplikacji kontenera i włączenie ruchu przychodzącego zewnętrznego. Ustawienie ruchu przychodzącego aplikacji kontenera na zewnętrzny adres URL punktu końcowego HTTP jest publicznie dostępny.

Teraz możesz skonfigurować aplikację frontonu w celu wywołania punktu końcowego interfejsu API, wykonując następujące kroki:

  • Odpytywanie aplikacji interfejsu API pod kątem w pełni kwalifikowanej nazwy domeny (FQDN).
  • Przekaż nazwę FQDN interfejsu API jako az containerapp create zmienną środowiskową, aby aplikacja interfejsu użytkownika mogła ustawić podstawowy adres URL wywołania interfejsu API albumu w kodzie.

Aplikacja interfejsu użytkownika używa podanego punktu końcowego do wywoływania interfejsu API albumu. Poniższy kod jest fragmentem kodu używanego w index.js pliku tras>.

const api = axios.create({
  baseURL: process.env.API_BASE_URL,
  params: {},
  timeout: process.env.TIMEOUT || 5000,
});

Zwróć uwagę, baseURL że właściwość pobiera jej wartość ze zmiennej środowiskowej API_BASE_URL .

Uruchom następujące polecenie, aby wykonać zapytanie dotyczące adresu punktu końcowego interfejsu API.

API_BASE_URL=$(az containerapp show --resource-group $RESOURCE_GROUP --name $API_NAME --query properties.configuration.ingress.fqdn -o tsv)

Teraz, po ustawieniu zmiennej API_BASE_URL przy użyciu nazwy FQDN interfejsu API albumu, możesz podać ją jako zmienną środowiskową aplikacji kontenera frontonu.

Wdrażanie aplikacji frontonu

Utwórz i wdróż aplikację kontenera za pomocą następującego polecenia.

az containerapp create \
  --name $FRONTEND_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/albumapp-ui  \
  --target-port 3000 \
  --env-vars API_BASE_URL=https://$API_BASE_URL \
  --ingress 'external' \
  --registry-server $ACR_NAME.azurecr.io \
  --query properties.configuration.ingress.fqdn

Dodając argument --env-vars "API_BASE_URL=https://$API_ENDPOINT" do az containerapp createelementu , zdefiniujesz zmienną środowiskową dla aplikacji frontonu. Dzięki tej składni zmienna środowiskowa o nazwie API_BASE_URL jest ustawiona na nazwę FQDN interfejsu API.

Dane wyjściowe polecenia az containerapp create pokazują adres URL aplikacji frontonu.

Wyświetlanie witryny internetowej

Użyj nazwy FQDN aplikacji kontenera, aby wyświetlić witrynę internetową. Strona przypomina poniższy zrzut ekranu.

Zrzut ekranu przedstawiający mikrousługę interfejsu użytkownika listy albumów.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, uruchom następujące polecenie, aby usunąć grupę zasobów wraz ze wszystkimi zasobami utworzonymi w tym przewodniku Szybki start.

Uwaga

To polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego samouczka istnieją w określonej grupie zasobów, zostaną również usunięte.

az group delete --name $RESOURCE_GROUP

Napiwek

Masz problemy? Poinformuj nas o usłudze GitHub, otwierając problem w repozytorium usługi Azure Container Apps.

Następne kroki