GOOGLE ADS

martes, 19 de abril de 2022

Lambda desencadena una función en sí misma

Hola tengo una laravelapp con serverlessarquitectura. 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

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...