View a markdown version of this page

Solucionar problemas en tiempo de AgentCore ejecución - Amazon Bedrock AgentCore
Las invocaciones de mi agente fallan y dicen: «Este tiempo de ejecución no es» MMDSv2-enabled ValidationExceptionLas invocaciones de mi agente fallan y se producen 504 errores de tiempo de espera de GatewayMi compilación de Docker falla con «403 Forbidden» al extraer imágenes base de PythonAl usar boto3, aparece el error «Servicio desconocido: 'bedrock-agent-core-runtime'»Obtengo «AccessDeniedException» cuando intento crear un Amazon Bedrock Runtime AgentCoreMi compilación de Docker falla y aparece el mensaje «exec/bin/sh: exec format error»¿Cuáles son los requisitos para los contenedores Docker que se utilizan con Amazon Bedrock Runtime? AgentCoreMi herramienta de larga duración se interrumpe después de 15 minutosMis sesiones inactivas no se publican y estoy agotando mi cuota de sesiones¿Cómo accedo al tiempo de ejecución SessionId de mi código de agente para etiquetar o agrupar recursos?Tengo RuntimeClientError (403) problemasMe faltan registros o están vacíos CloudWatchTengo problemas con el formato de cargaNecesito ayuda para entender los códigos de error HTTPNecesito recomendaciones para probar a mi agenteNecesito ayuda para depurar problemas con los contenedoresNecesito ayuda para solucionar problemas con los agentes del protocolo MCPNecesito ayuda para solucionar problemas de streaming bidireccional mediante WebSocketLos cambios en mi código no se reflejan en las sesiones existentesFaltan intervalos cuando se invoca mi tiempo de ejecución desde una función LambdaEl montaje de mis archivos S3 o EFS falla y aparece el mensaje «Acceso denegado»El montaje de mis archivos S3 o EFS falla con "ResourceNotFound»Se agota el tiempo de espera para el montaje de My S3 Files o EFSCuando escribo en mi sistema de archivos montado, aparece el mensaje «Permiso denegado»Mi contenedor no se inicia con el error HTTP 424 en imágenes de capa altaPrácticas recomendadas

Solucionar problemas en tiempo de AgentCore ejecución

Este tema de solución de problemas le ayuda a identificar y resolver problemas comunes al trabajar con AgentCore Runtime. Si sigue estas soluciones, puede diagnosticar y solucionar rápidamente los problemas relacionados con los tiempos de ejecución de sus agentes.

Temas

Las invocaciones de mi agente fallan y dicen: «Este tiempo de ejecución no es» MMDSv2-enabled ValidationException

Cuando esto ocurre: al invocar el tiempo de ejecución de un agente medianteInvokeAgentRuntime,ExecuteCommand,InvokeAgentRuntimeWithWebSocketStream, InvokeAgentRuntimeCommandShell o GetAgentCard

Por qué sucede esto: A partir del 30 de junio de 2026, Amazon Bedrock AgentCore Runtime requiere que todos los tiempos de ejecución de los agentes usen MMDSv2 (MicroVM Metadata Service versión 2). El servicio rechaza las invocaciones dirigidas a tiempos de ejecución que no estén configurados o estén metadataConfiguration configurados en o. requireMMDSV2 false null

Solución: llame UpdateAgentRuntimecon la requireMMDSV2 configuración establecida en: true metadataConfiguration

import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') try: client.update_agent_runtime( agentRuntimeId='your-agent-runtime-id', metadataConfiguration={ 'requireMMDSV2': True } ) print("MMDSv2 enabled successfully.") except client.exceptions.ResourceNotFoundException as e: print(f"Runtime not found: {e}") except Exception as e: print(f"Error enabling MMDSv2: {e}")

Tras la actualización, las nuevas invocaciones se realizarán correctamente. Las sesiones existentes no se ven afectadas.

Las invocaciones de mi agente fallan y se producen 504 errores de tiempo de espera de Gateway

