簡體   English   中英

如何在 AWS Lambda 中直接導入 Google 模塊?

[英]How do I import a Google Module directly in 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'",

您必須將 google 庫添加到您的部署包中。 根據您的部署過程,有多種方法可以進行。 文檔是開始學習的好地方。

順便說一句,您可以使用來自 AWS 的名為Transcribe的語音轉文本,而不是 Google 的語音轉文本。 你不必安裝任何額外的庫來使用它, boto3就可以了。

檢查用於安裝依賴項的 python 版本並在 aws Lambda 中提供相同的運行時。 我使用 python 3.8 進行安裝並在運行時提供了 3.7 並遇到了這個錯誤。

更好的方法是創建一個名為requirements.txt的文件並在其中添加所有依賴項

google-cloud-speech==0.36.0

據我了解,這個問題可以通過在 Lambda 中添加所需的模塊作為層來解決。 然后它將可用於您的腳本。

此外,該層將來可以重新用於其他 Lambda。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM