Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

295
Vistas
¿Cómo implementar la pila SAM con localstack?

He escrito una pila SAM y puedo compilarla, empaquetarla e implementarla en AWS. También puedo usar start-local o invocar para probar. Ahora necesito probar otros recursos de AWS. He agregado esos recursos a mi plantilla SAM. Funciona bien en AWS, pero estoy buscando una manera de implementar mi pila SAM en localstack (por ejemplo, dynamodb local). Ahora tengo que crear los recursos con la CLI y luego puedo implementar mi pila SAM (solo lambda, API GW en este caso). ¿Cómo puedo hacer esto?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Acabo de pasar por esto. Creo que lo siguiente es correcto.

AWS SAM es una formación en la nube redonda envolvente. Entonces, su plantilla SAM es en realidad una plantilla de Cloudformation. Su plantilla de Cloudformation define sus lambdas y dynamodb, etc. Cuando implementa en AWS, todas sus lambdas y dynamodb van a AWS y puede realizar pruebas en la nube.

Cuando ejecuta AWS SAM localmente, ejecuta su lambda localmente (en un contenedor docker) pero aún accede a los recursos en la nube de AWS.

LocalStack tiene una interfaz de CloudFormation, por lo que debería ser posible implementar su archivo de plantilla de CloudFormation. Pero me encontré con algunos problemas con esto y me di por vencido.

Serverless Framework es similar a AWS SAM en que es un marco para desarrollar su código serverless (lambda) y para implementarlo en AWS. Serverless tiene su propia especificación yaml para definir una pila. Convertir de Cloudformation a Serverless yaml es un poco de trabajo.

Hay un complemento sin servidor para localstack. Entonces es posible implementar su código en localstack. Si tiene API Gateway frente a sus lambdas, habrá una URL local a la que puede acceder que activa sus lambdas. Esto está completamente dentro de localstack y no usa AWS SAM.

En este punto, es posible que su código aún llegue a los servicios reales de AWS. Por lo tanto, debe cambiar la URL del punto final para que apunte localmente, como mencionó Andrew A. Para esto, y para mantener su código igual para prueba y producción, puede usar variables de entorno para cada uno de los puntos finales del servicio.

Como menciona Andrew A., debería ser posible ejecutar código usando SAM local que accede a los recursos proporcionados por localstack. Sin embargo, puede ser preferible mantener una herramienta, si esto se hizo dentro de una tubería de prueba, por ejemplo.

over 4 years ago · Santiago Trujillo Denunciar

0

Después de algunas investigaciones, la forma más confiable es

  1. sam build compila y comprime tu zip en .aws-sam/build
 $ cd .aws-sam/build $ zip -qr MyLambda.zip MyLambda $ tree .aws-sam -L 2 .aws-sam ├── build │  ├── MyLambda.zip │  ├── MyLambda │  └── template.yaml └── build.toml 2 directories, 3 files
  1. Implemente el código comprimido en localstack lambda, digamos que tengo una base de código nodejs
 aws --endpoint-url=http://localhost:4566 lambda create-function \ --function-name "my-lambda" --runtime=nodejs12.x --role dummy \ --zip-file=fileb:.aws-sam/build/MyLambda.zip \ --handler MyLambda/src/index.handler
over 4 years ago · Santiago Trujillo Denunciar

0

Los creadores de Localstack han creado un envoltorio liviano para el sam cli. Simplemente use pip para instalar samlocal como una biblioteca de Python en su máquina:

pip install aws-sam-cli-local

A continuación, puede realizar la implementación en la pila local utilizando samlocal deploy en lugar de sam deploy deployment normal. Algo como lo siguiente:

samlocal deploy --stack-name sam-app --capabilities CAPABILITY_IAM --guided

Para obtener más detalles sobre las opciones disponibles en sam deployment, consulte los documentos aquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda