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にしてコードをアップロードし直しました。
レイヤーにして呼び出したほうがいいのですが、ひとまずさっさと実行してみたかったので、コードと一緒にアップロードしました。
1 2 |
pip3 install requests -t . |
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つ削除(アンインストール)。
1 2 |
pip3 install 'urllib3<2' -t . |
urllib3のみダウングレードして1.26.16になりました。
これでZipにしてコードをアップロードし直しました。
エラーなくLambda関数を実行できました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

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

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
「JAWS-UG朝会 #18」で主にAWSなブログについて発表をしました
ラジオ体操 いつものラジオ体操から。 今日はラーニングセンターから配信の日でした …
-
-
AWS Backupで取得したAMIとスナップショットの削除
個人で使っているAWSリソースの断捨離をしてました。 Cloud9も複数アカウン …
-
-
Projectタグを強制するSCPでアクションやリソースを限定しないとき成り立つのか
ふと疑問に思ったので試しました。 予想は、拒否されてしまう、です。 [crayo …
-
-
AWS Service Catalogポートフォリオを他のアカウントと共有する
AWS Service Catalogチュートリアルで作成したポートフォリオの他 …
-
-
AWS Organizationsでタグポリシーを設定しようとしました
Organizationsで[タグポリシーを有効にする]ボタンを押下しました。 …
-
-
AWS EC2 インスタンスステータスのチェックで失敗 原因はPHP-FPMのOOM-KILLER
先週に引き続きEC2のインスタンスステータスチェックで失敗 再起動するも失敗する …
-
-
ACM(AWS Certificate Manager)の承認メールを受け取るためにAmazon SESを設定する
何のためでもいいのですが、ドメインは持っているけど、そのドメイン宛にメールを送ら …
-
-
Amazon Linux2のCloud9でPython CDKのモジュールインストール
AMIがCloud9AmazonLinux2-2021-02-02T16-48の …
-
-
WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する
このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …
-
-
AWS Client VPNの接続ログを確認しました
AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …