Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera praktyczne kroki włączania i konfigurowania przyczepek w aplikacji usługi App Service.
Tworzenie przyczepki w witrynie Azure Portal
- Przejdź do zasobu usługi App Service w witrynie Azure Portal.
- Wybierz pozycję Centrum wdrażania i przejdź do karty Kontenery .
- Kliknij pozycję Dodaj kontener , aby dodać przyczepkę.
- Wprowadź nazwę obrazu, uwierzytelnianie rejestru (w razie potrzeby) i zmienne środowiskowe.
- Zapisz zmiany. Przyczepka zostanie wdrożona obok głównego kontenera aplikacji.
Włącz obsługę sidecar dla własnych kontenerów systemu Linux
W przypadku kontenera niestandardowego należy jawnie włączyć obsługę przyczepki. W portalu możesz dokonać wyboru w kreatorze tworzenia usługi App Service. Możesz również włączyć tę funkcję dla istniejącej aplikacji na stronie Deployment Center> istniejącej aplikacji, jak przedstawiono na poniższym zrzucie ekranu:
Za pomocą interfejsu wiersza polecenia platformy Azure przekonwertuj sitecontainers aplikację internetową na użycie konfiguracji. Przykład:
az webapp sitecontainers convert --mode sitecontainers --name <YourWebAppName> --resource-group <YourResourceGroup>
Spowoduje to zaktualizowanie LinuxFxVersion elementu i sitecontainers włączenie obsługi wzorca przyczepki.
Przywracanie do klasycznego trybu kontenera niestandardowego (Docker)
Jeśli musisz przełączyć się z powrotem z konfiguracji z obsługą przyczepki do klasycznej konfiguracji opartej na platformie Docker, uruchom następujące polecenie:
az webapp sitecontainers convert \
--mode docker \
--name <app-name> \
--resource-group <resource-group>
To polecenie usuwa wszystkie kontenery przyczepki i resetuje aplikację do korzystania z konfiguracji stylu klasycznego DOCKER|<image> . Aby uzyskać szczegółowe informacje, zobacz dokumentację interfejsu wiersza polecenia platformy Azure dla programu az webapp sitecontainers convert.
Aby uzyskać więcej informacji, zobacz Jakie są różnice w przypadku kontenerów niestandardowych z obsługą przyczepki?
Jakie są różnice w przypadku kontenerów niestandardowych z obsługą przyczepki?
Aplikacje obsługujące sidecar są konfigurowane inaczej niż aplikacje, które nie obsługują sidecar.
- Aplikacje z funkcją Sidecar są oznaczane za pomocą
LinuxFxVersion=sitecontainersi konfigurowane z zasobamisitecontainers. - Aplikacje, które nie mają aktywowanego trybu sidecar, konfigurują nazwę kontenera i typ bezpośrednio za pomocą
LinuxFxVersion=DOCKER|<image-details>.
Aby uzyskać więcej informacji, zobacz az webapp config set --linux-fx-version.
Aplikacje, które nie są kompatybilne z architekturą sidecar, konfigurują główny kontener przy użyciu ustawień aplikacji, takich jak:
DOCKER_REGISTRY_SERVER_URLDOCKER_REGISTRY_SERVER_USERNAMEDOCKER_REGISTRY_SERVER_PASSWORDWEBSITES_PORT
Te ustawienia nie mają zastosowania do aplikacji z obsługą przyczepki.
Definiowanie sidecara przy użyciu szablonu ARM
Microsoft.Web/sites/sitecontainers Dodaj typ zasobu do aplikacji. Aby ściągnąć obraz przyczepki z usługi ACR przy użyciu tożsamości zarządzanej przypisanej przez użytkownika, określ authType jako UserAssigned i podaj wartość userManagedIdentityClientId:
{
"type": "Microsoft.Web/sites/sitecontainers",
"apiVersion": "2024-04-01",
"name": "<app-name>/<sidecar-name>",
"properties": {
"image": "<acr-name>.azurecr.io/<image-name>:<version>",
"isMain": false,
"authType": "UserAssigned",
"userManagedIdentityClientId": "<client-id>",
"environmentVariables": [
{ "name": "MY_ENV_VAR", "value": "my-value" }
]
}
}
Ważne
Tylko główny kontener ("isMain": true) odbiera ruch zewnętrzny. W niestandardowej aplikacji kontenera systemu Linux z włączoną obsługą przyczepki główny kontener ma isMain ustawioną wartość true. Wszystkie kontenery przyczepki powinny mieć wartość "isMain": false.
Aby uzyskać więcej informacji, zobacz Microsoft.Web sites/sitecontainers.
Tworzenie przyczepek przy użyciu interfejsu wiersza polecenia platformy Azure
Utwórz aplikację z obsługą sidecar za pomocą az webapp create. Przykład:
az webapp create --name <app-name> --resource-group <group-name> --sitecontainers-app
Utwórz kontener typu sidecar za pomocą polecenia az webapp sitecontainers create. Przykład:
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --container-name <container> --image <image> --target-port <port>
Utwórz kontener przyczepki z plikiem JSON:
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --sitecontainers-spec-file <file-path>
Aby uzyskać wszystkie polecenia przyczepki, zobacz az webapp sitecontainers.
Ustawianie zmiennych środowiskowych
W aplikacji systemu Linux wszystkie kontenery (główne i przyczepki) współdzielą zmienne środowiskowe. Aby zastąpić określoną zmienną dla przyczepki, dodaj ją w konfiguracji przyczepki.
- W szablonach ARM (Azure Resource Manager) użyj tablicy
environmentVariableswe właściwościach sidecaru. - W portalu dodaj zmienne środowiskowe w interfejsie użytkownika konfiguracji kontenera.
- Zmienne środowiskowe mogą odwoływać się do ustawień aplikacji poprzez nazwę; wartość zostanie ustalona w czasie wykonywania.
Dodawanie rozszerzenia przyczepki Redis
W Azure Portal możesz dodać rozszerzenie sidecar Redis do aplikacji do buforowania. Redis sidecar jest przeznaczony tylko do lekkiego buforowania, a nie jako zamiennik dla Azure Cache for Redis.
Aby użyć przyczepki Redis:
- W kodzie aplikacji ustaw łańcuch połączenia Redis na
localhost:6379. - Skonfiguruj usługę Redis w kodzie uruchamiania aplikacji.
- Używanie wzorców buforowania do przechowywania i pobierania danych.
- Przetestuj, korzystając z aplikacji i sprawdzając dzienniki, aby potwierdzić użycie pamięci podręcznej.
Dodaj rozszerzenie sidecar Datadog
W Azure Portal można dodać rozszerzenie Datadog sidecar w celu zbierania dzienników, metryk i śladów dla obserwowalności bez modyfikowania kodu aplikacji. Po dodaniu rozszerzenia określasz informacje o koncie usługi Datadog, aby rozszerzenie sidecar mogło bezpośrednio wysyłać dane telemetryczne do Datadog.
W przypadku aplikacji opartych na kodzie:
startup.shUtwórz skrypt do pobrania i zainicjowania modułu śledzenia usługi Datadog. Poniższy skrypt jest przykładem aplikacji .NET:#!/bin/bash # Create log directory. This should correspond to the "Datadog Trace Log Directory" extension setting mkdir -p /home/LogFiles/dotnet # Download the Datadog tracer tarball wget -O /datadog/tracer/datadog-dotnet-apm-2.49.0.tar.gz https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.49.0/datadog-dotnet-apm-2.49.0.tar.gz # Navigate to the tracer directory, extract the tarball, and return to the original directory mkdir -p /datadog/tracer pushd /datadog/tracer tar -zxf datadog-dotnet-apm-2.49.0.tar.gz popd dotnet /home/site/wwwroot/<yourapp>.dllUstaw polecenie uruchamiania w usłudze App Service, aby uruchomić ten skrypt.
Uruchom aplikację i potwierdź, że dane telemetryczne są wysyłane, logując się do pulpitu nawigacyjnego usługi Datadog.
W przypadku aplikacji opartych na kontenerach:
Przed dodaniem rozszerzenia typu sidecar Datadog, skonfiguruj moduł śledzenia w pliku Dockerfile, podobnie jak w skryptach dla aplikacji opartych na kodzie.
Dodaj rozszerzenie przyczepki Phi-3/Phi-4
W portalu Azure możesz dodać do aplikacji rozszerzenie boczne Phi-3 lub Phi-4, aby zapewnić lokalny model inferencji dla obciążeń związanych z AI. Aplikacja musi znajdować się w warstwie cenowej, która obsługuje potrzeby przetwarzania danych. Dla nieobsługiwanych poziomów nie widzisz opcji rozszerzeń modułu Phi-3/Phi-4.
- Przyczepka Phi-3/Phi-4 uwidacznia interfejs API uzupełniania czatu na stronie http://localhost:11434/v1/chat/completions.
- Po dodaniu przyczepki początkowe uruchamianie może być powolne z powodu ładowania modelu.
- Aby wywołać interfejs API, wyślij żądania POST do tego punktu końcowego w tym samym stylu co API uzupełniania czatu OpenAPI.
Aby zapoznać się ze szczegółowymi procesami, zobacz:
- Samouczek: uruchamianie czatbota w usłudze App Service przy użyciu rozszerzenia bocznego Phi-4 (ASP.NET Core)
- Samouczek: uruchamianie czatbota w usłudze App Service z użyciem rozszerzenia sidecar Phi-4 (Spring Boot)
- Samouczek: uruchomienie czatbota w usłudze App Service z rozszerzeniem typu sidecar Phi-4 (FastAPI)
- Samouczek: uruchamianie czatbota w usłudze Azure App Service przy użyciu rozszerzenia typu sidecar Phi-4 (Express.js)
Dostęp do sidecara z głównego kontenera lub z innego sidecara
Kontenery sidecar dzielą ten sam host sieciowy co główny kontener. Główny kontener i inne przyczepki mogą dotrzeć do dowolnego portu na przyczepce przy użyciu polecenia localhost:<port>. Jeśli na przykład przyczepka nasłuchuje na porcie 4318, główna aplikacja może uzyskać do niej dostęp pod adresem localhost:4318.
Pole Port w portalu jest tylko metadanymi i nie jest używane przez usługę App Service do routingu.
Dodawanie punktów montowania woluminów
Domyślnie wolumin domyślny /home jest instalowany dla wszystkich kontenerów, chyba że jest wyłączony. Dodatkowe zamontowania woluminów można skonfigurować dla przyczepek.
Montowanie woluminów umożliwia udostępnianie nietrwałych plików i katalogów między kontenerami w aplikacji webowej.
- Ścieżka podrzędna woluminu: Ścieżka katalogu logicznego utworzona przez usługę App Service. Kontenery z tą samą ścieżką podrzędną współużytkują pliki.
- Ścieżka montowania kontenera: Ścieżka katalogu wewnątrz kontenera przypisana do podrzędnej ścieżki woluminu.
Przykładowa konfiguracja:
| Nazwa przyczepki | Ścieżka podrzędna woluminu | Ścieżka instalacji kontenera | Tylko do odczytu |
|---|---|---|---|
| Kontener1 | /directory1/directory2 | /container1Vol | Nieprawda |
| Kontener2 | /directory1/directory2 | /container2Vol | Prawda |
| Kontener3 | /directory1/directory2/directory3 | /container3Vol | Nieprawda |
| Kontener 4 | /directory4 | /container1Vol | Nieprawda |
- Jeśli kontener1 utworzy
/container1Vol/myfile.txt, kontener Container2 może go odczytać za pomocą polecenia/container2Vol/myfile.txt. - Jeśli Container1 utworzy
/container1Vol/directory3/myfile.txt, Container2 może go odczytać za pomocą/container2Vol/directory3/myfile.txt, a Container3 może odczytywać/zapisywać za pomocą/container3Vol/myfile.txt. - Kontener4 nie udostępnia woluminu innym osobom.
Uwaga / Notatka
W przypadku aplikacji Linux opartych na kodzie, wbudowany kontener Linux nie może używać montowania woluminów.