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

149
Vistas
Creación de capas de AWS Lambda con funciones de python personalizadas mediante SAM

Estoy tratando de construir mi función lambda usando SAM. Mi función lambda depende de una función de python personalizada que planeo construir como una capa de AWS Lambda. Mi función de python personalizada tiene una dependencia transitiva en un paquete de python disponible públicamente en PyPI, que especifiqué en el archivo requirements.txt para la capa.

Aquí está la estructura de carpetas para mi función lambda:

 my-lambda-func |-- events |-- event.json |-- my-func |-- my_function.py |-- __init__.py |-- requirements.txt |-- my-layer |-- my_layer.py |-- requirements.txt |-- template.yaml |-- buildspec.yml

Aquí está mi archivo template.yaml:

 AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > sam-test Sample SAM Template for sam-test Globals: Function: Timeout: 300 Resources: MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: my-func/ Handler: app.lambda_handler Layers: - !Ref MyLayer Runtime: python3.8 Events: HelloWorld: Type: Api Properties: Path: /hello Method: get MyLayer: Type: AWS::Serverless::LayerVersion Properties: LayerName: MyLayer Description: My custom Lambda Layer ContentUri: ./my-layer/ CompatibleRuntimes: - python3.8 LicenseInfo: MIT RetentionPolicy: Retain Metadata: BuildMethod: python3.8

Mi archivo buildspec:

 version: 0.2 phases: build: commands: - sam package --template-file template.yaml --s3-bucket my-bucket --output-template-file packaged-template.yml artifacts: files: - packaged-template.yml

cuando ejecuto un comando de sam build localmente, veo que los 2 recursos se crean correctamente, incluida la extracción de las dependencias transitivas para la capa, pero cuando configuro CodePipeline con una fase de compilación para compilar el comando desde el archivo builspec y una fase de implementación usando CloudFormation, la capa no está construido como esperaba. Cuando descargo la capa desde la consola, no muestra ninguna dependencia transitiva.

Alguien ha hecho algo similar a esto. ¿Alguien puede ayudarme con lo que estoy haciendo mal? ¡Gracias!

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

0

Nunca usé Lambda Layer, aunque lo que me llamó la atención con mi buildspec.yml es que no está ejecutando sam build antes del empaquetado. Aquí está mi archivo buildspec, tal vez ayude

 phases: install: runtime-versions: python: 3.7 build: commands: - pip install --upgrade aws-sam-cli - sam build - sam package --output-template-file packaged.yaml --s3-bucket ${FUNCTIONS_BUCKET} artifacts: type: zip files: - packaged.yaml
over 4 years ago · Santiago Trujillo Denunciar

0

Stefano tiene razón, todo lo que estás empaquetando de la capa es la definición. Debe ejecutar sam build antes de empaquetar.

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