ヤマムギ

growing hard days.

*

Lambda関数をPython3.6から3.9に変更

   

CodeGuru ProfilerでLambda関数(Python 3.9)のパフォーマンスを確認したでPython3.8と3.9が対象なので、それまで3.6で実行していたLambda関数のランタイムを3.9にしました。

「 [Action Required] AWS Lambda end of support for Python 3.7」のメールも2023/9/9に来てますし、いつまで3.6のままなんだとお叱りを受けそうです。
エラー対応を記録しておきます。

まずそのままランタイムをPython 3.9に変更しました。

cannot import name ‘is_ipaddress’ from ‘urllib3.util.ssl_’

[ERROR] Runtime.ImportModuleError: Unable to import module ‘lambda_function’: cannot import name ‘is_ipaddress’ from ‘urllib3.util.ssl_’ (/var/task/urllib3/util/ssl_.py)

requestsモジュールを使用しているLambda関数です。
3.6のときと同じモジュールだとエラーになりました。
そりゃそうです。
ということで、ローカルのPython 3.9環境でrequestsモジュールをインストールしなおしてZipにしてコードをアップロードし直しました。
レイヤーにして呼び出したほうがいいのですが、ひとまずさっさと実行してみたかったので、コードと一緒にアップロードしました。

Unable to import module ‘codeguru_profiler_agent.aws_lambda.lambda_handler’: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips

[ERROR] Runtime.ImportModuleError: Unable to import module ‘codeguru_profiler_agent.aws_lambda.lambda_handler’: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips 26 Jan 2017’. See: https://github.com/urllib3/urllib3/issues/2168

エラーメッセージが変わりました。
エラー対応しているときにランタイムをPython 3.8に変更していたことがまず1つの原因でしたので、Python 3.9に戻しました。

cannot import name ‘DEFAULT_CIPHERS’ from ‘urllib3.util.ssl_’

[ERROR] Runtime.ImportModuleError: Unable to import module ‘codeguru_profiler_agent.aws_lambda.lambda_handler’: cannot import name ‘DEFAULT_CIPHERS’ from ‘urllib3.util.ssl_’ (/var/task/urllib3/util/ssl_.py)

エラーメッセージが変わりました。

“cannot import name ‘DEFAULT_CIPHERS’ from ‘urllib3.util.ssl_'”の原因を参考にさせていただいて次の対応をしました。

Zipを作っているディレクトリで、urllibから始まるディレクトリを2つ削除(アンインストール)。

urllib3のみダウングレードして1.26.16になりました。
これでZipにしてコードをアップロードし直しました。

エラーなくLambda関数を実行できました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

Cloud9環境を共有した際の環境認証

Cloud9を環境を構築したIAMユーザー以外に共有したとき、その環境から実行す …

AWS X-Ray SDK for PythonをOrganizations組織内にLambda Layersで共有しました

ローカルでパッケージ作成 インストールコマンドはこちらAWS X-Ray SDK …

AWS BatchでPandocコンテナイメージを実行する

「ECR(Amazon Elastic Container Registry)に …

AWS認定SAPの執筆開始にあたって環境を構築しました

AWS認定ソリューションアーキテクトプロフェッショナル対策本の執筆開始にあたりま …

Amazon EC2 Auto ScalingのVPCは変更できる

EC2 Auto ScalingのVPCは変更できたっけ??と思いまして試しまし …

AWS DeepLens開封の儀

去年(2019年)7月にamazon.co.jpでDeepLens買えますやんっ …

Amazon EC2のAMIイメージを自動取得して保持日数が過ぎたら削除

画像の保存をEC2に戻した事もあってEC2のバックアップの自動取得を勉強がてらや …

ブログ画像のシンガポールリージョンへのレプリケーションはじめました

このブログの画像はS3バケットに保存して、CloudFront経由で配信していま …

Developers Summit 2018 「AWSのフルマネージドな環境でCI/CDをやってみよう!AWS Cloud9からAWS Fargateへの継続的デプロイをご紹介」を聞きました

※写真は展示のAmazon Echoです。 以下は、思ったことや気になったことを …

AWS CLIからIAM Identity CenterへサインインしてCodeCommitのリポジトリを使用する

Macで操作しました。 AWS CLIバージョンアップ [crayon-6aaa …