Självstudie: Konfigurera en sidovagnscontainer för anpassad container i Azure App Service
I den här självstudien lägger du till en OpenTelemetry-insamlare som en sidovagnscontainer i en anpassad Linux-containerapp i Azure App Service. För Bring Your Own Code Linux-appar, se Självstudie: Konfigurera en sidovagnscontainer för en Linux-app i Azure App Service.
I Azure App Service kan du lägga till upp till nio 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 sidocontainer i App Service finns i:
- Introduktion till sidovagnar för Azure App Service för Linux: Nu allmänt tillgänglig
- Meddelande om allmän tillgänglighet för utökning av sidovagn i Azure App Service
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 används i självstudien. 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 env new my-sidecar-env azd provision
Ange den prenumeration och region som du vill använda när du uppmanas att göra det. Till exempel:
- 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 med namnet my-sidecar-env_group.
- 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
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 Miljövariabler.
Lägg till en appinställning genom att välja Lägg till och konfigurera den på följande sätt:
- Namn: APPLICATIONINSIGHTS_CONNECTION_STRING
- Värde: anslutningssträng i utdata från
azd provision
. Om du förlorade Cloud Shell-sessionen kan du även hitta den på sidan Översikt för Application Insight-resursen under Anslutningssträng.
Välj Använd och sedan Tillämpa och sedan Bekräfta.
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 översiktssidan för resursgruppen och välj sedan 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
Hur hanterar sidovagnscontainrar intern kommunikation?
Sidecar-containrar delar samma nätverksvärd som huvudcontainern, så att huvudcontainern (och andra sidovagnscontainrar) kan nå valfri port på sidovagnen med localhost:<port>
. Det är precis så Nginx-containern skickar data till sidovagnen (se konfigurationen av OpenTelemetry-modulen för Nginx-exempelavbildningen).
I dialogrutan Redigera container används inte portrutan för närvarande av App Service. Du kan använda den som en del av sidovagnsmetadata, till exempel för att ange vilken port sidovagnen lyssnar på.
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