前提・実現したいこと
Google Cloud PlatformかAWS lambdaで簡単なpythonコード(twitter botの定期実行)を実行したいです。(以下の質問はAWS lambdaで発生した問題であり、GCPで簡単にコードの定期実行が実現できそうであればそちらを教えていただいても嬉しいです。)
発生している問題・エラーメッセージ
"errorMessage": "Unable to import module 'lambda_function': No module named 'lambda_function'", "errorType": "Runtime.ImportModuleError"
該当のソースコード
python
1import tweepy 2import time 3 4print('hello world!') 5 6def tweet(): 7 8 CONSUMER_KEY = '****' 9 10 CONSUMER_SECRET = '****' 11 12 ACCESS_KEY = '****' 13 14 ACCESS_SECRET = '****' 15 16 auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 17 18 auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 19 20 api = tweepy.API(auth, wait_on_rate_limit=True) 21 22 23 keyword = 'gme' 24 25 tweet_count = 10 26 27 for tweet in tweepy.Cursor(api.search, keyword).items(tweet_count): 28 29 try: 30 31 print('Tweet succeeded') 32 33 tweet.retweet() 34 35 time.sleep(5) 36 37 except tweepy.TweepError as e: 38 print(e.reason) 39 except StopIteration: 40 break 41tweet()
試したこと
最初の頃は上記のエラーの他にも「tweepyやtimeの外部モジュールを読み込めない」といったエラーが出ていたのですが、それらをパッケージとしてpipインストールしてzip形式でlambdaにアップロードした所、今度はlambda_functionが読み取れないと表示されました。
補足情報(FW/ツールのバージョンなど)
私はサーバーレス環境を使うのがこれで始めてであり、上記のソースコードの定期実行も簡単にできるだろうと高を括っていましたが、予想以上にAWSの仕組みが複雑で切羽詰まってしまいました。
初心者故に以上の書いてある以外の設定は全くいじっていないです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。