Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece etapas práticas para habilitar e configurar sidecars no seu aplicativo do Serviço de Aplicativo.
Criar um sidecar no portal do Azure
- Acesse o recurso do Serviço de Aplicativo no portal do Azure.
- Selecione o Centro de Implantação e vá para a guia Contêineres .
- Clique em Adicionar contêiner para adicionar um sidecar.
- Preencha o nome da imagem, a autenticação do Registro (se necessário) e as variáveis de ambiente.
- Salve suas alterações. O sidecar será implantado junto com o contêiner do aplicativo principal.
Habilitar o suporte de sidecar para contêineres personalizados do Linux
Para um contêiner personalizado, você precisa habilitar explicitamente o suporte a sidecar. No portal, você pode fazer a seleção no assistente de criação do Serviço de Aplicativo. Você também pode ativá-lo para um aplicativo existente na página Contêineres do > de um aplicativo existente, conforme mostrado na seguinte captura de tela:
Com a CLI do Azure, converta seu aplicativo Web para usar a sitecontainers configuração. Por exemplo:
az webapp sitecontainers convert --mode sitecontainers --name <YourWebAppName> --resource-group <YourResourceGroup>
Isso atualiza o LinuxFxVersionsitecontainers para e habilita o suporte para o padrão sidecar.
Reverter para o modo de contêiner personalizado clássico (Docker)
Se você precisar alternar de volta da configuração habilitada para sidecar para a configuração clássica baseada no Docker, execute o seguinte comando:
az webapp sitecontainers convert \
--mode docker \
--name <app-name> \
--resource-group <resource-group>
Esse comando remove todos os contêineres sidecar e redefine seu aplicativo para usar a configuração de estilo clássico DOCKER|<image> . Para obter detalhes completos, consulte a documentação da CLI do Azure para az webapp sitecontainers convert.
Para obter mais informações, confira Quais são as diferenças dos contêineres personalizados habilitados para sidecar?
Quais são as diferenças dos contêineres personalizados habilitados para sidecar?
Aplicativos que têm a funcionalidade sidecar habilitada são configurados de forma diferente daqueles que não têm essa funcionalidade habilitada.
- Os aplicativos habilitados para sidecar são designados por
LinuxFxVersion=sitecontainerse configurados com recursossitecontainers. - Os aplicativos que não estão habilitados para sidecar configuram o nome do contêiner e o tipo diretamente com
LinuxFxVersion=DOCKER|<image-details>.
Para obter mais informações, consulte az webapp config set --linux-fx-version.
Aplicativos que não são compatíveis com sidecar configuram o contêiner principal com configurações de aplicativo, como:
DOCKER_REGISTRY_SERVER_URLDOCKER_REGISTRY_SERVER_USERNAMEDOCKER_REGISTRY_SERVER_PASSWORDWEBSITES_PORT
Essas configurações não são aplicáveis a aplicativos habilitados para sidecar.
Definir um sidecar com um modelo do ARM
Adicione o Microsoft.Web/sites/sitecontainers tipo de recurso a um aplicativo. Para efetuar pull de uma imagem sidecar do ACR usando uma identidade gerenciada atribuída pelo usuário, especifique authType como UserAssigned forneça e o forneça o userManagedIdentityClientId:
{
"type": "Microsoft.Web/sites/sitecontainers",
"apiVersion": "2024-04-01",
"name": "<app-name>/<sidecar-name>",
"properties": {
"image": "<acr-name>.azurecr.io/<image-name>:<version>",
"isMain": false,
"authType": "UserAssigned",
"userManagedIdentityClientId": "<client-id>",
"environmentVariables": [
{ "name": "MY_ENV_VAR", "value": "my-value" }
]
}
}
Importante
Somente o contêiner principal ("isMain": true) recebe tráfego externo. Em um aplicativo de contêiner personalizado do Linux com suporte a sidecar habilitado, seu contêiner principal tem isMain definido como true. Todos os contêineres de sidecar devem ter "isMain": false.
Para obter mais informações, consulte Microsoft.Web sites/sitecontainers.
Como criar sidecars com a CLI do Azure
Crie um aplicativo habilitado para sidecar com az webapp create. Por exemplo:
az webapp create --name <app-name> --resource-group <group-name> --sitecontainers-app
Crie um contêiner de sidecar com az webapp sitecontainers create. Por exemplo:
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --container-name <container> --image <image> --target-port <port>
Crie um contêiner de sidecar com um arquivo JSON:
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --sitecontainers-spec-file <file-path>
Para todos os comandos de sidecar, consulte az webapp sitecontainers.
Definir variáveis de ambiente
Em um aplicativo Linux, todos os contêineres (main e sidecars) compartilham variáveis de ambiente. Para substituir uma variável específica para um sidecar, adicione-a na configuração do sidecar.
- Em modelos do ARM, use a matriz
environmentVariablesnas propriedades do sidecar. - No Portal, adicione variáveis de ambiente na interface do usuário de configuração do contêiner.
- As variáveis de ambiente podem fazer referência às configurações do aplicativo por nome; o valor será resolvido em runtime.
Adicionar a extensão de sidecar do Redis
No portal do Azure, você pode adicionar uma extensão de sidecar do Redis ao seu aplicativo para cache. O sidecar do Redis é apenas para cache leve, não um substituto para o Cache do Azure para Redis.
Para usar o sidecar Redis:
- No código do aplicativo, defina a cadeia de conexão redis como
localhost:6379. - Configure o Redis no código de inicialização do aplicativo.
- Use padrões de cache para armazenar e recuperar dados.
- Teste acessando seu aplicativo e verificando logs para confirmar o uso do cache.
Adicionar a extensão de sidecar do Datadog
No portal do Azure, você pode adicionar uma extensão de sidecar do Datadog para coletar logs, métricas e rastreamentos para observabilidade sem modificar o código do aplicativo. Ao adicionar a extensão, especifique suas informações de conta do Datadog para que a extensão sidecar possa enviar telemetria diretamente ao Datadog.
Para aplicativos baseados em código:
Crie um
startup.shscript para baixar e inicializar o rastreador Datadog. O script a seguir é um exemplo para um aplicativo .NET:#!/bin/bash # Create log directory. This should correspond to the "Datadog Trace Log Directory" extension setting mkdir -p /home/LogFiles/dotnet # Download the Datadog tracer tarball wget -O /datadog/tracer/datadog-dotnet-apm-2.49.0.tar.gz https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.49.0/datadog-dotnet-apm-2.49.0.tar.gz # Navigate to the tracer directory, extract the tarball, and return to the original directory mkdir -p /datadog/tracer pushd /datadog/tracer tar -zxf datadog-dotnet-apm-2.49.0.tar.gz popd dotnet /home/site/wwwroot/<yourapp>.dllDefina o comando de inicialização no Serviço de Aplicativo para executar esse script.
Execute o aplicativo e confirme se a telemetria é enviada entrando no painel do Datadog.
Para aplicativos baseados em contêiner:
Antes de adicionar a extensão de sidecar do Datadog, adicione a configuração do rastreador Datadog em seu Dockerfile, semelhante ao exemplo de script para aplicativos baseados em código.
Adicionar a extensão de sidecar Phi-3/Phi-4
No portal do Azure, você pode adicionar uma extensão de sidecar Phi-3 ou Phi-4 ao seu aplicativo para fornecer um modelo de inferência local para cargas de trabalho de IA. Seu aplicativo deve estar em uma faixa de preço que dê suporte às necessidades de inferência. Para camadas sem suporte, você não vê as opções para as extensões de sidecar Phi-3/Phi-4.
- O sidecar Phi-3/Phi-4 expõe uma API de conclusão de chat em http://localhost:11434/v1/chat/completions.
- Depois que o sidecar é adicionado, a inicialização inicial pode ser lenta devido ao carregamento do modelo.
- Para chamar a API, envie solicitações POST para este endpoint, no mesmo estilo da API de conclusão de chat do OpenAPI.
Para obter instruções passo a passo de ponta a ponta, confira:
- Tutorial: Executar o chatbot no Serviço de Aplicativo com uma extensão de sidecar Phi-4 (ASP.NET Core)
- Tutorial: Executar o chatbot no Serviço de Aplicativo com uma extensão de sidecar Phi-4 (Spring Boot)
- Tutorial: Executar o chatbot no Serviço de Aplicativo com uma extensão de sidecar Phi-4 (FastAPI)
- Tutorial: Executar o chatbot no Serviço de Aplicativo com uma extensão de sidecar do Phi-4 (Express.js)
Acessar um sidecar do contêiner principal ou de outro sidecar
Contêineres acessórios compartilham o mesmo anfitrião de rede que o contêiner principal. O contêiner principal e outros sidecars podem alcançar qualquer porta em um sidecar usando localhost:<port>. Por exemplo, se um sidecar escutar na porta 4318, o aplicativo principal poderá acessá-lo em localhost:4318.
O campo Porta no Portal é somente metadados e não é usado pelo Serviço de Aplicativo para roteamento.
Adicionar montagens de volume
Por padrão, o volume padrão /home é montado em todos os contêineres, a menos que desabilitado. Você pode configurar montagens de volume adicionais para seus sidecars.
As montagens de volume permitem que você compartilhe arquivos e diretórios não persistentes entre contêineres em seu Aplicativo Web.
- Sub-caminho de volume: caminho de diretório lógico criado pelo Serviço de Aplicativo. Contêineres com o mesmo sub-caminho compartilham arquivos.
- Caminho de montagem do contêiner: caminho de diretório dentro do contêiner mapeado para o sub caminho do volume.
Exemplo de configuração:
| Nome do sidecar | Subcaminho do volume | Caminho de montagem do contêiner | Somente leitura |
|---|---|---|---|
| Contêiner1 | /directory1/directory2 | /container1Vol | Falso |
| Contêiner2 | /directory1/directory2 | /container2Vol | Verdade |
| Contêiner3 | /diretório1/diretório2/diretório3 | /container3Vol | Falso |
| Contêiner4 | /directory4 | /container1Vol | Falso |
- Se Container1 criar
/container1Vol/myfile.txt, Container2 poderá lê-lo por meio de/container2Vol/myfile.txt. - Se Container1 criar
/container1Vol/directory3/myfile.txt, Container2 poderá lê-lo por meio/container2Vol/directory3/myfile.txte Container3 poderá ler/gravar via/container3Vol/myfile.txt. - O Container4 não compartilha um volume com as outras pessoas.
Observação
Para aplicativos do Linux baseados em código, o contêiner interno do Linux não pode usar montagens de volume.