Estoy tratando de crear una aplicación AWS SAM con varias funciones sin servidor de AWS.
La aplicación tiene 1 archivo template.yaml que tiene recursos de 2 funciones lambda sin servidor diferentes, por ejemplo, "Consumer Lambda" y "Worker Lambda". El consumidor se activa a una velocidad de 5 minutos. El consumidor usa la biblioteca boto3 para activar la función lambda del trabajador. Este código funciona cuando el trabajador lambda se implementa en AWS.
Pero quiero probar ambas funciones localmente con Sam invocar localmente a "Consumidor" que invoca a "Trabajador" también localmente.
Aquí hay una captura de pantalla del archivo YAML:
Estoy usando Pycharm para ejecutar el proyecto. Hay una opción para ejecutar solo 1 función a la vez que luego crea solo una carpeta en la carpeta de compilación.
Tengo que probar si Consumer puede invocar al trabajador localmente en pycharm antes de la implementación. Creo que hay alguna manera de hacerlo, pero no estoy seguro de cómo hacerlo. Hice una búsqueda exhaustiva pero no arrojé nada.
Cualquier ayuda es apreciada. Gracias por adelantado
Puede iniciar el punto final de invocación de lambda de la siguiente manera ( documentos oficiales):
sam local start-lambdaAhora puede apuntar su cliente de recursos de AWS al puerto 3001 y activar las funciones localmente.
Por ej. Si está haciendo esto en Python, se puede lograr de la siguiente manera con boto3:
boto3 # Create a lambda client lambda_client = boto3.client('lambda', region_name="<localhost>", endpoint_url="<http://127.0.0.1:3001>", use_ssl=False, verify=False) # Invoke the function lambda_client.invoke(FunctionName=<function_name>, Payload=<lambda_payload>)