Condividi tramite


Esercitazione: Configurare un contenitore sidecar per un'app contenitore personalizzata

Questa esercitazione illustra come aggiungere un agente di raccolta OpenTelemetry come contenitore sidecar a un'app contenitore personalizzata Linux nel servizio app di Azure.

I contenitori sidecar nel servizio app consentono di distribuire servizi e funzionalità aggiuntivi nelle app Linux senza accoppiarli strettamente al contenitore principale predefinito o personalizzato. I contenitori sidecar vengono eseguiti insieme al contenitore principale dell'applicazione nello stesso piano di servizio app.

È possibile aggiungere fino a nove contenitori sidecar per ogni app Linux nel servizio app. Ad esempio, è possibile aggiungere servizi di monitoraggio, registrazione, configurazione e rete come contenitori sidecar. Un sidecar dell'agente di raccolta OpenTelemetry è un esempio per il monitoraggio.

Per le app Linux bring your owncode, vedere Esercitazione: Configurare un contenitore sidecar per un'app Linux nel servizioa app di Azure.

Prerequisiti

  • Se non si ha un account Azure, creare un account gratuito prima di iniziare.

  • È possibile eseguire i comandi di questa esercitazione usando Azure Cloud Shell, una shell interattiva usata tramite il browser per usare i servizi di Azure. Per usare Cloud Shell:

    1. Selezionare il pulsante Launch Cloud Shell (Avvia Cloud Shell ) o passare a https://shell.azure.com per aprire Cloud Shell nel browser.

    2. Accedere ad Azure, se necessario, e assicurarsi di essere nell'ambiente Bash di Cloud Shell.

    3. Selezionare Copia in qualsiasi blocco di codice, incollare il codice in Cloud Shell ed eseguirlo.

      I comandi azd di questa esercitazione usano l'interfaccia della riga di comando per sviluppatori di Azure, uno strumento open source che accelera il provisioning e la distribuzione delle risorse dell'app in Azure.

1. Configurare le risorse del tutorial

Per clonare il repository di esempio e creare le risorse per questa esercitazione, eseguire i comandi seguenti in Cloud Shell. Quando richiesto, selezionare la sottoscrizione di Azure e l'area di Azure da usare.

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

Il azd provision comando usa i modelli inclusi per creare un gruppo di risorse di Azure denominato my-sidecar-env_group che contiene le risorse di Azure seguenti:

  • Registro di container con due repository che contengono le seguenti immagini:
    • Immagine nginx con il modulo OpenTelemetry.
    • Immagine dell'agente di raccolta OpenTelemetry otel-collector configurata per l'esportazione in Monitoraggio di Azure.
  • Un'area di lavoro Log Analytics.
  • Un componente di Application Insights.
  • Identità gestita assegnata dall'utente denominataid-my-sidecar-env_group.

Al termine della distribuzione, verrà visualizzato un output simile all'esempio seguente:

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

Copiare e salvare il valore per APPLICATIONINSIGHTS_CONNECTION_STRING da usare più avanti in questa esercitazione.

Selezionare il collegamento per Open resource group in the portal per aprire il gruppo di risorse di cui è stato effettuato il provisioning nel portale di Azure.

2. Creare un'app abilitata per sidecar

Nel gruppo di risorse nel portale di Azure creare un'app contenitore personalizzata Linux con supporto sidecar e configurare il contenitore principale.

  1. Nella pagina del gruppo di risorse nel portale di Azure selezionare Crea.

  2. Nella pagina Marketplace cercare l'app Web, selezionare la freccia giù accanto a Crea nel riquadro App Web e selezionare App Web.

    Screenshot che mostra la pagina di Azure Marketplace con l'app Web in cui viene eseguita la ricerca e il pulsante Crea app Web evidenziato.

  3. Nella scheda Informazioni di base della pagina Crea app Web specificare le informazioni seguenti:

    • Nome: immettere un nome univoco per l'app Web.
    • Pubblica: selezionare Contenitore.
    • Sistema operativo: selezionare Linux.
    • Area: selezionare la stessa area scelta per azd provision.
    • Piano Linux: selezionare il piano di servizio app fornito (nuovo).

    Screenshot che mostra le impostazioni di base per l'app Web contenitore personalizzato Linux.

  4. Lasciare invariate le altre impostazioni e selezionare la scheda Contenitore nella parte superiore della pagina.

  5. Nella scheda Contenitore specificare le informazioni seguenti:

    • Supporto sidecar: impostare su Configurazione avanzata con supporto sidecar attivato.
    • Origine immagine: selezionare Registro Azure Container.
    • Nome: accertati che main venga visualizzato.
    • Registro di sistema: selezionare il Registro di sistema creato da azd provision.
    • Autenticazione: selezionare Identità gestita.
    • Identità: selezionare l'identità gestita creata da azd provision.
    • Immagine: inserire nginx.
    • Tag: immettere latest.
    • Porta: immettere 80 se non è già impostato.

    Screenshot che mostra le impostazioni del contenitore per l'app Web contenitore personalizzato Linux.

    Note

    Queste impostazioni sono configurate in modo diverso nelle app abilitate per sidecar rispetto alle app non abilitate per i sidecar. Per altre informazioni, vedere Quali sono le differenze per i contenitori personalizzati abilitati per sidecar.

  6. Selezionare Verifica e crea e, quando la convalida ha esito positivo, selezionare Crea.

  7. Al termine della distribuzione selezionare Vai al gruppo di risorse.

  8. Nella pagina dell'app aprire l'URL accanto a Dominio predefinito, https://<app-name>.azurewebsites.net, in una nuova scheda del browser per visualizzare la pagina nginx predefinita.

3. Aggiungere un contenitore sidecar all'app

Aggiungere un contenitore sidecar all'app contenitore personalizzata Linux.

  1. Nella pagina dell'app nel portale di Azure selezionare Centro distribuzione in Distribuzione nel menu di spostamento a sinistra. La pagina Centro distribuzione mostra tutti i contenitori nell'app, attualmente solo il contenitore principale.

  2. Selezionare Contenitori.

  3. Selezionare Aggiungi>contenitore personalizzato.

  4. Nel riquadro Aggiungi contenitore completare le informazioni seguenti:

    • Nome: immettere otel-collector.
    • Origine immagine: selezionare Registro dei container di Azure.
    • Registro di sistema: selezionare il Registro di sistema creato da azd provision.
    • Autenticazione: selezionare Identità gestita.
    • Identità: sotto Assegnazione utente, selezionare l'identità gestita creata da azd provision.
    • Immagine: immettere otel-collector.
    • Tag immagine: inserire latest.
    • Porta: immettere 4317.
  5. Selezionare Applica.

    Screenshot che mostra come configurare un contenitore sidecar nel centro distribuzione di un'app Web.

Nel centro distribuzione sono ora presenti due contenitori con etichetta Main e Sidecar. Un'applicazione deve avere un contenitore principale e può avere più contenitori di accompagnamento.

4. Configurare le variabili di ambiente

Nello scenario di esempio, il otel-collector sidecar è configurato per esportare i dati OpenTelemetry su Azure Monitor utilizzando la stringa di connessione come variabile di ambiente. Per ulteriori informazioni, vedere il file di configurazione OpenTelemetry per l'immagine otel-collector.

Configurare la variabile di ambiente per il contenitore configurando le impostazioni dell'app per l'app. Le impostazioni dell'app sono accessibili a tutti i contenitori nell'app.

  1. Nella pagina dell'app nel portale di Azure selezionare Variabili di ambiente in Impostazioni nel menu di spostamento a sinistra.

  2. Nella scheda Impostazioni app della pagina Variabili di ambiente selezionare Aggiungi.

  3. Nel riquadro Aggiungi/Modifica impostazione applicazione immettere i valori seguenti:

    • Nome: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Valore: valore di APPLICATIONINSIGHTS_CONNECTION_STRING dall'output di azd provision. È anche possibile trovare questo valore come Stringa di connessione nella pagina Panoramica della risorsa Application Insight del gruppo di risorse.
  4. Selezionare Applica, quindi fare di nuovo clic su Applica e quindi selezionare Conferma. L'impostazione dell'app APPLICATIONINSIGHTS_CONNECTION_STRING ora appare nella scheda Impostazioni app.

    Screenshot che mostra la pagina Configurazione di un'app Web con due impostazioni dell'app aggiunte.

Note

Alcune impostazioni dell'app non si applicano alle app abilitate per il sidecar. Per altre informazioni, vedere Quali sono le differenze per i contenitori personalizzati abilitati per sidecar.

5. Verificare in Application Insights

Il otel-collector sidecar dovrebbe ora esportare i dati in Application Insights.

  1. Passare all'app in una nuova scheda del browser e aggiornare la pagina alcune volte per generare alcune richieste Web.

  2. Nella pagina del gruppo di risorse nel portale di Azure selezionare la risorsa di Application Insights . Nella pagina Panoramica di Application Insights verranno visualizzati alcuni dati nei grafici predefiniti.

    Screenshot della pagina di Application Insights che mostra i dati nei grafici predefiniti.

Note

In questo scenario di monitoraggio comune, Application Insights è solo una delle destinazioni OpenTelemetry che è possibile usare, ad esempio Jaeger, Prometheus e Zipkin.

6. Pulire le risorse

Quando non è più necessario l'ambiente creato per questa esercitazione, è possibile eliminare il gruppo di risorse, che rimuove il servizio app e tutte le risorse correlate. Eseguire il comando seguente nel repository clonato in Cloud Shell.

azd down