Cuando esto ocurre: durante la invocación del agente mediante el SDK o la consola

Por qué sucede esto: varios factores pueden impedir que su agente responda dentro del período de espera

Hay varios factores que pueden provocar esto:

  • Problemas con el contenedor: asegúrese de que su imagen de Docker muestre el puerto 8080 y tenga la ruta /invocations

  • Compatibilidad con ARM64: actualmente, su contenedor debe ser compatible con ARM64

  • Lógica de reintento: revise los mecanismos de reintento para gestionar los problemas transitorios

Mi compilación de Docker falla con «403 Forbidden» al extraer imágenes base de Python

Cuando esto ocurre: durante docker build o docker run cuando se utilizan imágenes public.ecr.aws base

Por qué sucede esto: Problemas de autenticación pública con ECR: la autenticación caducada o faltante es un problema común.

Solución: inicie sesión en ECR Public o cierre la sesión por completo:

# Option 1: Login to ECR Public aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws # Option 2: Logout (recommended for avoiding token expiration) docker logout public.ecr.aws # Option 3: Use Docker Hub directly in Dockerfile FROM python:3.10-slim # instead of public.ecr.aws/docker/library/python:3.10-slim

Al usar boto3, aparece el error «Servicio desconocido: 'bedrock-agent-core-runtime'»

Cuando esto ocurre: al invocar las AgentCore API de Amazon Bedrock mediante el SDK boto3

Por qué sucede esto: la biblioteca boto3 está desactualizada: un problema común, ya que la mayoría de las instalaciones no tienen el SDK más reciente

Solución: actualice a las últimas versiones de boto3 y botocore:

pip install --upgrade boto3 botocore # Minimum versions: boto3 1.39.8+, botocore 1.33.8+

Obtengo «AccessDeniedException» cuando intento crear un Amazon Bedrock Runtime AgentCore

Cuando esto ocurre: durante la creación del agente mediante la consola, el SDK o la CLI

Por qué sucede esto: o su usuario carece de permisos o la función de ejecución no está configurada correctamente para Amazon Bedrock AgentCore

Solución: hay varios factores que pueden provocar esto:

Mi compilación de Docker falla y aparece el mensaje «exec/bin/sh: exec format error»

Cuando esto ocurre: Al crear contenedores para la implementación de Amazon Bedrock AgentCore

Por qué sucede esto: creación de contenedores ARM64 en sistemas x86 sin una configuración multiplataforma adecuada

Solución: construya contenedores compatibles con ARM64. Puedes considerar el uso de buildx para compilaciones multiplataforma. Como alternativa, puedes usar. CodeBuild Para ver un código de ejemplo, consulte Amazon Bedrock AgentCore Samples.

¿Cuáles son los requisitos para los contenedores Docker que se utilizan con Amazon Bedrock Runtime? AgentCore

Consulte los requisitos de Amazon Bedrock AgentCore Runtime para obtener más información.

En resumen, su contenedor Docker debe cumplir los siguientes requisitos:

  • Puerto: Expose el puerto 8080 (pronto se admitirán puertos adicionales)

  • Punto final: debe haber una /invocations ruta disponible

  • Arquitectura: debe ser compatible con ARM64

  • Respuesta: Debe manejar el formato de carga útil esperado

Mi herramienta de larga duración se interrumpe después de 15 minutos

Para obtener más información, consulte Gestión de agentes asíncronos y de larga ejecución con Amazon Bedrock Amazon Bedrock Runtime para obtener más información. AgentCore

Cuando esto ocurre: durante operaciones de agentes prolongadas o flujos de trabajo complejos

Por qué ocurre esto: Amazon Bedrock finaliza AgentCore automáticamente las sesiones tras 15 minutos de inactividad. La plataforma determina la actividad a partir de la /ping respuesta: los informes de una sesión HealthyBusy se mantienen activos, mientras que los informes de una sesión Healthy se consideran inactivos y su tiempo de inactividad se mide desde la status última vez que se modificó (consulte el campo siguiente). time_of_last_update

