2016-11-10 85 views
5

AWSラムダでpymysqlを実行する方法を試しているので、私はherehereを見ました。私がこれまで見てきた例は非常に複雑であり、私は私が解決する方法を知りませんでした権限エラーに実行を開始する前に、GitHubのチュートリアルと私は限りIAMとして得ました。AWSラムダにpymysqlをインストールするには

文字通り、私ができることを望むのは、あらかじめ組み立てられたAWSラムダコンソールテンプレート内でimport pymysqlを呼び出すことだけです。

これは単純な問題のようですが、私のラムダ機能のために新しい依存関係をどのように働かせるかを明確に段階的に調べるのは難しいです。理想的には例が明らかにconsoleオプションはありません AWS CLI経由することにより、あろうから、それはプロセスのうちの頭痛のいくつかを取るように、これはそうです。

乾杯、

アーロン

+0

「簡単なシナリオ - カスタムコードでAWS SDKライブラリのみが必要な場合は、AWS Lambdaコンソールでインラインエディタを使用できます」*それ以外の場合は、コンソールエディタを使用します。これはシンプルなプロトタイプと "hello、world"タイプのコードのためだけです。デプロイメントパッケージが必要です。 –

+0

これは答えです。展開パッケージを回避する方法はありません。本当にありがとう!コンソールを使用して少なくともAWS CLIではなくGUIを介してパッケージをアップロードする方法に関するヒントを教えてください。 – Aaron

+0

私はプロセス全体が一見したところで圧倒的に不明瞭だと認めますが、あなたがそのアイデアを得るとかなり簡単です。私の経験は、Pythonではなくノードにありますが、@ PankajChandankarにはあなたの解決策があります。ラムダコードを持つワークステーションディレクトリからパッケージの "ローカルインストール"を行い、そのディレクトリの全内容をzipファイルの "root"にあるコードとともに圧縮します。 –

答えて

6

私はRedisの Pythonライブラリと同様の問題に直面していました。 私はあなたの2番目のリンクに記載された同じ文書の指示に従ってください。ご参考のためにスニペットここ

は一例です。

はMyPythonLambda新しいディレクトリを作成し、同じでMyPythonLambda.pyを置きます。

と仮定してください。MyPythonLambda/MyPythonLambda.pyは、ハンドラを含むメインのラムダです。

cd MyPythonLambda/ 
pip install redis -t . 
zip -r MyPythonLambda.zip * 

アップロード/ S3からラムダの作成やローカルファイルシステムにおける輸入ジップ。

私はあなたのPythonのMySQLライブラリを含む同様の方法でzipファイルを作成する必要があると思います。

1

TheYoungSoulには、この手順を実行する方法のfantastic YouTube exampleがあります。私はこれらの指示に従ったら、これを行うのはかなり簡単でした。

ステップ:

  1. は、私は、ラムダに実装し、この機能main.pyを呼び出したいルーチンのローカルで検証可能なバージョンを書きます。 main.pyは、展開zipファイルを作成するために、requirements.txtと一緒に、彼のレポで利用可能なスクリプトcreate_deployment.pyを使用し、基本的な構造def lambda_handler(event, context): ...

  2. を持っている機能、それの内部lambda_handlerを、持っています。あなたがMacと最初の試みmay need to do thisにこのエラーアウトにしている場合があります。代わりに、最初から機能を書くの

  3. 、実行してローカルでテスト可能な例を持っていたら、AWS上のラムダ関数を作成し、.zipファイルをアップロードするためのコンソールメニューオプションを選択します。

  4. RDSリソースにアクセスできるカスタムロールを作成し、接続するDBを同じVPCグループに配置してください。関数を設定するときは、ラムダ関数にVPCアクセスを許可するように指定します。

関連する問題