Partilhar via


Tutorial: Configurar um contentor sidecar para uma aplicação de contentor personalizada

Este tutorial mostra como adicionar um coletor OpenTelemetry como um contêiner sidecar a um aplicativo de contêiner personalizado do Linux no Serviço de Aplicativo do Azure.

Os contêineres de sidecar no App Service permitem implementar serviços e funcionalidades adicionais nas suas aplicações Linux sem uma dependência rígida ao contêiner principal interno ou personalizado. Os contêineres sidecar são executados ao lado do contêiner de aplicativo principal no mesmo plano do App Service.

Você pode adicionar até nove contêineres sidecar para cada aplicação Linux no App Service. Por exemplo, você pode adicionar serviços de monitoramento, registro, configuração e rede como contêineres de sidecar. Um sidecar coletor OpenTelemetry é um exemplo de monitoramento.

Para trazer seu próprio código de aplicativos Linux, consulte Tutorial: Configurar um contêiner sidecar para um aplicativo Linux no Serviço de Aplicativo do Azure.

Pré-requisitos

  • Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

  • Você pode executar os comandos neste tutorial usando o Azure Cloud Shell, um shell interativo que você usa por meio do navegador para trabalhar com os serviços do Azure. Para usar o Cloud Shell:

    1. Selecione o seguinte botão Iniciar o Cloud Shell ou vá para https://shell.azure.com abrir o Cloud Shell no seu navegador.

    2. Inicie sessão no Azure, se necessário, e certifique-se de que está no ambiente Bash do Cloud Shell.

    3. Selecione Copiar em qualquer bloco de código, cole o código no Cloud Shell e execute-o.

      Os azd comandos neste tutorial usam a CLI do Desenvolvedor do Azure, uma ferramenta de código aberto que acelera o provisionamento e a implantação de recursos do aplicativo no Azure.

1. Configure os recursos do tutorial

Para clonar o repositório de exemplo e criar os recursos para este tutorial, execute os seguintes comandos no Cloud Shell. Quando solicitado, selecione a assinatura do Azure e a região do Azure que você deseja usar.

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

O azd provision comando usa os modelos incluídos para criar um grupo de recursos do Azure chamado my-sidecar-env_group que contém os seguintes recursos do Azure:

Quando a implantação for concluída, você verá uma saída semelhante ao exemplo a seguir:

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

Copie e salve o valor para APPLICATIONINSIGHTS_CONNECTION_STRING usar posteriormente neste tutorial.

Selecione o link para Open resource group in the portal, para abrir o grupo de recursos provisionados no portal do Azure.

2. Crie um aplicativo habilitado para sidecar

No grupo de recursos no portal do Azure, crie um aplicativo de contêiner personalizado do Linux com suporte a sidecar e configure o contêiner principal.

  1. Na página do grupo de recursos no portal do Azure, selecione Criar.

  2. Na página Marketplace , pesquise por aplicativo Web, selecione a seta para baixo ao lado de Criar no bloco Aplicativo Web e selecione Aplicativo Web.

    Captura de ecrã a mostrar a página do Azure Marketplace com a aplicação Web a ser pesquisada e o botão criar aplicação Web realçado.

  3. Na guia Noções básicas da página Criar aplicativo Web , forneça as seguintes informações:

    • Nome: insira um nome exclusivo para o aplicativo Web.
    • Publicar: Selecione Contêiner.
    • Sistema Operacional: Selecione Linux.
    • Região: selecione a mesma região escolhida para azd provision.
    • Plano Linux: Selecione o ( Novo) plano do Serviço de Aplicativo fornecido.

    Captura de tela mostrando as configurações básicas para o aplicativo Web de contêiner personalizado do Linux.

  4. Deixe o restante das configurações como estão e selecione a guia Contêiner na parte superior da página.

  5. Na guia Contêiner , forneça as seguintes informações:

    • Suporte para sidecar: Defina como Configuração melhorada com o suporte sidecar ativado.
    • Fonte da imagem: Selecionar Registo de Contentores do Azure.
    • Nome: Certifique-se de que main aparece.
    • Registro: Selecione o registro criado por azd provision.
    • Autenticação: Selecione Identidade gerenciada.
    • Identidade: selecione a identidade gerenciada criada pela azd provision.
    • Imagem: Digite nginx.
    • Tag: Introduzir mais recente.
    • Porta: Digite 80 se ainda não estiver definido.

    Captura de tela mostrando as configurações de contêiner para o aplicativo Web de contêiner personalizado do Linux.

    Nota

    Essas configurações são configuradas de forma diferente em aplicativos habilitados para sidecar em comparação com aplicativos não habilitados. Para obter mais informações, consulte Diferenças relativas a contentores personalizados com suporte para sidecar.

  6. Selecione Rever + criar e, quando a validação for aprovada, selecione Criar.

  7. Quando a implantação for concluída, selecione Ir para o recurso.

  8. Na página do seu aplicativo, abra o URL ao lado de Domínio padrão, https://<app-name>.azurewebsites.net, em uma nova guia do navegador para ver a página nginx padrão.