Solución: asegúrese de que su /ping terminal vuelva a funcionar HealthyBusy mientras se está trabajando en segundo plano:

{"status": "HealthyBusy"}

Si utiliza el AgentCore SDK de Bedrock, la respuesta al ping se gestiona automáticamente. Para implementaciones personalizadas, asegúrese de que su controlador de ping regrese HealthyBusy durante el procesamiento.

Mis sesiones inactivas no se publican y estoy agotando mi cuota de sesiones

Cuando esto ocurre: el recuento de sesiones aumenta continuamente con la carga y las sesiones no se liberan después del tiempo de espera de inactividad (por ejemplo, se maxVms producen erroresServiceQuotaExceededException/durante una ráfaga de invocaciones), aunque cada sesión esté inactiva.

Por qué sucede esto: cuando se informa de una sesiónHealthy, la plataforma mide cuánto tiempo ha estado inactiva desde el time_of_last_update campo de /ping respuesta, lo que debe reflejar cuándo se modificó por última vez. status Si tu controlador de ping se ajusta time_of_last_update a la hora actual de cada ping, el tiempo de inactividad registrado se sigue restableciendo, lo que impide que se active el tiempo de espera de inactividad. De este modo, las sesiones permanecerán activas hasta que MaxLifetime se agote tu cuota de sesiones.

Solución: time_of_last_update actualízalo solo cuando status realmente cambie, u omítelo por completo para que la plataforma registre los cambios de estado por sí sola:

{"status": "Healthy"}

Si utilizas el AgentCore SDK de Bedrock, actualiza a la última versión, en la que la respuesta al ping se gestiona correctamente. Como medida provisional, las llamadas StopRuntimeSession liberan las sesiones bloqueadas.

¿Cómo accedo al tiempo de ejecución SessionId de mi código de agente para etiquetar o agrupar recursos?

Cuando esto ocurre: desea agrupar, etiquetar o rastrear los recursos (por ejemplo, objetos de S3 o registros) según la sesión de tiempo de ejecución del agente actual.

Soluciones:

  • Si utiliza el SDK de Bedrock Agents, utilicecontext.session_id.

  • Si está creando un servidor de tiempo de ejecución personalizado, extráigalo del encabezado X-Amzn-Bedrock-AgentCore-Runtime-Session-Id HTTP.

Solución 1: Para los agentes que utilizan el AgentCore SDK de Amazon Bedrock para Bedrock, utilícelo context.session_id desde el punto de entrada de su agente

@app.entrypoint def my_agent(payload, context): session_id = context.session_id # Use session_id for S3 object tagging/organization s3_client = boto3.client('s3') s3_client.put_object( Bucket='my-bucket', Key=f'agent-outputs/{session_id}/output.json', Body=json.dumps(result), Tagging=f'SessionId={session_id}' ) return result

Solución 2: Para servidores HTTP personalizados en tiempo de ejecución

El ID de la sesión en tiempo de ejecución se incluye en este encabezado HTTP. Analícelo a partir de la solicitud entrante y utilícelo para etiquetar, correlacionar o propagar en sentido descendente.

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id: <value>

Tengo RuntimeClientError (403) problemas

Problema

Cuando intentas invocar el tiempo de ejecución de tu agente, recibes un valor de 403 RuntimeClientError pulgadas.

Causas

Este error suele producirse debido a:

  • Fallos al iniciar el contenedor

  • Problemas de permisos con el rol de ejecución

  • Problemas de autenticación con el token portador

Resolución

Siga estos pasos para resolver el problema:

  1. Compruebe CloudWatch los registros: cualquier problema relacionado con la puesta en marcha del contenedor se reflejará como un 403 - RuntimeClientError. Navegue hasta el siguiente grupo de CloudWatch registros para comprobar si hay errores de inicio:

    /aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>/[runtime-logs]
  2. Verifique la función de ejecución: asegúrese de que la función de ejecución de su agente tenga los permisos necesarios. Para obtener más información, consulte Función AgentCore de ejecución en tiempo de ejecución.

  3. Valide la autenticación: en el caso de los agentes del protocolo MCP, asegúrese de que su token portador sea válido y no haya caducado.

Me faltan registros o están vacíos CloudWatch

Problema

Encuentras errores pero no ves ningún inicio de sesión relevante CloudWatch.

Solución

Prueba estos enfoques para diagnosticar el problema:

  1. Compruebe el grupo de registros correcto: asegúrese de buscar en el grupo de CloudWatch registros correcto. El patrón estándar es:

    /aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>/runtime-logs
  2. Ejecute localmente para el diagnóstico: si no hay CloudWatch registros, intente ejecutar el contenedor del agente localmente utilizando exactamente la misma carga útil que utilizó para la invocación en AgentCore Runtime. Esto puede ayudar a identificar problemas que podrían no estar visibles en los registros.

  3. Habilite el registro detallado: actualice el código del agente para incluir un registro más detallado, especialmente en torno a los puntos de entrada y cualquier lógica de gestión de errores.

Tengo problemas con el formato de carga

Problema

La invocación del tiempo de ejecución del agente falla aunque el contenedor se inicie correctamente.

Resolución

Siga estos pasos para resolver los problemas de formato de la carga útil:

  1. Verifique la estructura de carga útil: asegúrese de que la estructura de carga útil coincida con lo que espera su agente. Presta especial atención a:

    • Si el código de su agente espera una input palabra clave en la carga útil, asegúrese de incluirla:

      { "input": { "prompt": "Your question here" } }
    • No solo:

      { "prompt": "Your question here" }
  2. Compruebe la documentación: revise el formato de entrada esperado en la documentación.

Necesito ayuda para entender los códigos de error HTTP

Problema

Su agente devuelve códigos de error HTTP que son difíciles de interpretar.

Ejemplo de mensaje de error

Es posible que veas un error como el siguiente:

An error occurred (RuntimeClientError) when calling the InvokeAgentRuntime operation: Received error (<HTTP Status Code>) from runtime. Please check your CloudWatch logs for more information

Resolución

Estos son los códigos de error más comunes y sus significados:

4.2.2 Entidad inprocesable

Esto ocurre cuando el contenedor encuentra problemas de validación con la carga útil de entrada.

Causas habituales:

  • Faltan campos obligatorios en la carga útil (p. ej., falta el campo de «entrada»)

  • Los tipos de datos de los campos son incorrectos

  • El formato de la carga útil no es válido

403 Forbidden

Problemas de autenticación o autorización.

Comprueba tu token de portador o tus permisos de IAM.

Error interno del servidor 500

Excepciones de tiempo de ejecución en el código de su agente.

Consulta CloudWatch los registros para ver un seguimiento detallado de las pilas.

Necesito recomendaciones para probar a mi agente

Para depurar sistemáticamente los problemas de tiempo de ejecución del agente:

Pruebe primero localmente

Antes de realizar la implementación en AgentCore Runtime:

  • Ejecute el contenedor de agentes de forma local con la misma imagen de Docker

  • Verifica que funcione exactamente con la misma carga

Compare las cargas útiles

Garantice la coherencia entre los entornos:

  • Asegúrese de que la estructura de carga útil entre las pruebas locales y la invocación en AgentCore tiempo de ejecución sea idéntica

  • Presta especial atención a la anidación de campos como «input» y «prompt»

Necesito ayuda para depurar problemas con los contenedores

Si sospecha que hay problemas relacionados con los contenedores:

Extraiga y ejecute localmente

Pruebe la imagen del contenedor en su máquina local:

docker pull <your-ecr-repo-uri> docker run -p 8080:8080 <your-ecr-repo-uri>

Prueba con curl

Envía las solicitudes de prueba a tu contenedor local:

curl -X POST http://localhost:8080/invocations \ -H "Content-Type: application/json" \ -d '{"input": {"prompt": "Hello world!"}}'

