Hola tengo una laravel
app con serverless
arquitectura. Estoy recibiendo un error:
cURL error 28: Failed to connect to fnhxdorrd22l.execute-api.ap-southeast-1.amazonaws.com port 443 after 7502 ms: Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://fnhxdorrdl22.execute-api.ap-southeast-1.amazonaws.com/oauth/token
¿Hay alguna necesidad de configuración para esta o alguna regla de entrada para llamar a una función dentro de una función? Por cierto, funciona si se trata de una simple llamada o solicitud sin ninguna llamada o activación a otra ruta o a terceros.
Sin servidor.yml
service: laravel
provider:
name: aws
# The AWS region in which to deploy (us-east-1 is the default)
region: ap-southeast-1
# The stage of the application, e.g. dev, production, staging… ('dev' is the default)
stage: dev
profile: serverless
runtime: provided.al2
lambdaHashingVersion: 20201222321
package:
# Directories to exclude from deployment
patterns:
- '!node_modules/**'
- '!public/storage'
- '!resources/assets/**'
- '!storage/**'
- '!tests/**'
- 'storage/oauth-private.key'
- 'storage/oauth-public.key'
functions:
# This function runs the Laravel website/API
web:
handler: public/index.php
timeout: 28 # in seconds (API Gateway has a timeout of 29 seconds)
vpc:
securityGroupIds:
- sg-042d6942052649ad59b0bc0
subnetIds:
- subnet-2c1464319824244
- subnet-474851e914424e4
- subnet-4424429f48129d7
layers:
- ${bref:layer.php-80-fpm}
events:
- httpApi: '*'
# This function lets us run artisan commands in Lambda
artisan:
handler: artisan
timeout: 120 # in seconds
layers:
- ${bref:layer.php-80} # PHP
- ${bref:layer.console} # The "console" layer
Solución del problema
Una función de Lambda configurada para ejecutarse en una VPC nunca obtiene una dirección IP pública (independientemente de la configuración de IP pública de la VPC). La URL de API Gateway es una URL pública en Internet. Esa URL de API Gateway no existe dentro de la VPC. Para que la función Lambda se conecte a esa URL, la función debe configurarse para ejecutarse en una subred de VPC privada que tenga una ruta a una puerta de enlace NAT.
No hay comentarios:
Publicar un comentario