如何直接在AWS Lambda中导入Google模块?

时间:2019-01-18 13:55:37

标签: python aws-lambda

我正在尝试通过Lambda函数处理来自我的S3的音频文件,该函数应将google语音API调用到该文件的语音转文本。但是,Lambda似乎没有安装此模块。

是否可以从外部/手动导入模块?

import json
import boto3
import array as arr
import botocore
from botocore.vendored import requests
import os
import urllib
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types

def lambda_handler(event, context):
    output = 'test'
    return output

预期是导入有效,但是错误输出如下:

"errorMessage": "Unable to import module 'lambda_function': No module 
   named 'google'",

3 个答案:

答案 0 :(得分:1)

您必须将Google库添加到您的部署包中。根据您的部署过程,有多种实现方法。 documentation是开始学习此内容的好地方。

顺便说一句,您可以使用来自AWS的Transcribe代替Google的语音转文本。您无需安装任何其他库即可使用它,boto3可以做到。

答案 1 :(得分:1)

检查用于安装依赖项的 python 版本并在 aws Lambda 中提供相同的运行时。我使用 python 3.8 进行安装并在运行时给出 3.7 并遇到此错误。

答案 2 :(得分:0)

一种更好的方法是创建一个名为requirements.txt的文件,并在其中添加所有依赖项

google-cloud-speech==0.36.0