Sessões de contêiner personalizadas do Azure Container Apps

Além do interpretador de código interno que as sessões dinâmicas dos Aplicativos de Contêiner do Azure fornecem, você também pode usar contêineres personalizados para definir suas próprias áreas restritas de sessão.

Observação

Este artigo se aplica somente a pools de sessão de contêiner personalizados. A menos que indicado de outra forma, os recursos descritos aqui não estão disponíveis para pools de sessão de interpretador de código.

Usos para sessões de contêiner personalizadas

Os contêineres personalizados permitem que você crie soluções adaptadas às suas necessidades. Elas permitem que você execute códigos ou aplicativos em ambientes rápidos e efêmeros. Eles oferecem espaços computacionais seguros e isolados com o Hyper-V. Além disso, eles podem ser configurados com isolamento de rede opcional. Alguns exemplos incluem:

  • Interpretadores de código: use se você executar código não confiável em sandboxes seguras por uma linguagem não suportada no interpretador interno, ou caso você precise de controle total sobre o ambiente do interpretador de código.

  • Execução isolada: ao executar aplicativos em cenários hostis e multilocatários em que cada locatário ou usuário tenha seu próprio ambiente sandbox. Esses ambientes são isolados uns dos outros e do aplicativo host. Alguns exemplos incluem aplicativos que executam código fornecido pelo usuário, código que concede ao usuário final acesso a um shell baseado em nuvem, agentes de IA e ambientes de desenvolvimento.

Usando sessões de contêiner personalizadas

Para usar sessões de contêiner personalizadas, crie um pool de sessão com uma imagem de contêiner personalizada. Os Aplicativos de Contêiner do Azure iniciam contêineres automaticamente em suas próprias áreas restritas do Hyper-V usando a imagem fornecida. Depois que o contêiner for iniciado, ele estará disponível para o pool de sessões.

Quando o aplicativo solicita uma sessão, uma instância é alocada instantaneamente do pool. A sessão permanece ativa até entrar em um estado ocioso, que é interrompido e destruído automaticamente.

Sondas de contêiner para pools de sessões

Use sondas de contêiner para configurar verificações de integridade para pools de sessões de contêiner personalizados e manter instâncias de sessão íntegras.

Observação

Sondas de contêineres exigem a versão da API 2025-02-02-preview ou mais recente.

As sondas de contêiner permitem definir verificações de integridade para contêineres de sessão, semelhantes às sondas de integridade nos Aplicativos de Contêiner do Azure. Quando configurado, o pool de sessões monitora cada instância de sessão e remove instâncias com problemas.

O pool de sessões:

  • Garante que as instâncias de sessão prontas estejam íntegras com base nas sondas.
  • Remove automaticamente instâncias de sessão degradadas.
  • Escala para manter a contagem de readySessionInstances configurada sessões íntegras.

Os pools de sessões aceitam os tipos de sonda Atividade e Inicialização. Para obter mais informações sobre como as sondas funcionam, consulte Sondas de integridade no Azure Container Apps.

Configuração

Ao criar ou atualizar um pool de sessões, especifique as sondas na seção properties.customContainerTemplate.containers da carga útil da sua solicitação.

Para obter a especificação completa da API, consulte a API SessionPools.

Exemplo

{
  "properties": {
    "customContainerTemplate": {
      "containers": [
        {
          "name": "my-session-container",
          "image": "myregistry.azurecr.io/my-session-image:latest",
          "probes": [
            {
              "type": "Liveness",
              "httpGet": {
                "path": "/health",
                "port": 8080
              },
              "periodSeconds": 10,
              "failureThreshold": 3
            },
            {
              "type": "Startup",
              "httpGet": {
                "path": "/ready",
                "port": 8080
              },
              "periodSeconds": 5,
              "failureThreshold": 30
            }
          ]
        }
      ]
    },
    "dynamicPoolConfiguration": {
      "readySessionInstances": 5
    }
  }
}

Solução de problemas

Se o pool de sessões não estiver mantendo o número esperado de sessões saudáveis readySessionInstances, considere as seguintes correções:

  • Verifique os logs de contêiner. Revise os logs dos contêineres de sessão para identificar problemas com pontos de verificação ou inicialização dos contêineres. Consulte Exibir logs para pools de sessões de contêineres personalizados.
  • Verifique a configuração da sonda. Verifique se os caminhos, portas e limites da sonda estão configurados corretamente para seu aplicativo.
  • Examine a integridade do contêiner. Verifique se há problemas dentro do contêiner que impedem que os endereços de sondagem respondam com êxito.

Parar uma sessão

Use a API Parar Sessão para encerrar uma sessão em um pool de sessão de contêiner personalizado.

Os pools de sessões dão suporte ao gerenciamento automático de sessão por meio de lifecycleConfiguration, que manipula o ciclo de vida da sessão com base em sua configuração. No entanto, há cenários em que você pode precisar de mais controle.

Depois de alocar uma sessão, você pode chamar essa API para encerrá-la manualmente a qualquer momento. Essa abordagem é útil quando:

  • É necessário liberar recursos antes que uma sessão atinja seu tempo de vida útil.
  • O pool de sessões atinge o limite máximo de sessões simultâneas e você precisa liberar a capacidade para novas sessões.
  • Uma sessão conclui seu trabalho e você deseja liberar recursos imediatamente.

