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

来自Python的AWS错误:没有名为lambda_function的模块

满才
2023-03-14

我正在创建一个AWS Lambda python部署包。我正在使用一个外部依赖项请求。我使用AWS文档安装了外部依赖项。下面是我的Python代码。

import requests

print('Loading function')

s3 = boto3.client('s3')


def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))

    # Get the object from the event and show its content type
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')
    try:
        response = s3.get_object(Bucket=bucket, Key=key)
        s3.download_file(bucket,key, '/tmp/data.txt')
        lines = [line.rstrip('\n') for line in open('/tmp/data.txt')]
        for line in lines:
            col=line.split(',')
            print(col[5],col[6])
        print("CONTENT TYPE: " + response['ContentType'])
        return response['ContentType']
    except Exception as e:
        print(e)
        print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
        raise e

创建了压缩项目目录的内容并上传到lambda(压缩目录内容,而不是目录)。当我执行函数时,我得到了下面提到的错误。

START RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058 Version: $LATEST
**Unable to import module 'lambda_function': No module named lambda_function**

END RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058
REPORT RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058  Duration: 19.63 ms  Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 9 MB

共有3个答案

闻人越
2023-03-14

此问题的另一个来源是对压缩文件的权限。它必须至少具有全球可读性。(最小chmod 444)

在压缩之前,我在python文件上运行了以下内容,它运行良好。

chmod u=rwx,go=r
司徒运锋
2023-03-14

如果您正在上载zip文件。确保压缩的是目录的内容,而不是目录本身。

易成天
2023-03-14

错误是由于lambda函数的文件名引起的。在创建lambda函数时,它将请求lambda函数处理程序。您必须将其命名为Python\u File\u name。方法\u名称。在这个场景中,我将其命名为lambda。lambda\u处理程序(lambda.py是文件名)。

 类似资料:
  • 我正在尝试导入几个我知道已安装的模块,但我收到了ModuleNotFoundError:没有名为“error”的模块。 你能告诉我如何解决这个问题吗?

  • 运行此代码后,我发现导入错误:- 如何使用google.apengine.ext

  • 我不能使用任何库因为我总是得到这个错误 我装了好几次模块还是不行 (最近一次的最后一次调用最后一次):文件”/(最近最近一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的调用):这次的

  • 我正在构建一个Django应用程序,并且正在迁移到Heroku和Heroku Postgres。当我运行“pythonmanage.pyrunserver”甚至“heroku runpythonmanage.pyrunserver”终端返回错误“错误:没有名为文件名的模块”-文件名是位于我的主项目文件夹中的应用程序文件夹,其中包含我的models.py和views.py文件等。请参阅下面的文件结构

  • 我试图的包,但我得到一个。 有什么想法吗?

  • 我正在尝试安装Scikit并运行一个只有以下内容的python文件: 检查Scikit是否工作。这是我得到的错误: 回溯(最近调用最后):文件“hello-world.py”,第 1 行,在导入 sklearn 文件“/库/蟒蛇/2.7/站点包/sklearn/init.py”,第 57 行,从 .base 导入克隆文件“/库/Python/2.7/站点包/sklearn/base.py”,第 9