当前位置: 首页 > 知识库问答 >
问题:

AWS Lambda“Lambda找不到文件lambda_function.py。误差

杜俊风
2023-03-14

我得到“lambda找不到文件lambda_function.py。请确保您的处理程序支持格式:file-name.method。”AWS Lambda函数代码块上方出现错误。你可以在这里看到警告

import boto3
import os
import logging
import uuid
from webdriver_screenshot import WebDriverScreenshot

logger = logging.getLogger()
logger.setLevel(logging.INFO)

s3 = boto3.client('s3')

def lambda_handler(event, context):
    logger.info('## ENVIRONMENT VARIABLES')
    logger.info(os.environ)
 
    screenshot_file = "{}-{}".format(''.join(filter(str.isalpha, os.environ['URL'])), str(uuid.uuid4()))
    driver = WebDriverScreenshot()

    logger.info('Generate fixed height screenshot')
    driver.save_screenshot(os.environ['URL'], '/tmp/{}-fixed.png'.format(screenshot_file), height=1024)

    logger.info('Generate full height screenshot')    
    driver.save_screenshot(os.environ['URL'], '/tmp/{}-full.png'.format(screenshot_file))

    driver.close()

    if all (k in os.environ for k in ('BUCKET','DESTPATH')):
        ## Upload generated screenshot files to S3 bucket.
        s3.upload_file('/tmp/{}-fixed.png'.format(screenshot_file), 
                    os.environ['BUCKET'], 
                    '{}/{}-fixed.png'.format(os.environ['DESTPATH'], screenshot_file))
        s3.upload_file('/tmp/{}-full.png'.format(screenshot_file), 
                    os.environ['BUCKET'], 
                    '{}/{}-full.png'.format(os.environ['DESTPATH'], screenshot_file))

我的代码文件夹是这样的,主要的python代码在src文件夹中。在AWS Lambda中,我的文件夹如下所示。我不明白问题出在哪里。

更糟糕的是,当我试图在AWS Lambda环境中测试代码时,出现了这个错误。上面写着:

无法导入模块“lambda_function”:没有名为“boto3”的模块

谢了。

共有1个答案

鲁钱明
2023-03-14

当我试图在lambda_function中使用外部模块时,我也遇到了同样的问题,在我的例子中是OpenCV作为lambda层。为了使Opencv工作,我必须更改环境变量,使键PythonPath具有/opt/的值,如本教程所述。然后我遇到了与您描述的无法导入模块'lambda_function':没有名为'boto3'的模块,奇怪的是boto3被集成在lambda的路径中。在我的理解中,只是与目录的冲突。

对我来说,它解决的方法是将环境变量的值从/opt/更改为/opt://var/runtime。希望能帮到你。

 类似资料:
  • 问题内容: 即使激活了所有“应用程序开发功能”,我也正在使用“ Internet信息服务7.5”上的AJAX调用来获取JSON文件的“ ERROR 404.3 Not Found”。除JSON文件外,所有其他文件都将被加载。 我在本地计算机上的IIS服务器上运行HTML页面。 如果我直接打开文件,则完全没有问题。当我将文件托管在在线服务器上时,它可以正常工作。 任何快速帮助将不胜感激。 问题答案:

  • 我收到一个错误,这个读取while循环。即使我用打印所有内容,它也会显示count tt==0。这意味着,while循环甚至不工作? 尝试捕获输入。 这是我有问题的代码。 这是我正在阅读的文本文件

  • 问题内容: 我最近一直在开发一个程序,该程序可以从Java程序编译并运行C ++程序,我已经使一切基本正常(或至少据我所知),但是后来我注意到有些东西被打印到错误流中: 如您所见,如果我通过SSH而不是Java代码进行操作,它会起作用吗? Java代码: 感谢您的任何帮助,它已得到批准! 问题答案: 告诉你问题所在。 您的一级引号过多,因此您正在寻找而不是。 该的Runtime.exec文档说:

  • 在spring Java框架中,我使用context.xml文件创建bean,然后用加载它。 我的程序抛出异常。 文件存在。我使用Gradle进行依赖关系管理,并且我的src文件夹(文件所在的位置)在intellij中标记为resource。我知道由于某种原因,即使我的src文件夹应该包含在classpath变量中,但gradle run任务只是不能从这里抓取它。 当我使用时,所有的工作都很好,但

  • PhpStorm 2021.1.1 Mac M1 11.3 当我尝试使用或查找文件时,PhpStorm未能找到该文件。似乎正在尝试从目录,而不是在项目目录中搜索。 我试图< code >文件|无效缓存,运气不好。有人能帮忙吗?