Dela via


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:

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.

  1. 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
    
  2. 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/...
     
  3. Ö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:

2. Skapa en sidovagnsaktiverad app

  1. På resursgruppens hanteringssida väljer du Skapa.

  2. Sök efter webbapp och välj sedan nedåtpilen på Skapa och välj Webbapp.

    Skärmbild som visar Azure Marketplace-sidan där webbappen genomsöks och skapar knappar för webbappar som klickas.

  3. 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

    Skärmbild som visar guiden skapa webbapp och inställningar för en anpassad Linux-containerapp markerad.

  4. Välj Container. Konfigurera containerpanelenföljande sätt:

    • Sidovagnsstöd: Aktiverat
    • Bildkälla: Azure Container Registry
    • Register: Registret som skapats av azd provision
    • Bild: nginx
    • Tagg: senaste
    • Port: 80

    Skärmbild som visar guiden skapa webbapp och inställningar för containeravbildningen och sidovagnsstödet markerat.

    Kommentar

    De här inställningarna konfigureras på olika sätt i sidovagnsaktiverade appar. Mer information finns i Skillnader för sidovagnsaktiverade appar.

  5. Välj Granska + skapa och välj sedan Skapa.

  6. När distributionen är klar väljer du Gå till resurs.

  7. 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.

  1. 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.

  2. 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
  3. Välj Använd.

    Skärmbild som visar hur du konfigurerar en sidovagnscontainer i en webbapps distributionscenter.

    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.

  1. På appens hanteringssida går du till den vänstra menyn och väljer Miljövariabler.

  2. 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.
  3. Välj Använd och sedan Tillämpa och sedan Bekräfta.

    Skärmbild som visar en webbapps konfigurationssida med två appinställningar tillagda.

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.

  1. Gå tillbaka till webbläsarfliken för och uppdatera sidan några gånger för https://<app-name>.azurewebsites.netatt generera några webbbegäranden.

  2. Gå tillbaka till översiktssidan för resursgruppen och välj sedan Application Insights-resursen. Nu bör du se vissa data i standarddiagrammen.

    Skärmbild av sidan Application Insights som visar 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 och DOCKER_REGISTRY_SERVER_PASSWORD.
  • Containerport: WEBSITES_PORT

Fler resurser