Zelfstudie: Een sidecarcontainer configureren voor aangepaste container in Azure-app Service (preview)

In deze zelfstudie voegt u OpenTelemetry-collector toe als sidecarcontainer aan een aangepaste Linux-container-app in Azure-app Service.

In Azure-app Service kunt u maximaal 4 sidecarcontainers toevoegen voor elke aangepaste container-app waarvoor sidecar is ingeschakeld. Met Sidecar-containers kunt u extra services en functies implementeren in uw containertoepassing zonder deze nauw te koppelen aan uw hoofdtoepassingscontainer. U kunt bijvoorbeeld bewakings-, logboekregistratie-, configuratie- en netwerkservices toevoegen als sidecarcontainers. Een Sidecar van de OpenTelemetry-collector is een dergelijk bewakingsvoorbeeld.

Zie Sidecar-patroon voor meer informatie over sidecars.

Notitie

Voor de preview-periode moet sidecar-ondersteuning zijn ingeschakeld bij het maken van apps. Er is momenteel geen manier om sidecar-ondersteuning in te schakelen voor een bestaande app.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

1. De benodigde resources instellen

Eerst maakt u de resources die in de zelfstudie worden gebruikt (zie Cloud Shell-overzicht voor meer informatie). Ze worden gebruikt voor dit specifieke scenario en zijn niet vereist voor sidecarcontainers in het algemeen.

  1. Voer in Azure Cloud Shell de volgende opdrachten uit:

    git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs
    cd app-service-sidecar-tutorial-prereqs
    azd provision
    
  2. Geef de gewenste omgevingsnaam, het abonnement en de gewenste regio op wanneer u hierom wordt gevraagd. Voorbeeld:

    • Omgevingsnaam: my-sidecar-env
    • Abonnement: uw abonnement
    • Regio: (Europa) Europa - west

    Wanneer de implementatie is voltooid, ziet u de volgende uitvoer:

     APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=...
    
     Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
     
  3. Open de koppeling naar de resourcegroep in een browsertabblad. U moet de verbindingsreeks later gebruiken.

    Notitie

    azd provision maakt gebruik van de opgenomen sjablonen om de volgende Azure-resources te maken:

2. Een sidecar-app maken

  1. Selecteer Maken op de beheerpagina van de resourcegroep.

  2. Zoek naar een web-app en selecteer vervolgens de pijl-omlaag in Maken en selecteer Web-app.

    Schermopname van de Azure Marketplace-pagina met de web-app waarop wordt gezocht en waarop de knoppen voor web-apps worden geklikt.

  3. Configureer het deelvenster Basics als volgt:

    • Naam: Een unieke naam
    • Publiceren: Container
    • Besturingssysteem: Linux
    • Regio: Dezelfde regio als de regio waarmee u hebt gekozen azd provision
    • Linux-plan: een nieuw App Service-plan

    Schermopname van de wizard Web-app maken en instellingen voor een aangepaste Linux-container-app gemarkeerd.

  4. Selecteer Container. Configureer het containerpaneel als volgt:

    • Sidecar-ondersteuning: ingeschakeld
    • Bron van installatiekopieën: Azure Container Registry
    • Register: het register dat is gemaakt door azd provision
    • Afbeelding: nginx
    • Tag: meest recente
    • Poort: 80

    Schermopname van de wizard Web-app maken en instellingen voor de containerinstallatiekopieën en de sidecar-ondersteuning gemarkeerd.

    Notitie

    Deze instellingen worden anders geconfigureerd in sidecar-apps. Zie Verschillen voor sidecar-apps voor meer informatie.

  5. Selecteer Controleren en maken en selecteer vervolgens Maken.

  6. Zodra de implementatie is voltooid, selecteert u Ga naar de resource.

  7. Navigeer in een nieuw browsertabblad naar https://<app-name>.azurewebsites.net de standaard-Nginx-pagina en zie deze.

3. Een sidecarcontainer toevoegen

