web-dev-qa-db-ja.com

AWSラムダにpymysqlをインストールする方法

AWSラムダでpymysqlを実行する方法を模索しているので、 ここここ を見てきました。これまで見てきた例は非常に複雑で、GitHubチュートリアルでは、アクセス許可エラーが発生する前にIAMまで到達しましたが、解決方法がわかりませんでした。

文字通り、私ができるようにしたいのは、ビルド済みのAWSラムダコンソールテンプレート内でimport pymysqlを呼び出すことだけです。

単純な問題のように思えますが、ラムダ関数で新しい依存関係を機能させる方法について、明確で段階的な作業を見つけるのに苦労しています。理想的には、AWS CLIを介した例ではnotになります。これは、コンソールオプションがあり、プロセスから頭痛の種を取り除くように思われるためです。 。

乾杯、

アーロン

11
Aaron

Redis pythonライブラリで同様の問題に直面していました。2番目のリンクで述べたのと同じドキュメントの指示に従います。

参考までにスニペットの例を次に示します。

新しいディレクトリを作成しますMyPythonLambdaそしてMyPythonLambda.pyを同じ場所に置きます。

MyPythonLambda/MyPythonLambda.pyがハンドラーを含むメインラムダであると仮定します。

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

S3またはローカルファイルシステムからラムダ作成でZipをアップロード/インポートします。

python mysqlライブラリを含む同様の方法でZipファイルを作成する必要があると思います。

13

TheYoungSoul には 素晴らしいYouTubeの例 これをステップバイステップで行う方法があります。これらの指示に従うと、これは非常に簡単に実行できました。

手順:

  1. ラムダに実装したいルーチンのローカルでテスト可能なバージョンを記述し、この関数を_main.py_と呼びます。 _main.py_の内部には関数_lambda_handler_があり、基本構造はdef lambda_handler(event, context): ...です。

  2. 彼のリポジトリで利用可能なスクリプト_create_deployment.py_を_requirements.txt_と組み合わせて使用​​して、デプロイメントZipファイルを作成します。 Macを使用していて、最初の試行でこのエラーが発生した場合は、 これを行う必要がある場合があります であることに注意してください。

  3. ローカルでテスト可能なサンプルを実行したら、AWSでラムダ関数を作成し、関数を最初から作成する代わりに、コンソールメニューオプションを選択して.Zipファイルをアップロードします

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

3
Aaron

私は初心者なので、アーロンの反応に直接コメントすることはできないので、ここに追加します。 TheYoungSoulには100のリポジトリがあります。 「create_deployment.py」を含むリポジトリは次のとおりです。 AlexaDeploymentSample

0
mumbles