Comprueba los registros del contenedor

Examine la salida del contenedor para ver si hay errores:

docker logs <container-id>

Necesito ayuda para solucionar problemas con los agentes del protocolo MCP

En el caso de los agentes de protocolo MCP, siga estos pasos específicos de solución de problemas:

Verifique la ruta del punto final

Los servidores MCP deberían escuchar 0.0.0.0:8000/mcp/

Utilice el Inspector MCP

Pruebe con la herramienta Inspector MCP:

  1. Instale y ejecute el Inspector MCP: npx @modelcontextprotocol/inspector

  2. Conéctese a su servidor local en http://localhost:8000/mcp

  3. En el caso de los agentes desplegados, utilice el URL-encoded punto de conexión adecuado

Problemas de autenticación

Compruebe la configuración de autenticación:

  • Asegúrese de que el token del portador esté configurado correctamente en los encabezados

  • Compruebe que su grupo de usuarios de Cognito esté configurado correctamente

Necesito ayuda para solucionar problemas de streaming bidireccional mediante WebSocket

Para la transmisión bidireccional mediante WebSocket agentes, sigue estos pasos específicos de solución de problemas:

Compruebe la configuración del punto final

WebSocket los agentes deben ejecutarse en el puerto 8080 y servir WebSocket las conexiones en la ruta /ws

Realice pruebas locales con una complejidad incremental

Comience con pruebas locales sencillas antes de la implementación:

  1. Pruebe la conexión básica: compruebe que su agente acepta WebSocket las conexiones en ws://localhost:8080/ws

  2. Pruebe el manejo de los mensajes: envíe mensajes de texto sencillos y verifique las respuestas

  3. Pruebe la gestión de las sesiones: compruebe que las conversaciones persistentes funcionan según lo previsto

  4. Pruebe la gestión de errores: asegúrese de que su agente gestione correctamente las interrupciones de conexión y los mensajes con formato incorrecto

Problemas de autenticación

Compruebe la configuración de autenticación de los agentes desplegados:

  • Para OAuth: asegúrate de que el token portador sea válido y no esté caducado

  • Para SigV4: asegúrate de que la entrada del algoritmo de firma sea correcta, incluida la WebSocket URL, los encabezados y el método de solicitud

  • Utilice el método de autenticación correcto que coincida con la configuración de su agente

Problemas de conexión comunes

Abordar los problemas de WebSocket conexión más comunes:

  • Compruebe la compatibilidad del formato de los mensajes entre las expectativas de su agente y del cliente

  • Configure la fragmentación del marco del mensaje o implemente la fragmentación para mantenerse dentro de los límites del tamaño del marco del mensaje (64 KB) y la velocidad de fotogramas del mensaje (250 cuadros por segundo) para evitar el cierre de la conexión

Los cambios en mi código no se reflejan en las sesiones existentes

Problema

Has actualizado el tiempo de ejecución del agente con un código nuevo, pero las sesiones existentes siguen utilizando la versión anterior.

¿Por qué sucede esto

Cada sesión de microVM se crea con los activos de código (agentRuntimeArtifact) que se desplegaron en el momento de la creación de la sesión. Una vez establecida una sesión, se sigue utilizando esa versión del código hasta que finalice la sesión, incluso cuando los activos de código se actualicen como parte de la UpdateAgentRuntimeoperación.

Solución

Para acceder al código actualizado, utilice un nuevo identificador de sesión.

Faltan intervalos cuando se invoca mi tiempo de ejecución desde una función Lambda

Cuando esto ocurre: Al invocar AgentCore Runtime desde una función Lambda

Por qué sucede esto: Lambda genera su propio encabezado. X-Amzn-Trace-Id Si el rastreo Lambda lo ha hechoSampled=0, este contexto sin muestrear se propaga a AgentCore Runtime y el tiempo de ejecución omite la generación de intervalos para esa invocación.

