[英]Can't import external Python library (tweepy) in AWS Lambda function
我對這種事情完全是個業余愛好者。 我正在嘗試將我的小 Twitter 機器人從 Heroku 移動到 AWS Lambda,但 Tweepy 似乎正在引起麻煩。 我認為問題完全在於導入模塊,但這是我的lambda_function.py
文件中的所有內容,以防萬一。
import tweepy
import random
import os
import json
ckey = os.getenv('ckey')
csec = os.getenv('csec')
atok = os.getenv('atok')
atos = os.getenv('atos')
def lambda_handler(event, context):
# TODO implement
tweet()
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
def tweet():
client = tweepy.Client(consumer_key=ckey, consumer_secret=csec, access_token=atok, access_token_secret=atos)
quote = random.choice(list(open('quotes.txt')))
client.create_tweet(text = quote)
我知道我需要上傳任何外部包作為 Lambda 層,我確實這樣做了(並嘗試了多種不同的方式)。 我目前上傳的 zip 文件作為 function 的層看起來像這樣,除了每個庫的文件夾的 dist-info 文件夾,我沒有在這里包括。
tweepylayer.zip
└───python
└───python310
└───lib
└───site-packages
└───bin
│ certifi
│ charset_normalizer
│ idna
│ oauthlib
│ requests
│ requests_oauthlib
│ tweepy
│ urllib3
每次我嘗試測試 function 時,都會出現此錯誤。
{
"errorMessage": "Unable to import module 'lambda_function': No module named 'tweepy'",
"errorType": "Runtime.ImportModuleError",
"requestId": "1a06e902-f8b9-4c3b-b671-8934d4183dc3",
"stackTrace": []
}
非常感謝您,非常感謝任何能夠提供幫助的人,我仍在努力解決這些問題。 我很抱歉這篇文章太長了,我不確定什么需要或不需要包括在內。
Lambda Python 運行時不支持此文件夾層次結構。 模塊需要安裝在python
目錄或python/lib/python3.10/site-packages
目錄下並壓縮。
tweepylayer.zip
└───python
└───certifi
└───charset_normalizer
└───idna
└───oauthlib
└───requests
└───requests_oauthlib
└───tweepy
└───urllib3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.