質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

1900閲覧

【Python】AWS lambdaへのzipアップロードの際の外部パッケージエラーを解決したい。

jimxx

総合スコア8

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

2クリップ

投稿2018/07/08 04:27

編集2018/07/08 04:40

Alexaを購入したので、AWS lambdaでPythonのプログラムを作成しています。

これまでもいくつか簡単なのは作成したのですが、この度Google Calender APIを利用するプログラムをローカルで作成し、LambdaにZIPでアップロードし実行したところ以下のエラーが発生しました。

Response: { "errorMessage": "Unable to import module 'MorningTask/lambda_function'" } Function Logs: Unable to import module 'lambda_function': attempted relative import with no known parent package

調べてみたところ、pipでインストールしたパッケージごとlambdaにアップロードする必要があり、lambda-uploaderというパッケージを使うと便利だということがわかりました。
が、インストールしたものの使い方がイマイチわかりません。
参考にしたのは以下のサイトです。
AWS Lambda Pythonをlambda-uploaderでデプロイ

windowsコマンドプロンプトを使用していますが、そもそも使い方が誤っているのでしょうか?
PythonもLambdaも初心者のため、ご教示お願いいたします。
ローカルからLambdaを操作したりなどはする必要なく、あくまでローカルで作成したプログラムをLambdaにアップロードしたいだけですので、よろしくお願いします。

以下コマンドプロンプトのログです。

C:\Python>python -m pip freeze awscli==1.15.53 boto3==1.7.52 botocore==1.10.52 cachetools==2.1.0 colorama==0.3.9 docutils==0.14 gdata==2.0.18 google-api-python-client==1.7.3 google-auth==1.5.0 google-auth-httplib2==0.0.3 httplib2==0.11.3 jmespath==0.9.3 lambda-uploader==1.3.0 oauth2client==4.1.2 pyasn1==0.4.3 pyasn1-modules==0.2.2 python-dateutil==2.7.3 pytz==2018.5 PyYAML==3.12 rsa==3.4.2 s3transfer==0.1.13 six==1.11.0 uritemplate==3.0.0 virtualenv==16.0.0 C:\Python> C:\Python> C:\Python>python -m lambda-uploader C:\Python\Python37\python.exe: No module named lambda-uploader

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimxx

2018/07/14 01:29

当初のlambda-uploaderをどう使うかという質問の回答は頂きましたので、一旦閉めさせていただきます。Lambda-uploaderのエラーについては改めて質問いたします。ありがとうございました。
guest

回答1

0

ベストアンサー

python -c "from lambda_uploader.shell import main; main()" --helpで起動できました。

もしくはlambda-uploader.exeへのPATHを通すとドキュメントどおりに使えるようになると思います。

pip show -f

投稿2018/07/08 23:46

YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimxx

2018/07/09 06:25 編集

ご回答ありがとうございます。 お教えいただいた通り、lambda-uploader.exeを実行することができました。 しかし、今度はPythonのバージョンが違うというエラーを吐かれてしまいました・・・ 2.7は使用していません。よろしくお願いします。 """ C:\Python>python -m pip show -f lambda-uploader Name: lambda-uploader Version: 1.3.0 Summary: AWS Python Lambda Packager Home-page: https://github.com/rackerlabs/lambda-uploader Author: Rackers Author-email: None License: Apache 2.0 Location: c:\Python\python37\lib\site-packages Requires: boto3, botocore, virtualenv Required-by: Files: ....\Scripts\lambda-uploader-script.py ....\Scripts\lambda-uploader.exe lambda_uploader-1.3.0-py3.7.egg-info\PKG-INFO lambda_uploader-1.3.0-py3.7.egg-info\SOURCES.txt lambda_uploader-1.3.0-py3.7.egg-info\dependency_links.txt lambda_uploader-1.3.0-py3.7.egg-info\entry_points.txt lambda_uploader-1.3.0-py3.7.egg-info\requires.txt lambda_uploader-1.3.0-py3.7.egg-info\top_level.txt lambda_uploader\__init__.py lambda_uploader\__pycache__\__init__.cpython-37.pyc lambda_uploader\__pycache__\config.cpython-37.pyc lambda_uploader\__pycache__\package.cpython-37.pyc lambda_uploader\__pycache__\shell.cpython-37.pyc lambda_uploader\__pycache__\subscribers.cpython-37.pyc lambda_uploader\__pycache__\uploader.cpython-37.pyc lambda_uploader\__pycache__\utils.cpython-37.pyc lambda_uploader\config.py lambda_uploader\package.py lambda_uploader\shell.py lambda_uploader\subscribers.py lambda_uploader\uploader.py lambda_uploader\utils.py C:\Python> C:\Python> C:\Python>cd C:\Python\Python37\Lib\site-packages\lambda_uploader\MorningTask C:\Python\Python37\Lib\site-packages\lambda_uploader\MorningTask> C:\Python\Python37\Lib\site-packages\lambda_uploader\MorningTask>C:\Python\Python37\Scripts\lambda-uploader.exe Building Package ⁉️ Unexpected error. Please report this traceback. Uploader: 1.3.0 Botocore: 1.7.52 Boto3: 1.10.52 Traceback (most recent call last): File "C:\Python\Python37\lib\site-packages\lambda_uploader\shell.py", line 194, in main _execute(args) File "C:\Python\Python37\lib\site-packages\lambda_uploader\shell.py", line 85, in _execute pyexec=cfg.runtime) File "C:\Python\Python37\lib\site-packages\lambda_uploader\package.py", line 51, in build_package pkg.build(ignore) File "C:\Python\Python37\lib\site-packages\lambda_uploader\package.py", line 79, in build self.install_dependencies() File "C:\Python\Python37\lib\site-packages\lambda_uploader\package.py", line 151, in install_dependencies self._build_new_virtualenv() File "C:\Python\Python37\lib\site-packages\lambda_uploader\package.py", line 177, in _build_new_virtualenv python_exe = self._python_executable() File "C:\Python\Python37\lib\site-packages\lambda_uploader\package.py", line 196, in _python_executable .format(self._pyexec)) Exception: Unable to locate python2.7 executable """
YouheiSakurai

2018/07/09 07:07

触った事ないので詳しくは知りませんが設定の中でruntimeをPython 2.7に指定してたりしませんか?
jimxx

2018/07/09 07:56

早速のご回答ありがとうございます。 インストールしたあとに特になにも設定等していないので、自分でFilesの中を探してみようと思います。
YouheiSakurai

2018/07/09 08:08

インストール後、何もしなければ以下のエラーが出ますよ。lambda.jsonが多分設定なんじゃないですか? Traceback (most recent call last): File "C:\Users\sakurai\AppData\Roaming\Python\Python37\site-packages\lambda_uploader\shell.py", line 194, in main _execute(args) File "C:\Users\sakurai\AppData\Roaming\Python\Python37\site-packages\lambda_uploader\shell.py", line 58, in _execute variables=args.variables) File "C:\Users\sakurai\AppData\Roaming\Python\Python37\site-packages\lambda_uploader\config.py", line 45, in __init__ self._load_config(config_file) File "C:\Users\sakurai\AppData\Roaming\Python\Python37\site-packages\lambda_uploader\config.py", line 192, in _load_config raise Exception("%s not a valid configuration file" % lambda_file) Exception: lambda.json not a valid configuration file
jimxx

2018/07/11 12:43

返信遅れて申し訳ありません。 lambda.jsonの中身は以下の通りでバージョンは指定していません。 { "name": "MorningTask", "description": "DESCRIPTION", "region": "ap-northeast-1", "handler": "lambda_function.lambda_handler", "role": "arn:aws:iam::999999999999:role/lambda_basic_execution", "timeout": 300, "memory": 128 }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問