Solución:

  • Habilitar el rastreo activo de Lambda: active el rastreo X-Ray activo en la función Lambda para que produzca trazas muestreadas (). Sampled=1

  • Verifique la búsqueda de CloudWatch transacciones: asegúrese de haber completado la configuración en Configurar la observabilidad y de que el destino del segmento de rastreo esté configurado en Registros. CloudWatch

  • Compruebe la decisión de muestreo: registre la variable de _X_AMZN_TRACE_ID entorno en su función Lambda. Si apareceSampled=0, significa que el rastreo activo no está activado o que la decisión de muestreo está siendo tomada por una persona de origen.

El montaje de mis archivos S3 o EFS falla y aparece el mensaje «Acceso denegado»

Cuando esto ocurre: durante la invocación de un agente con archivos S3 o almacenamiento EFS configurado

Por qué ocurre esto: a la función de ejecución le faltan los permisos de sistema de archivos necesarios. Para obtener más información sobre la configuración del almacenamiento persistente, consulte Configuraciones del sistema de archivos para AgentCore Runtime.

Solución:

En el caso de S3 Files, asegúrese de que su función de ejecución tenga:

{ "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite" ], "Resource": "arn:aws:s3files:<region>:<account>:file-system/*", "Condition": { "StringEquals": { "s3files:AccessPointArn": "<your-access-point-arn>" } } }

En el caso de EFS, asegúrese de que su función de ejecución cuente con:

{ "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:<region>:<account>:file-system/<fs-id>", "Condition": { "StringEquals": { "elasticfilesystem:AccessPointArn": "<your-access-point-arn>" } } }

Omita s3files:ClientWrite o elasticfilesystem:ClientWrite si su agente solo necesita acceso de lectura.

El montaje de mis archivos S3 o EFS falla con "ResourceNotFound»

Cuando esto ocurre: durante la invocación de un agente con archivos S3 o almacenamiento EFS configurado

Por qué ocurre esto: el sistema de archivos o el punto de acceso se eliminaron después de crear el agente, o los ID son incorrectos.

Solución:

  • Compruebe que el sistema de archivos existe:

    • Archivos S3: aws s3files list-file-systems --region <region>

    • EFS: aws efs describe-file-systems --region <region>

  • Compruebe que el punto de acceso existe:

    • Archivos S3: aws s3files list-access-points --file-system-id <fs-id> --region <region>

    • EFS: aws efs describe-access-points --file-system-id <fs-id> --region <region>

  • Compruebe que los objetivos de montaje existan en todas las zonas de disponibilidad requeridas:

    • Archivos S3: aws s3files list-mount-targets --file-system-id <fs-id> --region <region>

    • EFS: aws efs describe-mount-targets --file-system-id <fs-id> --region <region>

    • Asegúrese de que cada destino de montaje muestre el estado Disponible y esté en la misma VPC que el entorno de ejecución del agente.

  • Si se eliminó el recurso, vuelva a crearlo y actualice el tiempo de ejecución del agente con el nuevo ARN del punto de acceso

Se agota el tiempo de espera para el montaje de My S3 Files o EFS

Cuando esto ocurre: durante la invocación de un agente con archivos S3 o almacenamiento EFS configurado. La invocación puede tardar más de lo habitual antes de fallar.

Por qué ocurre esto: la configuración de la red de la VPC bloquea el tráfico NFS (puerto 2049) entre el procesamiento del agente y los destinos de montaje del sistema de archivos.

Solución:

  • Compruebe los grupos de seguridad en los destinos de montaje: compruebe que el grupo de seguridad adjunto a sus objetivos de montaje permita la entrada de TCP por el puerto 2049 desde el grupo de seguridad utilizado por el agente en tiempo de ejecución

  • Compruebe los grupos de seguridad en el tiempo de ejecución del agente: compruebe que el grupo de seguridad utilizado por el agente en tiempo de ejecución permita el TCP saliente por el puerto 2049 al grupo de seguridad de destino montado

  • Compruebe que los objetivos de montaje existan en las zonas de disponibilidad correctas: los objetivos de montaje deben estar en las mismas zonas de disponibilidad que las subredes configuradas en el entorno de ejecución del agente:

    • Archivos S3: aws s3files list-mount-targets --file-system-id <fs-id> --region <region>

    • EFS: aws efs describe-mount-targets --file-system-id <fs-id> --region <region>

  • Verifique el enrutamiento de subred: asegúrese de que sus subredes tengan el enrutamiento adecuado (ruta de VPC local para el rango CIDR)

