Mi valor controlado de Amazon CloudWatch en una nube virtual privada (VPC) recibe un error y falla.
Descripción corta
Al crear un valor controlado en una VPC, Amazon CloudWatch Synthetics crea automáticamente una función de AWS Lambda con una interfaz de red elástica en las subredes de VPC especificadas. Estas interfaces de red elásticas no reciben direcciones IP públicas de forma predeterminada, incluso si las agregas a subredes públicas.
Para escribir registros en Amazon Simple Storage Service (Amazon S3) y publicar puntos de datos en CloudWatch, el valor controlado debe tener acceso al punto de enlace de Amazon S3 y al punto de enlace de supervisión de red de CloudWatch.
Si tu valor controlado no puede acceder a ninguno de estos puntos de enlace, recibirás uno de los siguientes mensajes de error:
"TimeoutError: Navigation Timeout Exceeded:30000ms exceeded"
"No test result returned. Connection timed out after 30000ms and No artifacts were uploaded"
Para probar la conectividad a Internet de tu valor controlado, usa el analizador de accesibilidad de VPC.
Resolución
Resolución de errores "Navigation timeout"
Debes configurar correctamente el grupo de seguridad, la lista de control de acceso de la red (ACL de la red) y la tabla de enrutamiento para permitir el acceso al punto de enlace del valor controlado. El periodo de tiempo de espera configurado para el punto de enlace supervisado debe ser superior al tiempo de respuesta del punto de enlace.
Confirma que el grupo de seguridad adjunto al valor controlado contenga las siguientes propiedades:
- El grupo de seguridad debe tener una regla de salida que permita las conexiones entre el puerto configurado y la dirección IP del punto de enlace supervisado.
- El grupo de seguridad debe permitir el tráfico saliente al puerto 443. Se puede acceder a los puntos de enlace de Amazon S3 y supervisión de CloudWatch a través de HTTPS. Si no existe una regla de salida, agrégala. Cuando agregues una regla de salida, utiliza HTTPS (puerto TCP 443) para el tipo y 0.0.0.0/0 para el destino.
- La ACL de la red de la subred del valor controlado debe permitir el acceso entrante y saliente.<br id=hardline_break/>
Para el acceso entrante, permite que los puertos efímeros accedan a la dirección de origen y al puerto de la dirección IP de tu punto de enlace. Permite que los puertos efímeros accedan a 0.0.0.0/0 para el puerto 443.<br id=hardline_break/>
Para el acceso saliente, permite el acceso a la dirección de destino y al puerto de la dirección IP de tu punto de enlace. Permite que el destino acceda a 0.0.0.0/0 para el puerto 443.
- Abre el valor controlado y, a continuación, selecciona Configuraciones adicionales para confirmar que tu punto de enlace responde dentro del periodo de tiempo de espera configurado.
A continuación, ejecuta el siguiente comando para averiguar el tiempo de respuesta de tu punto de enlace:
time curl http/(s)://YOUR ENDPOINT IP/DNS:PORT
Nota: Sustituye YOUR ENDPOINT IP/DNS por tu dirección IP o DNS y PORT por el número de puerto de TCP.
Por último, en el código del valor controlado, cambia el valor del tiempo de espera del latido para superar el tiempo de respuesta del punto de enlace:
const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000});
Por ejemplo, si la configuración es «const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000});» y tu punto de enlace tarda 35 segundos en responder, cambia el valor de tiempo de espera para que supere los 35 000 milisegundos.
Resolución de errores "No artifacts were uploaded" o "No test result returned"
Si no hay puntos de datos en las métricas de valores controlados, significa que el valor controlado necesita acceso al punto de enlace de supervisión de red de CloudWatch. Si hay puntos de datos en las métricas de valores controlados, significa que el valor controlado necesita acceso al punto de enlace de Amazon S3. Ten en cuenta que el valor de 30 000 ms refleja el periodo de tiempo de espera que configuraste en el valor controlado.
Para permitir que tu valor controlado acceda a los puntos de enlace de Amazon S3 y supervisión de CloudWatch, elige uno de los siguientes enfoques:
- Usa una puerta de enlace de NAT para agregar el valor controlado a subredes privadas y enrutar el tráfico de la subred privada a Internet.
- Utiliza los puntos de enlace de la VPC y agrega el valor controlado a las subredes privadas para permitir la conectividad privada a los servicios de AWS.
Uso de una puerta de enlace de NAT
Crea una puerta de enlace de NAT. A continuación, actualiza la tabla de enrutamiento de la subred privada del valor controlado. Para obtener información sobre las puertas de enlace de NAT como destino en una tabla de enrutamiento, consulta Enrutar a un dispositivo NAT.
Uso de puntos de enlace de VPC
Crea un punto de enlace de puerta de enlace para el punto de enlace de Amazon S3.<br id=hardline_break/>
Nota: En Nombre del servicio, busca Amazon S3 y, a continuación, selecciona com.amazonaws.region.s3.
A continuación, crea un punto de enlace de VPC de interfaz para el punto de enlace de supervisión de red de CloudWatch. En Configuraciones adicionales, selecciona Habilitar nombre DNS.<br id=hardline_break/>
Nota: En Nombre del servicio, busca supervisión y, a continuación, selecciona com.amazonaws.[region].monitoring.