Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här självstudien visar hur du lägger till en OpenTelemetry-insamlare som en sidovagnscontainer i en anpassad Linux-containerapp i Azure App Service.
Med sidovagnscontainrar i App Service kan du distribuera extra tjänster och funktioner till dina Linux-appar utan att nära koppla dem till den inbyggda eller anpassade huvudcontainern. Sidovagnscontainrarna körs tillsammans med huvudprogramcontainern i samma App Service-plan.
Du kan lägga till upp till nio sidovagnscontainrar för varje Linux-app i App Service. Du kan till exempel lägga till övervaknings-, loggnings-, konfigurations- och nätverkstjänster som sidovagnscontainrar. En OpenTelemetry-insamlares sidovagn är ett exempel på övervakning.
För Bring Your Own Code Linux-appar, se Självstudie: Konfigurera en sidovagnscontainer för en Linux-app i Azure App Service.
Förutsättningar
-
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Du kan köra kommandona i den här självstudien med hjälp av Azure Cloud Shell, ett interaktivt gränssnitt som du använder via webbläsaren för att arbeta med Azure-tjänster. Så här använder du Cloud Shell:
Välj Starta Cloud Shell-knappen eller gå till https://shell.azure.com för att öppna Cloud Shell i webbläsaren.
Logga in på Azure om det behövs och se till att du är i Bash-miljön i Cloud Shell.
Välj Kopiera i valfritt kodblock, klistra in koden i Cloud Shell och kör den.
Kommandona
azd
i den här självstudien använder Azure Developer CLI, ett verktyg med öppen källkod som påskyndar etablering och distribution av appresurser i Azure.
1. Konfigurera självstudieresurserna
Om du vill klona exempellagringsplatsen och skapa resurserna för den här självstudien kör du följande kommandon i Cloud Shell. När du uppmanas till det väljer du den Azure-prenumeration och Azure-region som du vill använda.
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
Kommandot azd provision
använder de inkluderade mallarna för att skapa en Azure-resursgrupp med namnet my-sidecar-env_group
som innehåller följande Azure-resurser:
- Ett containerregister med två lagringsplatser som har följande avbildningar:
- En
nginx
bild som har modulen OpenTelemetry. - En
otel-collector
OpenTelemetry-insamlaravbildning som konfigurerats för export till Azure Monitor.
- En
- En Log Analytics-arbetsyta.
- En Application Insights-komponent .
- En användartilldelad hanterad identitet med namnet
id-my-sidecar-env_group
.
När distributionen är klar bör du se utdata som liknar följande exempel:
Success!
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=aaaaaaaa-0b0b-1c1c-2d2d-333333333333;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=00001111-aaaa-2222-bbbb-3333cccc4444
Azure container registry name = acro2lc774l6vjgg
Managed identity resource ID = /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id-my-sidecar-env_group
Managed identity client ID = 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group
Kopiera och spara värdet för APPLICATIONINSIGHTS_CONNECTION_STRING
för att använda senare i den här handledningen.
Välj länken för Open resource group in the portal
att öppna den tillhandahållna resursgruppen i Azure-portalen.
2. Skapa en sidovagnsaktiverad app
I resursgruppen i Azure-portalen skapar du en anpassad Linux-containerapp med sidovagnsstöd och konfigurerar huvudcontainern.
På resursgruppens sida i Azure-portalen väljer du Skapa.
På sidan Marketplace söker du efter webbappen, väljer nedåtpilen bredvid Skapa på webbappspanelen och väljer Webbapp.
På fliken Grundinställningar på sidan Skapa webbapp anger du följande information:
- Namn: Ange ett unikt namn för webbappen.
- Publicera: Välj Container.
- Operativsystem: Välj Linux.
-
Region: Välj samma region som du valde för
azd provision
. - Linux-plan: Välj den angivna (nya) App Service-planen.
Låt resten av inställningarna vara som de är och välj fliken Container överst på sidan.
Ange följande information på fliken Container :
- Sidovagnsstöd: Ställ in på Förbättrad konfiguration med sidovagnsstöd på.
- Image Source: Välj Azure Container Registry.
- Namn: Kontrollera att main visas.
-
Register: Välj det register som skapats av
azd provision
. - Autentisering: Välj Hanterad identitet.
-
Identitet: Välj den hanterade identitet som skapats av
azd provision
. - Bild: Ange nginx.
- Tagg: Ange senaste.
- Port: Ange 80 om det inte redan har angetts.
Kommentar
De här inställningarna konfigureras på olika sätt i sidovagnsaktiverade appar än i appar som inte är aktiverade för sidovagn. För mer information, se Vad är skillnaderna för anpassade containrar aktiverade med sidovagn.
Välj Granska + skapaoch välj Skapanär verifieringen godkänns.
När distributionen är klar väljer du Gå till resurs.
På appens sida öppnar du URL:en bredvid Standarddomän,
https://<app-name>.azurewebsites.net
, på en ny webbläsarflik för att se standardsidan för nginx.
3. Lägg till en sidovagnscontainer i appen
Lägg till en sidovagnscontainer i din anpassade Linux-containerapp.
På appens sida i Azure-portalen väljer du Distributionscenter under Distribution i den vänstra navigeringsmenyn. Sidan Distributionscenter visar alla containrar i appen, för närvarande endast huvudcontainern.
Välj Lägg till>anpassad container.
I fönstret Lägg till container fyller du i följande information:
- Namn: Ange otel-collector.
- Bildkälla: Välj Azure Container Registry.
-
Register: Välj det register som skapats av
azd provision
. - Autentisering: Välj Hanterad identitet.
-
Identitet: Under Användartilldelad väljer du den hanterade identitet som skapats av
azd provision
. - Bild: Ange otel-collector.
- Bildtagg: Ange senaste.
- Port: Ange 4317.
Välj Använd.
Det finns nu två containrar i distributionscentret med etiketten Main och Sidecar. En app måste ha en huvudcontainer och kan ha flera sidovagnscontainrar.
4. Konfigurera miljövariabler
I exempelscenariot är sidovagnen otel-collector
konfigurerad för att exportera OpenTelemetry-data till Azure Monitor med hjälp av anslutningssträngen som en miljövariabel. Mer information finns i OpenTelemetry-konfigurationsfilen för otel-collector-avbildningen.
Konfigurera miljövariabeln för containern genom att konfigurera appinställningar för appen. Appinställningar är tillgängliga för alla containrar i appen.
På appens sida i Azure-portalen väljer du Miljövariabler under Inställningar i den vänstra navigeringsmenyn.
På fliken Appinställningar på sidan Miljövariabler väljer du Lägg till.
I fönstret Lägg till/redigera programinställning anger du följande värden:
- Namn: APPLICATIONINSIGHTS_CONNECTION_STRING
-
Värde: Värdet av
APPLICATIONINSIGHTS_CONNECTION_STRING
från utdatat avazd provision
. Du kan också hitta det här värdet som anslutningssträng på sidan Översikt för resursgruppens Application Insight-resurs.
Välj Använd och välj sedan Använd igen och välj sedan Bekräfta. Inställningen APPLICATIONINSIGHTS_CONNECTION_STRING app visas nu på fliken Appinställningar .
Kommentar
Vissa appinställningar gäller inte för sidovagnsaktiverade appar. Mer information finns i Vad är skillnaderna för anpassade containrar med sidovagnsaktivering.
5. Verifiera i Application Insights
Sidovagnen otel-collector
bör nu exportera data till Application Insights.
Gå till din app på en ny webbläsarflik och uppdatera sidan några gånger för att generera några webbbegäranden.
På resursgruppssidan i Azure-portalen väljer du Application Insights-resursen . Nu bör du se vissa data i standarddiagrammen på sidan Översikt över Application Insights.
Kommentar
I det här vanliga övervakningsscenariot är Application Insights bara ett av de OpenTelemetry-mål som du kan använda, till exempel Jaeger, Prometheus och Zipkin.
6. Rensa resurser
När du inte längre behöver den miljö som du skapade för den här självstudien kan du ta bort resursgruppen, som tar bort apptjänsten och alla relaterade resurser. Kör följande kommando på den klonade lagringsplatsen i Cloud Shell.
azd down
Vanliga frågor
- Vilka är skillnaderna för anpassade containrar med sidovagn?
- Hur hanterar sidovagnscontainrar intern kommunikation?
- Kan en sidovagnscontainer ta emot Internetbegäranden?
- Hur använder jag volymmonteringar?
Vilka är skillnaderna för sidovagnsaktiverade anpassade containrar?
Sidovagnsaktiverade appar konfigureras på ett annat sätt än appar som inte är sidovagnsaktiverade.
- Appar som är aktiverade med sidovagnsfunktion betecknas med
LinuxFxVersion=sitecontainers
och konfigureras medsitecontainers
resurser. - Appar som inte är sidecar-aktiverade konfigurerar container-namnet och typen direkt med
LinuxFxVersion=DOCKER|<image-details>
.
För mer information, se az webapp config set --linux-fx-version.
Appar som inte är sidovagnsaktiverade konfigurerar huvudcontainern med appinställningar som:
DOCKER_REGISTRY_SERVER_URL
DOCKER_REGISTRY_SERVER_USERNAME
DOCKER_REGISTRY_SERVER_PASSWORD
WEBSITES_PORT
De här inställningarna gäller inte för sidovagnsaktiverade appar.
Hur hanterar sidovagnscontainrar intern kommunikation?
Sidovagnscontainrar delar samma nätverksvärd som huvudcontainern, så att huvudcontainern och andra sidovagnscontainrar kan nå valfri port på sidovagnen med localhost:<port>
. Exemplet startup.sh använder localhost:4318
för att komma åt port 4318 på sidovagnen otel-collector.
I dialogrutan Redigera container används inte portinställningen 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å.
Kan en sidovagnscontainer ta emot Internetbegäranden?
Nej. App Service dirigerar endast internetbegäranden till huvudcontainern. För kodbaserade Linux-appar är den inbyggda Linux-containern huvudcontainern och alla sidovagnar sitecontainers
bör läggas till med IsMain=false
.
För anpassade containrar ska alla utom en av dem sitecontainers
ha IsMain=false
. Mer information om hur du konfigurerar IsMain
finns i Microsoft.Web sites/sitecontainers.
Hur använder jag volymmonteringar?
Med funktionen för volymmontering kan du dela icke-beständiga filer och kataloger mellan containrar i webbappen. Om du vill lägga till eller konfigurera volymmonteringar använder du Volymmonteringar på sidan Lägg till container eller Redigera container .
- Volymundersökväg är en automatiskt skapad logisk katalogsökväg som inte refereras i containern. Containrar som har konfigurerats med samma volymundersökväg kan dela filer och kataloger.
- Monteringssökväg för container är en katalogsökväg som du refererar till i containern. Containerns monteringssökväg mappas till volymens underordnade sökväg.
Tänk dig till exempel att du konfigurerar följande volymmonteringar:
Sidovagnsnamn | Volymundersökväg | Monteringsväg för container | Endast läsbar |
---|---|---|---|
Container1 | /directory1/directory2 | /container1Vol | Falsk |
Container2 | /directory1/directory2 | /container2Vol | Sann |
Container3 | /directory1/directory2/directory3 | /container3Vol | Falsk |
Container4 | /directory4 | /container1Vol | Falsk |
Baserat på de här inställningarna gäller följande villkor:
- Om Container1 skapar /container1Vol/myfile.txtkan Container2 läsa filen via /container2Vol/myfile.txt.
- Om Container1 skapar /container1Vol/directory3/myfile.txtkan Container2 läsa filen via /container2Vol/directory3/myfile.txtoch Container3 kan läsa och skriva till filen via /container3Vol/myfile.txt.
- Container4 har inte någon gemensam volymmontering med de andra containrarna.
Kommentar
För kodbaserade Linux-appar kan den inbyggda Linux-containern inte använda volymmonteringar.