Samouczek: konfigurowanie kontenera przyczepki dla kontenera niestandardowego w usłudze aplikacja systemu Azure (wersja zapoznawcza)

W tym samouczku dodasz moduł zbierający OpenTelemetry jako kontener przyczepki do niestandardowej aplikacji kontenera systemu Linux w usłudze aplikacja systemu Azure Service.

W usłudze aplikacja systemu Azure można dodać maksymalnie 4 kontenery przyczepki dla każdej niestandardowej aplikacji kontenera z obsługą przyczepki. Kontenery przyczepki umożliwiają wdrażanie dodatkowych usług i funkcji w aplikacji kontenera bez ścisłego sprzężenia ich z głównym kontenerem aplikacji. Można na przykład dodać monitorowanie, rejestrowanie, konfigurację i usługi sieciowe jako kontenery przyczepki. Przyczepka modułu zbierającego OpenTelemetry jest jednym z takich przykładów monitorowania.

Aby uzyskać więcej informacji na temat przyczepek, zobacz Wzorzec przyczepki.

Uwaga

W okresie obowiązywania wersji zapoznawczej należy włączyć obsługę przyczepki podczas tworzenia aplikacji. Obecnie nie ma możliwości włączenia obsługi przyczepki dla istniejącej aplikacji.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

1. Konfigurowanie wymaganych zasobów

Najpierw utworzysz zasoby używane w samouczku (aby uzyskać więcej informacji, zobacz Omówienie usługi Cloud Shell). Są one używane w tym konkretnym scenariuszu i nie są wymagane w przypadku kontenerów przyczepki w ogóle.

  1. W usłudze Azure Cloud Shell uruchom następujące polecenia:

    git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs
    cd app-service-sidecar-tutorial-prereqs
    azd provision
    
  2. Po wyświetleniu monitu podaj nazwę środowiska, subskrypcję i żądany region. Na przykład:

    • Nazwa środowiska: my-sidecar-env
    • Subskrypcja: twoja subskrypcja
    • Region: (Europa) Europa Zachodnia

    Po zakończeniu wdrażania powinny zostać wyświetlone następujące dane wyjściowe:

     APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=...
    
     Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
     
  3. Otwórz link grupy zasobów na karcie przeglądarki. Później musisz użyć parametry połączenia.

    Uwaga

    azd provision używa dołączonych szablonów, aby utworzyć następujące zasoby platformy Azure:

2. Tworzenie aplikacji z obsługą przyczepki

  1. Na stronie zarządzania grupy zasobów wybierz pozycję Utwórz.

  2. Wyszukaj aplikację internetową, a następnie wybierz strzałkę w dół w obszarze Utwórz i wybierz pozycję Aplikacja internetowa.

    Zrzut ekranu przedstawiający stronę witryny Azure Marketplace z przeszukiwaną aplikacją internetową i kliknięciem przycisków aplikacji internetowej.

  3. Skonfiguruj panel Podstawowe w następujący sposób:

    • Nazwa: unikatowa nazwa
    • Publikowanie: kontener
    • System operacyjny: Linux
    • Region: ten sam region co wybrany za pomocą polecenia azd provision
    • Plan systemu Linux: nowy plan usługi App Service

    Zrzut ekranu przedstawiający kreatora tworzenia aplikacji internetowej i ustawienia dla wyróżnionej niestandardowej aplikacji kontenera systemu Linux.

  4. Wybierz pozycję Kontener. Skonfiguruj panel Kontener w następujący sposób:

    • Obsługa przyczepki: włączone
    • Źródło obrazu: Azure Container Registry
    • Rejestr: rejestr utworzony przez azd provision
    • Obraz: nginx
    • Tag: latest
    • Port: 80

    Zrzut ekranu przedstawiający kreatora i ustawienia tworzenia aplikacji internetowej dla obrazu kontenera oraz wyróżnioną obsługę przyczepki.

    Uwaga

    Te ustawienia są konfigurowane inaczej w aplikacjach z obsługą przyczepki. Aby uzyskać więcej informacji, zobacz Różnice w aplikacjach z obsługą przyczepki.

  5. Wybierz pozycję Przeglądanie i tworzenie, a następnie wybierz pozycję Utwórz.

  6. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

  7. Na nowej karcie przeglądarki przejdź do https://<app-name>.azurewebsites.net strony i zobacz domyślną stronę Nginx.

3. Dodawanie kontenera przyczepki

W tej sekcji dodasz kontener przyczepki do niestandardowej aplikacji kontenera.

  1. Na stronie zarządzania aplikacją z menu po lewej stronie wybierz pozycję Centrum wdrażania.

    W centrum wdrażania są wyświetlane wszystkie kontenery w aplikacji. W tej chwili ma on tylko główny kontener.

  2. Wybierz pozycję Dodaj i skonfiguruj nowy kontener w następujący sposób:

    • Nazwa: otel-collector
    • Źródło obrazu: Azure Container Registry
    • Rejestr: rejestr utworzony przez azd provision
    • Obraz: otel-collector
    • Tag: latest
    • Port: 4317

    Port 4317 to domyślny port używany przez przykładowy kontener do odbierania danych OpenTelemetry. Jest on dostępny z dowolnego innego kontenera w aplikacji pod adresem localhost:4317. W ten sposób kontener Nginx wysyła dane do przyczepki (zobacz konfigurację modułu OpenTelemetry dla przykładowego obrazu Nginx).

  3. Wybierz Zastosuj.

    Zrzut ekranu przedstawiający sposób konfigurowania kontenera przyczepki w centrum wdrażania aplikacji internetowej.

    Powinny być teraz widoczne dwa kontenery w centrum wdrażania. Główny kontener jest oznaczony jako Main, a kontener przyczepki jest oznaczony jako Przyczepka. Każda aplikacja musi mieć jeden główny kontener, ale może mieć wiele kontenerów przyczepki.

4. Konfigurowanie zmiennych środowiskowych

W przykładowym scenariuszu przyczepka modułu zbierającego otel jest skonfigurowana do eksportowania danych OpenTelemetry do usługi Azure Monitor, ale wymaga parametry połączenia jako zmiennej środowiskowej (zobacz plik konfiguracji OpenTelemetry dla obrazu modułu zbierającego otel-collector).

Zmienne środowiskowe dla kontenerów, takich jak dowolna aplikacja usługi App Service, konfigurując ustawienia aplikacji. Ustawienia aplikacji są dostępne dla wszystkich kontenerów w aplikacji.

  1. Na stronie zarządzania aplikacją z menu po lewej stronie wybierz pozycję Konfiguracja.

  2. Dodaj ustawienie aplikacji, wybierając pozycję Nowe ustawienie aplikacji i skonfiguruj je w następujący sposób:

    • Nazwa: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Wartość: parametry połączenia w danych wyjściowychazd provision
  3. Wybierz pozycję Zapisz, a następnie wybierz pozycję Kontynuuj.

    Zrzut ekranu przedstawiający stronę Konfiguracja aplikacji internetowej z dodanymi dwoma ustawieniami aplikacji.

Uwaga

Niektóre ustawienia aplikacji nie mają zastosowania do aplikacji z obsługą przyczepki. Aby uzyskać więcej informacji, zobacz Różnice w aplikacjach z obsługą przyczepki

5. Sprawdź w Szczegółowe informacje aplikacji

Przyczepka modułu zbierającego otel powinna teraz eksportować dane do aplikacji Szczegółowe informacje.

  1. Wróć do karty https://<app-name>.azurewebsites.netprzeglądarki dla polecenia , odśwież stronę kilka razy, aby wygenerować niektóre żądania internetowe.

  2. Wróć do strony przeglądu grupy zasobów, wybierz zasób Application Szczegółowe informacje. Powinny być teraz widoczne pewne dane na wykresach domyślnych.

    Zrzut ekranu przedstawiający stronę Szczegółowe informacje aplikacji z danymi na wykresach domyślnych.

Uwaga

W tym bardzo typowym scenariuszu monitorowania aplikacja Szczegółowe informacje jest tylko jednym z obiektów docelowych openTelemetry, których można użyć, takich jak Jaeger, Prometheus i Zipkin.

Czyszczenie zasobów

Gdy środowisko nie jest już potrzebne, możesz usunąć grupę zasobów, usługę App Service i wszystkie powiązane zasoby. Wystarczy uruchomić to polecenie w usłudze Cloud Shell w sklonowanym repozytorium:

azd down

Różnice w aplikacjach z obsługą przyczepki

Aplikacje z obsługą przyczepki są konfigurowane inaczej niż aplikacje, które nie są włączone w przyczepce. W szczególności nie konfigurujesz głównego kontenera i przyczepek z ustawieniami aplikacji, ale bezpośrednio we właściwościach zasobu. Te ustawienia aplikacji nie mają zastosowania do aplikacji z obsługą przyczepki:

  • Ustawienia uwierzytelniania rejestru: DOCKER_REGISTRY_SERVER_URL, DOCKER_REGISTRY_SERVER_USERNAME i DOCKER_REGISTRY_SERVER_PASSWORD.
  • Port kontenera: WEBSITES_PORT

Więcej zasobów