Compartilhar via


Sessões dinâmicas nos Aplicativos de Contêiner do Azure

As sessões dinâmicas dos Aplicativos de Contêiner do Azure fornecem acesso rápido a ambientes seguros em área restrita que são ideais para executar códigos ou aplicativos que exigem forte isolamento de outras cargas de trabalho.

As sessões operam dentro do contexto de um pool de sessões que mitiga a inicialização a frio para garantir a disponibilidade imediata de uma sessão.

Com as sessões, você obtém:

  • Isolamento forte: as sessões são isoladas umas das outras e do ambiente do host. Cada sessão é executada em sua própria área restrita do Hyper-V, fornecendo segurança e isolamento de nível empresarial. Opcionalmente, você pode habilitar o isolamento de rede para aprimorar ainda mais a segurança.

  • Acesso simples: as sessões são acessadas por meio de uma API REST. Um identificador exclusivo marca cada sessão. Se uma sessão com um determinado identificador não existir, uma nova sessão será alocada automaticamente.

  • Totalmente gerenciado: Container Apps gerencia totalmente o ciclo de vida de uma sessão. As sessões são limpas automaticamente quando não estão mais em uso.

  • Inicialização rápida: novas sessões são alocadas em milissegundos. As start-ups rápidas são obtidas mantendo automaticamente um pool de sessões prontas, mas não alocadas.

  • Escalonável: as sessões podem ser executadas em alta escala. Você pode executar centenas ou milhares de sessões simultaneamente.

  • Acesso à API: as sessões são expostas ao aplicativo por meio de um único ponto de extremidade HTTP.

Sessão

Uma sessão é um ambiente em área restrita que executa código não confiável ou seu aplicativo.

Cada sessão é isolada de todas as outras sessões e do ambiente do host por meio de uma área restrita do Hyper-V. A tecnologia Hyper-V está na base para o isolamento de sessão, garantindo que diferentes sessões operem independentemente com os limites de segurança necessários em vigor. Para segurança de rede aprimorada, você pode habilitar o isolamento de rede de sessão em sua sessão.

Há dois tipos diferentes de sessões.

Tipos de sessão

Os Aplicativos de Contêiner do Azure dão suporte a dois tipos de sessões:

Tipo Descrição Modelo de cobrança
Sessões de interpretador de código Interpretador de código totalmente gerenciado que permite executar código em uma área restrita pré-instalada com bibliotecas populares.

Ideal para executar código não confiável, como código fornecido por usuários do aplicativo ou código gerado por um LLM (modelo de linguagem grande).

Você pode usar a sessão pronta para utilização ou com uma estrutura de modelo de linguagem.
Por sessão (consumo)
Sessões de contêiner personalizadas A opção de traga seu próprio contêiner em que você executa suas próprias imagens de contêiner em áreas restritas seguras e isoladas.

Essa abordagem é uma boa opção se você quiser executar um interpretador de código personalizado para um idioma que não tem suporte pronto ou cargas de trabalho que exigem isolamento forte.
Plano Dedicado de Aplicativos de Contêiner

Cada sessão, independentemente do tipo, é executada no contexto de um pool de sessões.

Pools de sessão

Para fornecer tempos de alocação de sessão de sub-segundo, os Aplicativos de Contêiner do Azure mantêm um pool de sessões prontas, mas não alocadas. Quando seu aplicativo faz uma solicitação para uma sessão que não foi usada antes, o pool atribui automaticamente uma nova sessão para você. À medida que as sessões são alocadas, o pool é reabastecido automaticamente para manter um número constante de sessões prontas.

Cada pool de sessões está disponível para seu aplicativo através de um ponto de extremidade de gerenciamento de pool exclusivo.

Ciclo de vida da sessão

O runtime dos Aplicativos de Contêiner gerencia automaticamente o ciclo de vida de cada sessão em um pool. A vida útil de uma sessão começa quando a sessão começa e continua enquanto a sessão está em uso. Depois que não houver solicitações para a sessão depois que o período de resfriamento tiver decorrido, a sessão será destruída.

Os seguintes estados definem esse ciclo de vida:

  1. Pendente: quando uma sessão está sendo iniciada, ela está no estado pendente. O tempo gasto por uma sessão nesse estado depende da imagem do contêiner e das configurações especificadas para o pool de sessão. Uma sessão nesse estado não é adicionada ao pool de sessões prontas.

  2. Não alocada: depois que uma sessão é iniciada, ela é adicionada ao pool e fica disponível para alocação. Para sessões de contêiner personalizadas, você pode especificar quantas sessões prontas manter no pool. Esse número deverá ser aumentado se as sessões forem alocadas mais rapidamente do que reabastecidas.

  3. Alocado: quando você envia uma solicitação para uma sessão que não está em execução, o pool fornece uma nova sessão e a coloca em um estado alocado. As solicitações subsequentes com o mesmo identificador de sessão são roteadas para a mesma sessão, permitindo a reutilização eficiente sem inicializações lentas. Cada sessão alocada é associada a um identificador de sessão.

  4. Destruído: se uma sessão não receber solicitações por uma duração definida pela cooldownPeriodInSeconds configuração, a sessão e sua área restrita Hyper-V serão excluídas com segurança. Essa configuração de limpeza automática aprimora o gerenciamento de recursos e a segurança.

O runtime dos Aplicativos de Contêiner gerencia automaticamente o ciclo de vida de cada sessão em um pool de sessões.

Disponibilidade de região

As sessões dinâmicas estão disponíveis nas seguintes regiões:

Região Interpretador de códigos Contêiner personalizado
Leste da Austrália
Brasil Sul -
Leste do Canadá -
Leste da Ásia
Leste dos EUA
Leste dos EUA 2
França Central -
Centro-Oeste da Alemanha
Norte da Itália
Leste do Japão -
Coreia Central -
Centro-Norte dos EUA
Norte da Europa
Leste da Noruega
Polônia Central
Região Norte da África do Sul -
Sul da Índia -
Suécia Central
Norte da Suíça
Norte dos Emirados Árabes -
Sul do Reino Unido
Centro-Oeste dos EUA
Europa Ocidental
Oeste dos EUA
Oeste dos EUA 2
Oeste dos EUA 3

Faturamento

As sessões de contêiner personalizadas são cobradas com base nos recursos consumidos pelo pool de sessões. Para obter mais informações, confira Cobrança em Aplicativos de Contêiner do Azure.

Segurança

Use os métodos a seguir para ajudar a proteger a segurança de suas sessões dinâmicas.

  • Identificadores seguros: use identificadores de sessão seguros o tempo todo. Gere identificadores de sessão usando métodos criptográficos para garantir valores exclusivos e imprevisíveis. Evite usar IDs sequenciais que podem ser adivinhadas por um invasor.

  • Use HTTPS: sempre use HTTPS para criptografar dados em trânsito. Isso protege os identificadores de sessão e todos os dados confidenciais trocados entre o cliente e o servidor de serem interceptados.

  • Limitar o tempo de vida da sessão: implementar tempos limite para sessões. Por exemplo, permita um máximo de 15 minutos de inatividade antes que a sessão seja encerrada automaticamente. Isso ajuda a reduzir os riscos devido a um dispositivo perdido ou desatendido.

  • Auditorias e monitoramento regulares: revise periodicamente as práticas e logs de gerenciamento de sessão. Implemente ferramentas de monitoramento para alertar atividades suspeitas, como tentativas de logon com falha repetidas ou comprimentos anormais de sessão.