Cuando escribo en mi sistema de archivos montado, aparece el mensaje «Permiso denegado»

Cuando esto ocurre: la invocación del agente se realiza correctamente y el agente puede leer los archivos desde el montaje, pero la escritura falla y aparece el mensaje «Permiso denegado»

Por qué ocurre esto: o bien al rol de IAM le faltan permisos de escritura, o bien los permisos POSIX del directorio establecidos durante la creación del punto de acceso no permiten la escritura para el usuario del agente.

Solución:

  • Compruebe los permisos de IAM: asegúrese de que su función de ejecución incluya s3files:ClientWrite (archivos S3) o elasticfilesystem:ClientWrite (EFS). Sin permisos de escritura, el montaje es de solo lectura. Para obtener más información, consulte los permisos para la función de ejecución de Amazon Bedrock AgentCore Runtime.

  • Compruebe los permisos de POSIX: si el directorio es propiedad de un usuario diferente al de su proceso contenedor, se denegarán las escrituras. Con cualquiera de las siguientes opciones:

    • Configura el PosixUser de tu punto de acceso para que coincida con el modo en que se ejecuta uid/gid tu contenedor, de modo que todas las operaciones se realicen como ese usuario.

    • Establezca los permisos de directorio en 777 para permitir que todos los usuarios escriban.

Mi contenedor no se inicia con el error HTTP 424 en imágenes de capa alta

Cuando esto ocurre: tus InvokeAgentRuntime llamadas devuelven el protocolo HTTP 424 (dependencia fallida) y se muestran Failed to mount overlay: No such file or directory los registros de tu agente. Esto ocurre cuando la imagen del contenedor tiene más de 53 capas y utiliza una directiva USER no numérica (por ejemplo, USER myuser en lugar deUSER 1000).

Por qué sucede esto: las imágenes de contenedores con muchas capas combinadas con directivas USER no numéricas pueden provocar errores de inicialización.

Solución: utilice una de estas soluciones alternativas:

  • Utilice una directiva USER numérica: en su Dockerfile, USER myuser sustitúyala por el UID numérico (por ejemplo,). USER 1000 Puedes encontrar el UID de tu usuario id myuser ejecutándolo dentro del contenedor. Esto evita por completo el montaje del sistema de archivos.

  • Reduzca las capas de imágenes: utilice compilaciones de Docker de varias etapas para reducir la imagen a menos de 53 capas. Puedes comprobar el número de capas de tu imagen con:

docker inspect <image> | jq '.[0].RootFS.Layers | length'
  • Aplasta las capas: usa docker build --squash una herramienta similar docker-squash para aplanar las capas de la imagen.

Prácticas recomendadas

Habilite un registro completo

Implemente un registro exhaustivo en su agente:

  • Incluya el request/response inicio de sesión de su agente

  • Registre las rutas críticas y las condiciones de error

Utilice un manejo estructurado de errores

Implemente informes de errores claros:

  • Devuelve mensajes de error claros con códigos específicos

  • Incluya información procesable en las respuestas de error

Pruebe los cambios incrementales

Siga un enfoque de prueba metódico:

  • Al modificar el agente, pruébelo localmente antes del despliegue

  • Valide la compatibilidad de la carga útil con los entornos locales e implementados

Supervise el rendimiento

Configure la supervisión para su agente:

  • Utilice CloudWatch métricas para realizar un seguimiento de los patrones de invocación

  • Configure alarmas para medir las tasas de error y la latencia