In deze sectie voegt u een sidecar-container toe aan uw aangepaste container-app.

  1. Selecteer Deployment Center in het linkermenu op de beheerpagina van de app.

    In het implementatiecentrum ziet u alle containers in de app. Op dit moment heeft het alleen de hoofdcontainer.

  2. Selecteer De nieuwe container als volgt toevoegen en configureren:

    • Naam: otel-collector
    • Bron van installatiekopieën: Azure Container Registry
    • Register: het register dat is gemaakt door azd provision
    • Afbeelding: otel-collector
    • Tag: meest recente
    • Poort: 4317

    Poort 4317 is de standaardpoort die door de voorbeeldcontainer wordt gebruikt om OpenTelemetry-gegevens te ontvangen. Het is toegankelijk vanuit elke andere container in de app op localhost:4317. Dit is precies hoe de Nginx-container gegevens naar de sidecar verzendt (zie de configuratie van de OpenTelemetry-module voor de voorbeeld-Nginx-installatiekopieën).

  3. Selecteer Toepassen.

    Schermopname die laat zien hoe u een sidecarcontainer configureert in het implementatiecentrum van een web-app.

    U ziet nu twee containers in het implementatiecentrum. De hoofdcontainer is gemarkeerd als Main en de sidecar-container is gemarkeerd als Sidecar. Elke app moet één hoofdcontainer hebben, maar kan meerdere sidecarcontainers hebben.

4. Omgevingsvariabelen configureren

Voor het voorbeeldscenario is de sidecar van de otel-collector geconfigureerd voor het exporteren van de OpenTelemetry-gegevens naar Azure Monitor, maar het heeft de verbindingsreeks nodig als een omgevingsvariabele (zie het OpenTelemetry-configuratiebestand voor de installatiekopie van metry).

U configureert omgevingsvariabelen voor de containers zoals elke App Service-app door app-instellingen te configureren. De app-instellingen zijn toegankelijk voor alle containers in de app.

  1. Selecteer Configuratie in het linkermenu op de beheerpagina van de app.

  2. Voeg een app-instelling toe door nieuwe toepassingsinstelling te selecteren en deze als volgt te configureren:

    • Naam: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Waarde: de verbindingsreeks in de uitvoer vanazd provision
  3. Selecteer Opslaan en selecteer Vervolgens Doorgaan.

    Schermopname van de configuratiepagina van een web-app met twee app-instellingen toegevoegd.

Notitie

Bepaalde app-instellingen zijn niet van toepassing op sidecar-apps. Zie Verschillen voor sidecar-apps voor meer informatie

5. Controleren in Application Insights

De sidecar van de otel-collector moet nu gegevens exporteren naar Application Insights.

  1. Vernieuw de pagina een paar keer op het browsertabblad om https://<app-name>.azurewebsites.netenkele webaanvragen te genereren.

  2. Ga terug naar de overzichtspagina van de resourcegroep en selecteer de Application Insights-resource. U ziet nu enkele gegevens in de standaardgrafieken.

    Schermopname van de Application Insights-pagina met gegevens in de standaardgrafieken.

Notitie

In dit veelvoorkomende bewakingsscenario is Application Insights slechts een van de OpenTelemetry-doelen die u kunt gebruiken, zoals Jaeger, Prometheus en Zipkin.

Resources opschonen

Wanneer u de omgeving niet meer nodig hebt, kunt u de resourcegroep, App Service en alle gerelateerde resources verwijderen. Voer deze opdracht uit in de Cloud Shell, in de gekloonde opslagplaats:

azd down

Verschillen voor sidecar-apps

U configureert sidecar-apps anders dan apps die niet sidecar zijn ingeschakeld. Met name configureert u de hoofdcontainer en sidecars niet met app-instellingen, maar rechtstreeks in de resource-eigenschappen. Deze app-instellingen zijn niet van toepassing op sidecar-apps:

  • Registerverificatie-instellingen: DOCKER_REGISTRY_SERVER_URLen DOCKER_REGISTRY_SERVER_PASSWORDDOCKER_REGISTRY_SERVER_USERNAME .
  • Containerpoort: WEBSITES_PORT

Meer resources