Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los grupos de sesiones proporcionan tiempos de asignación de sesiones subsegundos para los nuevos grupos y son responsables de la administración y el ciclo de vida de cada sesión.
Configuración
Puede controlar el comportamiento de los grupos de sesiones mediante los parámetros siguientes disponibles para az containerapp sessionpool create.
| Propósito | Propiedad | Description |
|---|---|---|
| Establecer el número máximo de sesiones | max-sessions |
Número máximo de sesiones simultáneas permitidas en un grupo. Las solicitudes que entran después de que se cumpla el límite máximo se devuelven un 404 error de servidor que indica que no se asignan más sesiones al grupo. |
| Duración de espera | cooldown-period |
Número de segundos que una sesión puede estar inactiva antes de que finalice la sesión. El período de inactividad se restablece cada vez que se llama a la API de la sesión. El valor debe estar entre 300 y 3600. |
| Cantidad de sesiones objetivo | ready-sessions |
El número objetivo de sesiones a mantener listas en un grupo. |
Creación de un grupo
El proceso para crear un grupo es ligeramente diferente en función de si va a crear un grupo de intérpretes de código o un grupo de contenedores personalizado.
Grupo de intérpretes de código
Para crear un grupo de sesiones de intérprete de código mediante la CLI de Azure, asegúrese de que tiene las versiones más recientes de la CLI de Azure y la extensión Azure Container Apps con los siguientes 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
Usa el comando az containerapps sessionpool create para crear la piscina. En el ejemplo siguiente se crea un grupo de sesiones de intérprete de código de Python denominado my-session-pool. Asegúrese de reemplazar <RESOURCE_GROUP> por el nombre del grupo de recursos antes de ejecutar el 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
Puede definir la siguiente configuración al crear un grupo de sesiones:
| Configuración | Description |
|---|---|
--container-type |
Tipo de intérprete de código que se va a usar. Los valores admitidos incluyen PythonLTS, NodeLTSy Shell. |
--max-sessions |
Número máximo de sesiones asignadas permitidas simultáneamente. El valor máximo es: 600. |
--cooldown-period |
Número de segundos de inactividad permitidos antes de la finalización. El período de inactividad se restablece cada vez que se llama a la API de la sesión. El intervalo permitido está entre 300 y 3600. |
--network-status |
Designa si se permite el tráfico de red saliente desde la sesión. Los valores válidos son EgressDisabled (valor predeterminado) y EgressEnabled. |
Importante
Si habilita la salida, el código que se ejecuta en la sesión puede acceder a Internet. Tenga cuidado cuando el código no sea de confianza, ya que se puede usar para realizar actividades malintencionadas, como ataques por denegación de servicio.
Obtén el punto de conexión de la API de administración
Para usar sesiones de intérprete de código con integraciones del marco de LLM o mediante una llamada directamente a los puntos de conexión de la API de administración, necesita el punto de conexión de la API de administración del grupo.
El punto de conexión tiene el formato https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
Para recuperar el punto de conexión de la API de administración de un grupo de sesiones, use el az containerapps sessionpool show comando . Asegúrese de reemplazar <RESOURCE_GROUP> por el nombre del grupo de recursos antes de ejecutar el comando.
az containerapp sessionpool show \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--query 'properties.poolManagementEndpoint' -o tsv
Grupo de contenedores personalizado
Para crear un grupo de sesiones de contenedor personalizado, debe proporcionar una imagen de contenedor y ajustes de configuración del grupo.
Se invoca o se comunica con cada sesión mediante solicitudes HTTP. El contenedor personalizado debe exponer un servidor HTTP en un puerto que especifique para responder a estas solicitudes.
Para crear un grupo de sesiones de contenedor personalizado mediante la CLI de Azure, asegúrese de que tiene las versiones más recientes de la CLI de Azure y la extensión Azure Container Apps con los siguientes comandos:
az upgrade
az extension add --name containerapp --upgrade --allow-preview true -y
Los grupos de sesiones de contenedor personalizados requieren un perfil de carga de trabajo habilitado para el entorno de Azure Container Apps. Si no tiene un entorno, use el az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> --enable-workload-profiles comando para crear uno.
Use el az containerapp sessionpool create comando para crear un grupo de sesiones de contenedor personalizado.
En el ejemplo siguiente se crea un grupo de sesiones denominado my-session-pool con una imagen myregistry.azurecr.io/my-container-image:1.0de contenedor personalizada.
Antes de enviar la solicitud, reemplace las variables dentro de los corchetes <> por los valores apropiados para el grupo de sesiones y el identificador de sesión.
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 crea un grupo de sesiones con la siguiente configuración:
| Parámetro | Importancia | Description |
|---|---|---|
--name |
my-session-pool |
Nombre del grupo de sesiones. |
--resource-group |
my-resource-group |
Grupo de recursos que contiene el grupo de sesiones. |
--environment |
my-environment |
El nombre o el identificador de recurso del entorno de la aplicación contenedora. |
--container-type |
CustomContainer |
Tipo de contenedor del grupo de sesiones. Debe ser CustomContainer para sesiones de contenedor personalizadas. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
Imagen de contenedor que se va a usar para el grupo de sesiones. |
--registry-server |
myregistry.azurecr.io |
Nombre de host del servidor del registro de contenedor. |
--registry-username |
my-username |
El nombre de usuario para iniciar sesión en los registros de contenedores. |
--registry-password |
my-password |
La contraseña para iniciar sesión en el registro de contenedor. |
--cpu |
0.25 |
Cpu necesaria en núcleos. |
--memory |
0.5Gi |
Memoria necesaria. |
--target-port |
80 |
Puerto de sesión usado para el tráfico de entrada. |
--cooldown-period |
300 |
Número de segundos que una sesión puede estar inactiva antes de que finalice la sesión. El período de inactividad se restablece cada vez que se llama a la API de la sesión. El valor debe estar entre 300 y 3600. |
--network-status |
EgressDisabled |
Designa si se permite el tráfico de red saliente desde la sesión. Los valores válidos son EgressDisabled (valor predeterminado) y EgressEnabled. |
--max-sessions |
10 |
Número máximo de sesiones que se pueden asignar al mismo tiempo. |
--ready-sessions |
5 |
Número de sesiones de destino que están listas en el grupo de sesiones todo el tiempo. Aumenta este número si las sesiones se asignan más rápido de lo que el grupo se reabastece. |
--env-vars |
"key1=value1" "key2=value2" |
Variables de entorno que se van a establecer en el contenedor. |
--location |
"Supported Location" |
Ubicación del grupo de sesiones. |
Para comprobar el estado del grupo de sesiones, use el az containerapp sessionpool show comando :
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Para actualizar el grupo de sesiones, use el az containerapp sessionpool update comando .
Importante
Si la sesión se usa para ejecutar código que no es de confianza, no incluya información ni datos a los que no quiera que acceda el código que no es de confianza. Supongamos que el código es malintencionado y tiene acceso completo al contenedor, incluidas sus variables de entorno, secretos y archivos.
Administración de puntos de conexión
Importante
El identificador de sesión es información confidencial que requiere un proceso seguro al crear y administrar su valor. Para proteger este valor, la aplicación debe asegurarse de que cada usuario o inquilino solo tiene acceso a sus propias sesiones.
Si no se protege el acceso a las sesiones, se podría producir un acceso incorrecto o no autorizado a los datos almacenados en las sesiones de los usuarios. Para más información, consulte Identificadores de sesión.
Los siguientes puntos de conexión están disponibles para administrar sesiones en un grupo:
| Ruta del punto final | Método | Description |
|---|---|---|
code/execute |
POST |
Ejecute el código en una sesión. |
files/upload |
POST |
Cargue un archivo en una sesión. |
files/content/{filename} |
GET |
Descargue un archivo de una sesión. |
files |
GET |
Enumere los archivos de una sesión. |
Compile la dirección URL completa de cada punto de conexión mediante la concatenación del punto de conexión de la API de administración del grupo con la ruta de acceso del punto de conexión. La cadena de consulta debe incluir un identifier parámetro que contenga el identificador de sesión y un api-version parámetro con el valor 2024-02-02-preview.
Por ejemplo: 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 el punto de conexión de administración del grupo de sesiones, use el az containerapp sessionpool show comando :
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Todas las solicitudes al punto de conexión de administración del grupo deben incluir un encabezado Authorization con un token de portador. Para obtener información sobre cómo autenticarse con la API de administración de grupos, consulte Autenticación.
Cada solicitud de API también debe incluir el parámetro identifier de cadena de consulta con el identificador de sesión. Este identificador de sesión único permite a la aplicación interactuar con sesiones específicas. Para más información sobre los identificadores de sesión, consulte Identificadores de sesión.
Almacenamiento en caché de imágenes
Cuando se crea o actualiza un grupo de sesiones, Azure Container Apps almacena en caché la imagen de contenedor en el grupo. Este almacenamiento en caché ayuda a acelerar el proceso de creación de nuevas sesiones.
Los cambios en la imagen no se reflejan automáticamente en las sesiones. Para actualizar la imagen, actualice el grupo de sesiones con una nueva etiqueta de imagen. Use una etiqueta única para cada actualización de imagen para asegurarse de que se extraiga la nueva imagen.
Contenido relacionado
Tipos de sesión: obtenga información sobre los diferentes tipos de sesiones dinámicas:
Tutoriales: Trabajar directamente con la API REST o a través de un agente de LLM:
- Use un agente LLM:
- Uso de la API REST