Självstudie: Konfigurera en sidovagnscontainer för anpassad container i Azure App Service (förhandsversion)
I den här självstudien lägger du till OpenTelemetry-insamlare som en sidovagnscontainer i en anpassad Linux-containerapp i Azure App Service.
I Azure App Service kan du lägga till upp till 4 sidovagnscontainrar för varje sidovagnsaktiverad anpassad containerapp. Med sidovagnscontainrar kan du distribuera extra tjänster och funktioner till ditt containerprogram utan att göra dem nära kopplade till huvudprogramcontainern. Du kan till exempel lägga till övervaknings-, loggnings-, konfigurations- och nätverkstjänster som sidovagnscontainrar. En OpenTelemetry-insamlares sidovagn är ett sådant övervakningsexempel.
Mer information om sidovagn finns i Sidovagnsmönster.
Kommentar
Under förhandsgranskningsperioden måste sidovagnsstöd aktiveras när appen skapas. Det finns för närvarande inget sätt att aktivera sidovagnsstöd för en befintlig app.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
1. Konfigurera nödvändiga resurser
Först skapar du de resurser som självstudien använder (mer information finns i Översikt över Cloud Shell). De används för det här scenariot och krävs inte för sidovagnscontainrar i allmänhet.
Kör följande kommandon i Azure Cloud Shell:
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd provision
När du uppmanas till det anger du det miljönamn, den prenumeration och region som du vill använda. Till exempel:
- Miljönamn: my-sidecar-env
- Prenumeration: din prenumeration
- Region: (Europa) Europa, västra
När distributionen är klar bör du se följande utdata:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
Öppna resursgruppslänken på en webbläsarflik. Du måste använda anslutningssträng senare.
Kommentar
azd provision
använder de inkluderade mallarna för att skapa följande Azure-resurser:- En resursgrupp
- Ett containerregister med två avbildningar distribuerade:
- En Nginx-avbildning med Modulen OpenTelemetry.
- En OpenTelemetry-insamlaravbildning, konfigurerad för export till Azure Monitor.
- En log analytics-arbetsyta
- En Application Insights-komponent
2. Skapa en sidovagnsaktiverad app
På resursgruppens hanteringssida väljer du Skapa.
Sök efter webbapp och välj sedan nedåtpilen på Skapa och välj Webbapp.
Konfigurera panelen Grundläggande enligt följande:
- Namn: Ett unikt namn
- Publicera: Container
- Operativsystem: Linux
- Region: Samma region som den du valde med
azd provision
- Linux-plan: En ny App Service-plan
Välj Container. Konfigurera containerpanelen på följande sätt:
- Sidovagnsstöd: Aktiverat
- Bildkälla: Azure Container Registry
- Register: Registret som skapats av
azd provision
- Bild: nginx
- Tagg: senaste
- Port: 80
Kommentar
De här inställningarna konfigureras på olika sätt i sidovagnsaktiverade appar. Mer information finns i Skillnader för sidovagnsaktiverade appar.
Välj Granska + skapa och välj sedan Skapa.
När distributionen är klar väljer du Gå till resurs.
I en ny webbläsarflik navigerar du till
https://<app-name>.azurewebsites.net
och ser standardsidan för Nginx.
3. Lägg till en sidovagnscontainer
I det här avsnittet lägger du till en sidovagnscontainer i din anpassade containerapp.
På appens hanteringssida går du till den vänstra menyn och väljer Distributionscenter.
Distributionscentret visar alla containrar i appen. Just nu har den bara huvudcontainern.
Välj Lägg till och konfigurera den nya containern på följande sätt:
- Namn: otel-collector
- Avbildningskälla: Azure Container Registry
- Register: Registret som skapats av
azd provision
- Bild: otel-collector
- Tagg: senaste
- Port: 4317
Port 4317 är standardporten som används av exempelcontainern för att ta emot OpenTelemetry-data. Den är tillgänglig från alla andra containrar i appen på
localhost:4317
. Det är precis så Nginx-containern skickar data till sidovagnen (se konfigurationen av OpenTelemetry-modulen för Nginx-exempelavbildningen).Välj Använd.
Nu bör du se två containrar i distributionscentret. Huvudcontainern är markerad som Main och sidovagnscontainern är markerad som Sidovagn. Varje app måste ha en huvudcontainer men kan ha flera sidovagnscontainrar.
4. Konfigurera miljövariabler
I exempelscenariot är sidovagnen otel-collector konfigurerad för att exportera OpenTelemetry-data till Azure Monitor, men den behöver anslutningssträng som en miljövariabel (se OpenTelemetry-konfigurationsfilen för avbildningen otel-collector).
Du konfigurerar miljövariabler för containrar som alla App Service-appar genom att konfigurera appinställningar. Appinställningarna är tillgängliga för alla containrar i appen.
På appens hanteringssida går du till den vänstra menyn och väljer Konfiguration.
Lägg till en appinställning genom att välja Ny programinställning och konfigurera den på följande sätt:
- Namn: APPLICATIONINSIGHTS_CONNECTION_STRING
- Värde: anslutningssträng i utdata för
azd provision
Välj Spara och välj sedan Fortsätt.
Kommentar
Vissa appinställningar gäller inte för sidovagnsaktiverade appar. Mer information finns i Skillnader för sidovagnsaktiverade appar
5. Verifiera i Application Insights
Sidovagnen otel-collector bör exportera data till Application Insights nu.
Gå tillbaka till webbläsarfliken för och uppdatera sidan några gånger för
https://<app-name>.azurewebsites.net
att generera några webbbegäranden.Gå tillbaka till resursgruppens översiktssida väljer du Application Insights-resursen. Nu bör du se vissa data i standarddiagrammen.
Kommentar
I det här mycket vanliga övervakningsscenariot är Application Insights bara ett av de OpenTelemetry-mål som du kan använda, till exempel Jaeger, Prometheus och Zipkin.
Rensa resurser
När du inte längre behöver miljön kan du ta bort resursgruppen, App Service och alla relaterade resurser. Kör bara det här kommandot i Cloud Shell på den klonade lagringsplatsen:
azd down
Skillnader för sidovagnsaktiverade appar
Du konfigurerar sidovagnsaktiverade appar på ett annat sätt än appar som inte är sidovagnsaktiverade. Mer specifikt konfigurerar du inte huvudcontainern och sidovagnen med appinställningar, utan direkt i resursegenskaperna. De här appinställningarna gäller inte för sidovagnsaktiverade appar:
- Registerautentiseringsinställningar:
DOCKER_REGISTRY_SERVER_URL
,DOCKER_REGISTRY_SERVER_USERNAME
ochDOCKER_REGISTRY_SERVER_PASSWORD
. - Containerport:
WEBSITES_PORT