Referência de API

Solicitação

POST {PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier={SessionIdentifier}

Parâmetros

Parâmetro Tipo Obrigatório Descrição
api-version cadeia Sim A versão da API a ser usada (por exemplo, 2025-10-02-preview).
identifier cadeia Sim O identificador exclusivo da sessão a ser interrompida.

Exemplos

Solicitação

POST https://{PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier=testSessionIdentifier

Resposta

HTTP/1.1 200 OK
Content-Type: text/plain

Session testSessionIdentifier in session pool testSessionPool stopped.

Registro

Os pools de sessão de contêiner personalizados se integram ao Azure Monitor e ao Log Analytics. Os registros de aplicativo são capturados somente se o seu contêiner gravar a saída em stdout ou stderr. Portanto, verifique se o aplicativo emite logs para o console.

Pré-requisitos

  • Um ambiente do Aplicativos de Contêiner do Azure com um pool de sessões de contêineres personalizado.
  • Um workspace do Log Analytics ou crie um durante a instalação

Configurar o registro em log

Habilitar o registro em log do Azure Monitor

  1. No portal do Azure, navegue até seu Ambiente de Aplicativos de Contêiner.
  2. Em Monitoramento, selecione Opções de Registro em Log.
  3. Defina destino de logs para Azure Monitor.

Definir as configurações de diagnóstico

  1. Em seu Ambiente de Aplicativos de Contêiner, em Monitoramento, selecione Configurações de diagnóstico.
  2. Selecione + Adicionar configuração de diagnóstico.
  3. Forneça um nome para a configuração de diagnóstico.
  4. Em Logs, selecione as categorias de log relacionadas à sessão que você deseja capturar.
  5. Em Detalhes do destino, selecione Enviar para o workspace do Log Analytics.
  6. Escolha seu workspace do Log Analytics ou crie um novo.
  7. Clique em Salvar.

Tabelas do Log Analytics

Categoria do log Tabela do Log Analytics Descrição
Logs de aplicação AppEnvSessionConsoleLogs Saída padrão (stdout) e erro padrão (stderr) emitidos pelo aplicativo containerizado.
Logs de plataforma AppEnvSessionLifecycleLogs, AppEnvSessionPoolEvents Eventos gerados pela plataforma relacionados à alocação, ciclo de vida e estado operacional do pool de sessões.

Se os logs forem enviados diretamente para o Log Analytics, as tabelas usarão o sufixo _CL, por exemplo, AppEnvSessionConsoleLogs_CL. Quando os logs são roteados através das configurações de diagnóstico do Azure Monitor, os nomes de tabela não incluem o sufixo _CL.

Exibir logs de sessão

Depois que as configurações de diagnóstico são configuradas, os logs são enviados para o workspace do Log Analytics.

Logs de consulta no Log Analytics

  1. No portal do Azure, navegue até o espaço de trabalho do Log Analytics.
  2. No menu à esquerda, selecione Logs.
  3. Se a consulta estiver no modo Simples, selecione o modo KQL.
  4. Use Kusto Query Language (KQL) para consultar logs de sessão.

Consultas de exemplo

Exibir logs recentes do console de sessões:

AppEnvSessionConsoleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
| take 100

Exibir eventos de ciclo de vida da sessão:

AppEnvSessionLifecycleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc

Exibir eventos do pool de sessões:

AppEnvSessionPoolEvents
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc

Métricas

Os Aplicativos de Contêiner do Azure emitem métricas do Azure Monitor para pools de sessões de contêineres personalizados. Use essas métricas para acompanhar a capacidade e a atividade do pool ao longo do tempo.

Métricas com suporte

Para obter a lista completa, consulte métricas com suporte – Microsoft.App/sessionpools – Azure Monitor.

Métrica Nome na API REST Unidade Agregação Dimensões Intervalos de Tempo Exportação de DS
Executando a contagem de sessões
Número de pods de sessão em execução no pool de sessões.
PoolExecutingPodCount Count Total (Soma), Média, Máximo, Mínimo poolName PT1M Sim
Criando contagem de sessões
Número de pods de sessão em criação no pool de sessões.
PoolPendingPodCount Count Total (Soma), Média, Máximo, Mínimo poolName PT1M Sim
Contagem de sessões ativas
Número de pods de sessão prontos no pool de sessões.
PoolReadyPodCount Count Total (Soma), Média, Máximo, Mínimo poolName PT1M Sim

Exibir métricas de sessão

Você pode usar as métricas de ambiente do Azure Monitor ou dos Aplicativos de Contêiner para exibir métricas baseadas em sessão.

Métricas de Azure Monitor

  1. Abra a página Métricas do Azure Monitor.
  2. Use Escopo para selecionar seu pool de sessões de contêineres personalizado.
  3. Escolha uma métrica e uma agregação para exibir.

Métricas de ambiente de Aplicativos de Contêiner

  1. No portal do Azure, abra o Ambiente de Aplicativos de Contêiner.
  2. Em Monitoramento, selecione Métricas.
  3. Use Escopo para selecionar seu pool de sessões de contêineres personalizado.
  4. Escolha uma métrica e uma agregação para exibir.