Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

875
Visualizações
Cómo crear una capa en la función lambda

Pasos seguidos para crear

  1. Crea un entorno virtual y actívalo
  2. pip instalar búsqueda elástica
  3. Comprima la carpeta dentro de site-packages.zip

4.Crear capa en AWS (digamos que el nombre es elastic )

  1. Agregue el código a continuación en lambda_handler y agregue la capa elastic

A continuación se muestra el código

 import json from elasticsearch import Elasticsearch, RequestsHttpConnection def lambda_handler(event, context): # TODO implement return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }

Todavía recibí "errorMessage": "Unable to import module 'lambda_function': No module named 'elasticsearch'",

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si me lo permite, me gustaría recomendar una técnica alternativa que nunca me ha fallado. La técnica incluye la herramienta docker descrita en el reciente blog de AWS :

  • ¿Cómo creo una capa Lambda usando un entorno Lambda simulado con Docker?

Por lo tanto, para esta pregunta, lo verifiqué usando elasticsearch de la siguiente manera:

  1. Cree una carpeta vacía, por ejemplo, mylayer .

  2. Vaya a la carpeta y cree el archivo requirements.txt con el contenido de

 elasticsearch
  1. Ejecute el siguiente comando docker (puede ajustar la versión de python a sus necesidades):
 docker run -v "$PWD":/var/task "lambci/lambda:build-python3.8" /bin/sh -c "pip install -r requirements.txt -t python/lib/python3.8/site-packages/; exit"
  1. Crear capa como zip:
 zip -r elastic.zip python > /dev/null
  1. Cree una capa lambda basada en elastic.zip en la consola de AWS. No olvide especificar los tiempos de Compatible runtimes con python3.8 .

  2. Pruebe la capa en lambda usando la siguiente función lambda:

 import json from elasticsearch import Elasticsearch, RequestsHttpConnection def lambda_handler(event, context): # TODO implement print(dir(Elasticsearch)) return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }

La función se ejecuta correctamente:

 ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'bulk', 'clear_scroll', 'close', 'count', 'create', 'delete', 'delete_by_query', 'delete_by_query_rethrottle', 'delete_script', 'exists', 'exists_source', 'explain', 'field_caps', 'get', 'get_script', 'get_script_context', 'get_script_languages', 'get_source', 'index', 'info', 'mget', 'msearch', 'msearch_template', 'mtermvectors', 'ping', 'put_script', 'rank_eval', 'reindex', 'reindex_rethrottle', 'render_search_template', 'scripts_painless_execute', 'scroll', 'search', 'search_shards', 'search_template', 'termvectors', 'update', 'update_by_query', 'update_by_query_rethrottle']
over 4 years ago · Santiago Trujillo Relatório

0

Como @Marcin ya menciona una opción, se requiere que Docker esté instalado en la máquina de destino. Si desea omitir la ventana acoplable, puede usar el siguiente script para crear y publicar una capa en AWS.

Todo lo que necesita

 ./creater_layer.sh <package_name> <layer_name> ./creater_layer.sh elasticsearch my-layer

guión creater_layer.sh

 path="app" package="${1}" layername="${2}" mkdir -p $path pip3 install "${package}" --target "${path}/python/lib/python3.8/site-packages/" cd $path && zip -r ../lambdalayer.zip . aws lambda publish-layer-version --layer-name "${layername}" --description "My layer" --license-info "MIT" --zip-file "fileb://../lambdalayer.zip" --compatible-runtimes python3.8
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda