Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os conjuntos de sessões fornecem tempos de alocação de sessões a nível de milissegundos para novos conjuntos e são responsáveis pela gestão e pelo ciclo de vida de cada sessão.
Configuração
Pode controlar o comportamento dos grupos de sessões usando os seguintes parâmetros disponíveis para az containerapp sessionpool create.
| Propósito | Propriedade | Description |
|---|---|---|
| Definir o número máximo de sessões | max-sessions |
O número máximo de sessões simultâneas permitidas num pool. Os pedidos que chegam após o limite máximo ser atingido recebem um 404 erro de servidor indicando que não há mais sessões a serem atribuídas ao pool. |
| Duração da espera | cooldown-period |
O número de segundos em que uma sessão pode estar inativa antes de ser terminada. O período de inatividade é reiniciado cada vez que a API da sessão é chamada. O valor deve estar entre 300 e 3600. |
| Quantidade alvo da sessão | ready-sessions |
O número alvo de sessões para manter preparado numa piscina. |
Criar um pool
O processo para criar um pool é ligeiramente diferente dependendo se está a criar um pool de interpretadores de código ou um pool de contentores personalizado.
Pool de interpretadores de código
Para criar um pool de sessões de interpretador de código usando a CLI do Azure, certifique-se de que tem as versões mais recentes da CLI do Azure e da extensão Azure Container Apps com os seguintes comandos:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
Use o az containerapps sessionpool create comando para criar o pool. O exemplo seguinte cria um pool de sessões interpretador de código Python chamado my-session-pool. Certifica-te de substituir <RESOURCE_GROUP> pelo nome do teu grupo de recursos antes de executares o comando.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--location westus2 \
--container-type PythonLTS \
--max-sessions 100 \
--cooldown-period 300 \
--network-status EgressDisabled
Pode definir as seguintes definições ao criar um pool de sessões:
| Configuração | Description |
|---|---|
--container-type |
O tipo de interpretador de código a usar. Os valores suportados incluem PythonLTS, NodeLTS, e Shell. |
--max-sessions |
O número máximo de sessões alocadas permitido em simultâneo. O valor máximo é 600. |
--cooldown-period |
O número de segundos de inatividade permitidos antes da terminação. O período de inatividade é reiniciado cada vez que a API da sessão é chamada. O intervalo permitido é entre 300 e 3600. |
--network-status |
Designa se o tráfego de rede de saída é permitido a partir da sessão. Os valores válidos são EgressDisabled (por defeito) e EgressEnabled. |
Importante
Se ativares a saída, o código a correr na sessão pode aceder à internet. Use cautela quando o código não for confiável, pois pode ser usado para realizar atividades maliciosas, como ataques de negação de serviço.
Obtenha o endpoint da API de gestão
Para usar sessões de interpretadores de código com integrações de frameworks LLM ou ao chamar diretamente os endpoints da API de gestão, precisa do endpoint da API de gestão do pool.
O endpoint está no formato https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
Para recuperar o endpoint da API de gestão para um pool de sessões, use o az containerapps sessionpool show comando. Certifica-te de substituir <RESOURCE_GROUP> pelo nome do teu grupo de recursos antes de executares o comando.
az containerapp sessionpool show \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--query 'properties.poolManagementEndpoint' -o tsv
Pool de contentores personalizados
Para criar um pool personalizado de sessões de contentor, precisa de fornecer uma imagem de contentor e definições de configuração do pool.
Invocas ou comunicas com cada sessão usando pedidos HTTP. O contentor personalizado deve expor um servidor HTTP numa porta que especifique para responder a estes pedidos.
- Azure CLI
- Azure Resource Manager
Para criar um pool personalizado de sessões de contentores usando a CLI do Azure, certifique-se de que tem as versões mais recentes da CLI do Azure e da extensão Azure Container Apps com os seguintes comandos:
az upgrade
az extension add --name containerapp --upgrade --allow-preview true -y
Pools personalizados de sessões de contentores requerem um ambiente Azure Container Apps habilitado pelo perfil de carga de trabalho. Se não tiveres um ambiente, usa o az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> --enable-workload-profiles comando para criar um.
Use o az containerapp sessionpool create comando para criar um pool personalizado de sessões de contentores.
O exemplo seguinte cria um pool de sessões nomeado my-session-pool com uma imagem myregistry.azurecr.io/my-container-image:1.0de contentor personalizada .
Antes de enviar o pedido, substitua os marcadores entre os <> parênteses pelos valores apropriados para o seu conjunto de sessões e identificador de sessão.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--environment <ENVIRONMENT> \
--registry-server myregistry.azurecr.io \
--registry-username <USER_NAME> \
--registry-password <PASSWORD> \
--container-type CustomContainer \
--image myregistry.azurecr.io/my-container-image:1.0 \
--cpu 0.25 --memory 0.5Gi \
--target-port 80 \
--cooldown-period 300 \
--network-status EgressDisabled \
--max-sessions 10 \
--ready-sessions 5 \
--env-vars "key1=value1" "key2=value2" \
--location <LOCATION>
Este comando cria um pool de sessões com as seguintes definições:
| Parâmetro | Valor | Description |
|---|---|---|
--name |
my-session-pool |
O nome do grupo de sessões. |
--resource-group |
my-resource-group |
O grupo de recursos que contém o pool de sessões. |
--environment |
my-environment |
O nome ou ID de recurso do ambiente da aplicação container. |
--container-type |
CustomContainer |
O tipo de contentor do pool de sessões. Deve ser CustomContainer para sessões personalizadas de containers. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
A imagem do contêiner a ser utilizada para o pool de sessões. |
--registry-server |
myregistry.azurecr.io |
O nome de host do servidor do registo de contentores. |
--registry-username |
my-username |
O nome de utilizador para iniciar sessão no registo do contentor. |
--registry-password |
my-password |
A palavra-passe para iniciar sessão no registo de contentores. |
--cpu |
0.25 |
O CPU necessário em núcleos. |
--memory |
0.5Gi |
A memória necessária. |
--target-port |
80 |
A porta de sessão usada para o tráfego de entrada. |
--cooldown-period |
300 |
O número de segundos em que uma sessão pode estar inativa antes de ser terminada. O período de inatividade é reiniciado cada vez que a API da sessão é chamada. O valor deve estar entre 300 e 3600. |
--network-status |
EgressDisabled |
Designa se o tráfego de rede de saída é permitido a partir da sessão. Os valores válidos são EgressDisabled (por defeito) e EgressEnabled. |
--max-sessions |
10 |
O número máximo de sessões que podem ser atribuídas ao mesmo tempo. |
--ready-sessions |
5 |
O número alvo de sessões que estão sempre prontas no pool de sessões. Aumente este número se as sessões forem atribuídas mais rapidamente do que a reserva é reabastecida. |
--env-vars |
"key1=value1" "key2=value2" |
As variáveis de ambiente a definir no contentor. |
--location |
"Supported Location" |
O local do pool de sessões. |
Para verificar o estado do pool de sessões, use o az containerapp sessionpool show comando:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Para atualizar o pool de sessões, use o az containerapp sessionpool update comando.
Importante
Se a sessão for usada para executar código não confiável, não inclua informação ou dados que não queira que o código não confiável aceda. Assuma que o código é malicioso e tem acesso total ao contentor, incluindo as suas variáveis de ambiente, segredos e ficheiros.
Ponto de extremidade de gerenciamento
Importante
O identificador de sessão é informação sensível que requer um processo seguro enquanto cria e gere o seu valor. Para proteger este valor, a sua aplicação deve garantir que cada utilizador ou inquilino só tenha acesso às suas próprias sessões.
A falha em garantir o acesso às sessões pode resultar em uso indevido ou acesso não autorizado aos dados armazenados nas sessões dos seus utilizadores. Para mais informações, consulte Identificadores de Sessão
Os seguintes endpoints estão disponíveis para gerir sessões num pool:
| Caminho do ponto final | Método | Description |
|---|---|---|
code/execute |
POST |
Execute código em uma sessão. |
files/upload |
POST |
Carregue um ficheiro para uma sessão. |
files/content/{filename} |
GET |
Descarrega um ficheiro de uma sessão. |
files |
GET |
Lista os ficheiros numa sessão. |
Constróis a URL completa para cada endpoint concatenando o endpoint da API de gestão do pool com o caminho do endpoint. A cadeia de consulta deve incluir um identifier parâmetro contendo o identificador da sessão e um api-version parâmetro com o valor 2024-02-02-preview.
Por exemplo: https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
Para recuperar o endpoint de gestão do pool de sessões, use o az containerapp sessionpool show comando:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Todos os pedidos ao endpoint de gestão do pool devem incluir um Authorization cabeçalho com um token portador. Para aprender a autenticar com a API de gestão de pools, consulte Autenticação.
Cada pedido de API deve também incluir o parâmetro identifier da cadeia de consulta com o ID da Sessão. Este ID de sessão único permite que a sua aplicação interaja com sessões específicas. Para saber mais sobre identificadores de sessão, consulte Identificadores de sessão.
Cache de imagens
Quando um pool de sessões é criado ou atualizado, o Azure Container Apps armazena em cache a imagem do contentor no pool. Esta cache ajuda a acelerar o processo de criação de novas sessões.
Quaisquer alterações à imagem não são automaticamente refletidas nas sessões. Para atualizar a imagem, atualize o pool de sessões com uma nova tag de imagem. Use uma etiqueta única para cada atualização de imagem para garantir que a nova imagem é retirada.
Conteúdo relacionado
Tipos de sessões: Aprenda sobre os diferentes tipos de sessões dinâmicas:
Tutoriais: Trabalhe diretamente com a API REST ou através de um agente LLM:
- Use um agente de LLM:
- Utilize a API REST