Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Cómo puedo solucionar los errores de recursos personalizados en CloudFormation?
Quiero resolver los errores de recursos personalizados en AWS CloudFormation.
Descripción corta
Los errores de los recursos personalizados se producen porque la función de AWS Lambda asociada al recurso encontró un problema cuando se ejecutó. A continuación, el recurso personalizado envía un estado de ERROR a CloudFormation.
Un recurso personalizado también puede fallar cuando CloudFormation no recibe una respuesta del recurso personalizado dentro del plazo previsto y se agota el tiempo de espera.
Para solucionar los problemas de los recursos personalizados, ejecute el runbook AWSSupport-TroubleshootCFNCustomResource o solucione manualmente los problemas de la pila de CloudFormation.
En el caso de los recursos personalizados de Lambda, el runbook comprueba que Lambda llega a Amazon Simple Storage Service (Amazon S3) para enviar una respuesta a CloudFormation. La respuesta a CloudFormation comprueba la configuración de la red de Lambda y los grupos de seguridad.
Resolución
Ejecute el runbook AWSSupport-TroubleshootCFNCustomResource
Antes de iniciar, asegúrese de que su usuario o rol de AWS Identity and Access Management (IAM) tenga los permisos necesarios de IAM.
Para ejecutar la automatización, siga estos pasos:
- Abra la consola de AWS Systems Manager.
- En el panel de navegación, seleccione Documentos.
- En la barra de búsqueda, escriba AWSSupport-TroubleshootCfnCustomResource.
- Seleccione el documento AWSSupport-TroubleshootCfnCustomResource.
- Seleccione Ejecutar automatización.
- Para los parámetros de entrada, introduzca los valores siguientes:
(Opcional) AutomationAssumeRole. Introduzca el ARN del rol de IAM que permite la automatización, una capacidad de AWS Systems Manager para realizar las acciones en su nombre. Si no especifica un rol, la automatización usa los permisos del usuario que inicia el runbook.
StackName. Introduzca el nombre de la pila de CloudFormation en la que falló el recurso personalizado. - Seleccione Ejecutar.
- Revise la sección Salidas para obtener los siguientes resultados detallados:
El paso validateCloudFormationStack verifica que la pila de CloudFormation exista en la misma cuenta y región de AWS.
El paso checkCustomResource analiza la pila de CloudFormation, comprueba el recurso personalizado que ha fallado y proporciona información sobre cómo solucionar el problema del recurso personalizado que ha fallado.
Solución de problemas manual de la pila de CloudFormation
Comprobación de los registros de Amazon CloudWatch
Siga estos pasos:
- Abra la consola de CloudFormation.
- Seleccione la pila con errores y, a continuación, elija la pestaña Recursos para obtener el ID físico de la función de Lambda asociada al recurso personalizado.
- Seleccione su función de Lambda.
- Seleccione la pestaña Supervisar y, a continuación, seleccione Ver registros de CloudWatch.
Si la función de Lambda se eliminó durante la restauración de CloudFormation, es posible que el grupo de registros aún contenga los registros de CloudWatch.
Para obtener los registros, siga estos pasos:
- Abra la consola de CloudWatch.
- En el panel de navegación, seleccione Grupos de registro.
- En el campo de búsqueda, ejecute el siguiente comando:
/aws/lambda/LambdaPhysicalName
Nota: Sustituya LambdaPhysicalName por el nombre de la función de Lambda.
Si no encuentra los registros, desactive la característica de restauración y vuelva a desplegar la pila para solucionar los problemas de comportamiento de la función de Lambda.
Resolución de las posibles causas de errores
Resolución del estado de ERROR
Es posible que se muestre el siguiente error:
«Se ha recibido el estado de ERROR de la respuesta del recurso personalizado. Mensaje devuelto: <reason here>».
Se muestra el mensaje de error anterior cuando la función de Lambda asociada al recurso personalizado detecta un problema y la lógica de gestión de excepciones está implementada.
Para solucionar este problema, revise el motivo del error que se incluye en el mensaje de error y en los registros de CloudWatch para Lambda.
CloudFormation no recibe respuesta
La pila falla porque CloudFormation no recibe una respuesta del recurso personalizado.
Para solucionar este problema, tome las siguientes medidas:
-
Asegúrese de usar correctamente el módulo cfn-response module en la función de Lambda de su recurso personalizado para enviar una respuesta a la pila de CloudFormation.
-
Revise los registros de CloudWatch para determinar si se producen errores cuando se ejecuta el código.
-
Aumente la configuración de tiempo de espera de la función de Lambda para que la función tenga tiempo suficiente para completar la tarea. El tiempo máximo que puede establecer es de 15 minutos.
-
Si la función de Lambda está dentro de una nube virtual privada (VPC), confirme que está en una subred. La subred debe permitir el tráfico saliente a través de una puerta de enlace de NAT. La subred también debe dirigirse a un acceso de punto de enlace de Amazon S3 para que los recursos personalizados puedan acceder a la URL de Amazon S3 prefirmada.
-
Si se envió una respuesta después de un tiempo de espera, compruebe las métricas de Lambda para ver si hay un número elevado de ejecuciones de funciones simultáneas en la misma región. Para reducir los tiempos de espera, use la simultaneidad reservada para su función.
-
Si la pila permanece en el estado EN CURSO hasta que se agote el tiempo de espera del recurso personalizado, use cURL para realizar una solicitud HTTP directa. Cuando hace una solicitud directa, es posible que impida que se agote el tiempo de espera.
Ejemplo de comando curl:curl -H 'Content-Type: ''' -X PUT -d '{ "Status": "SUCCESS", "PhysicalResourceId": "test-CloudWatchtrigger-1URTEVUHSKSKDFF", "StackId": "arn:aws:cloudformation:us-east-1:111122223333:stack/awsexamplecloudformation/33ad60e0-5f25-11e9-a734-0aa6b80efab2 ", "RequestId": "e2fc8f5c-0391-4a65-a645-7c695646739", "LogicalResourceId": "CloudWatchtrigger" }' 'https://cloudformation-custom-resource-response-useast1.s3.us-east-1.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A111122223333%3Astack/awsexamplecloudformation/33ad60e0-5f25-11e9-a734-0aa6b80efab2%7CMyCustomResource%7Ce2fc8f5c-0391-4a65-a645-7c695646739?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170313T0212304Z&X-Amz-SignedHeaders=host&X-Amz-Expires=7200&X-Amz-Credential=QWERTYUIOLASDFGBHNZCV%2F20190415%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=dgvg36bh23mk44nj454bjb54689bg43r8v011uerehiubrjrug5689ghg94hb 'Nota: Para realizar la solicitud, debe incluir los detalles del objeto de la solicitud. Puede encontrar elRequestID y la URL prefirmada de Amazon S3 en sus registros de CloudWatch. Para obtener más información, consulte ¿Cómo elimino un recurso personalizado respaldado por Lambda que está detenido en el estado DELETE_FAILED o DELETE_IN_PROGRESS en CloudFormation?
Información relacionada
Ejecución de una automatización sencilla (consola)
Configuración de Automatización
- Etiquetas
- AWS CloudFormation
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace 5 meses
- preguntada hace un año
- Como solucionar el error: Supplied Policy document is breaching Cloudwatch Logs policy length limit.Respuesta aceptadapreguntada hace un año