AWSラムダでpymysql
を実行する方法を模索しているので、 ここ と ここ を見てきました。これまで見てきた例は非常に複雑で、GitHubチュートリアルでは、アクセス許可エラーが発生する前にIAMまで到達しましたが、解決方法がわかりませんでした。
文字通り、私ができるようにしたいのは、ビルド済みのAWSラムダコンソールテンプレート内でimport pymysql
を呼び出すことだけです。
単純な問題のように思えますが、ラムダ関数で新しい依存関係を機能させる方法について、明確で段階的な作業を見つけるのに苦労しています。理想的には、AWS CLIを介した例ではnotになります。これは、コンソールオプションがあり、プロセスから頭痛の種を取り除くように思われるためです。 。
乾杯、
アーロン
Redis pythonライブラリで同様の問題に直面していました。2番目のリンクで述べたのと同じドキュメントの指示に従います。
参考までにスニペットの例を次に示します。
新しいディレクトリを作成しますMyPythonLambdaそしてMyPythonLambda.pyを同じ場所に置きます。
MyPythonLambda/MyPythonLambda.pyがハンドラーを含むメインラムダであると仮定します。
cd MyPythonLambda/
pip install redis -t .
Zip -r MyPythonLambda.Zip *
S3またはローカルファイルシステムからラムダ作成でZipをアップロード/インポートします。
python mysqlライブラリを含む同様の方法でZipファイルを作成する必要があると思います。
TheYoungSoul には 素晴らしいYouTubeの例 これをステップバイステップで行う方法があります。これらの指示に従うと、これは非常に簡単に実行できました。
手順:
ラムダに実装したいルーチンのローカルでテスト可能なバージョンを記述し、この関数を_main.py
_と呼びます。 _main.py
_の内部には関数_lambda_handler
_があり、基本構造はdef lambda_handler(event, context): ...
です。
彼のリポジトリで利用可能なスクリプト_create_deployment.py
_を_requirements.txt
_と組み合わせて使用して、デプロイメントZipファイルを作成します。 Macを使用していて、最初の試行でこのエラーが発生した場合は、 これを行う必要がある場合があります であることに注意してください。
ローカルでテスト可能なサンプルを実行したら、AWSでラムダ関数を作成し、関数を最初から作成する代わりに、コンソールメニューオプションを選択して.Zipファイルをアップロードします。
RDSリソースにアクセスできるカスタムロールを作成し、接続するDBを同じVPCグループに配置してください。関数を設定するときは、ラムダ関数にVPCアクセスを許可するように指定します。
私は初心者なので、アーロンの反応に直接コメントすることはできないので、ここに追加します。 TheYoungSoulには100のリポジトリがあります。 「create_deployment.py」を含むリポジトリは次のとおりです。 AlexaDeploymentSample