3. Adicione um contêiner de sidecar ao aplicativo

Adicione um contentor sidecar à sua aplicação de contentores personalizada Linux.

  1. Na página da aplicação no portal do Azure, selecione Centro de Implementação dentro de Implementação no menu de navegação à esquerda. A página Centro de Implantação mostra todos os contêineres no aplicativo, atualmente apenas o contêiner principal.

  2. Selecione Contêineres.

  3. Selecione Adicionar>contêiner personalizado.

  4. No painel Adicionar contêiner , preencha as seguintes informações:

    • Nome: Digite otel-collector.
    • Origem da imagem: Selecione Azure Container Registry.
    • Registro: Selecione o registro criado por azd provision.
    • Autenticação: Selecione Identidade gerenciada.
    • Identidade: em Usuário atribuído, selecione a identidade gerenciada criada pela azd provision.
    • Imagem: Enter otel-collector.
    • Tag da imagem: Enter mais recente.
    • Porta: digite 4317.
  5. Selecione Aplicar.

    Captura de tela mostrando como configurar um contêiner de sidecar no centro de implantação de um aplicativo Web.

Agora há dois contêineres no centro de implantação rotulados como Main e Sidecar. Um aplicativo deve ter um contêiner principal e pode ter vários contêineres de sidecar.

4. Configurar variáveis de ambiente

No cenário de exemplo, o otel-collector sidecar está configurado para exportar os dados do OpenTelemetry para o Azure Monitor, utilizando a cadeia de conexão como uma variável de ambiente. Para obter mais informações, consulte o ficheiro de configuração OpenTelemetry para a imagem do otel-collector.

Configure a variável de ambiente para o contêiner definindo as configurações do aplicativo para o aplicativo. As configurações do aplicativo são acessíveis a todos os contêineres no aplicativo.

  1. Na página do aplicativo no portal do Azure, selecione Variáveis de ambiente em Configurações no menu de navegação esquerdo.

  2. Na guia Configurações do aplicativo da página Variáveis de ambiente , selecione Adicionar.

  3. No painel de configurações Adicionar/Editar aplicativo , insira os seguintes valores:

    • Designação: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Valor: O valor de APPLICATIONINSIGHTS_CONNECTION_STRING da saída de azd provision. Você também pode encontrar esse valor como Cadeia de Conexão na página Visão geral do recurso Application Insight do grupo de recursos.
  4. Selecione Aplicar, selecione Aplicar novamente e, em seguida, selecione Confirmar. A configuração do aplicativo APPLICATIONINSIGHTS_CONNECTION_STRING agora aparece na guia Configurações do aplicativo .

    Captura de ecrã a mostrar a página Configuração de uma aplicação Web com duas definições de aplicação adicionadas.

Nota

Algumas definições de aplicações não se aplicam a aplicações compatíveis com sidecar. Para obter mais informações, consulte Diferenças relativas a contentores personalizados com suporte para sidecar.

5. Verifique no Application Insights

O otel-collector sidecar agora deve exportar dados para o Application Insights.

  1. Acesse seu aplicativo em uma nova guia do navegador e atualize a página algumas vezes para gerar algumas solicitações da Web.

  2. Na página do grupo de recursos no portal do Azure, selecione o recurso do Application Insights . Agora você deve ver alguns dados nos gráficos padrão na página Visão geral do Application Insights.

    Captura de tela da página Application Insights mostrando dados nos gráficos padrão.

Nota

Neste cenário comum de monitorização, o Application Insights é apenas um dos pontos de destino OpenTelemetry que pode utilizar, como Jaeger, Prometheus e Zipkin.

6. Limpar os recursos

Quando não precisar mais do ambiente criado para este tutorial, você poderá excluir o grupo de recursos, que remove o serviço de aplicativo e todos os recursos relacionados. Execute o seguinte comando no repositório clonado no Cloud Shell.

azd down