AWS IoT CoreのATSエンドポイント取得でaws cliがエラーになった時の対処メモ
AWS IoT CoreのATSエンドポイント取得でaws cliがエラーになった時の対処メモ:
2018年8月ごろAWSから以下のようなお知らせがありました
悲しい
解決方法としてはなんのことはないaws cliをpython2で実行するとダメだったっぽい。
python 3.6.5にして実行すると問題なくエンドポイントの取得ができた。
pyenv環境でやっていたためpythhon3でやっていたつもりがsystemのpython2で起動していたようだった。
この記事参考
- 環境をpython2に変更し、aws cliをアンインストールする
今回のエラーはAWS IoTだけではなくてS3やlambdaへのアクセスでも起きたのでpython2では使えなくなったのかな?とも思ったけどこのドキュメントでは2.6.5以降は使えそうな様子(自分のsystem環境のpythonは2.7.12だった)。
詳しい原因は不明のままだったけどpython3でアクセスするのが安定かなーとは思う
はじめに
2018年8月ごろAWSから以下のようなお知らせがありました- Google, Apple および Mozillaが2018年10月からSymantecのルート認証局を信頼性を無効化すると発表しているよ
- モバイルアプリやWEBアプリからAWS IoTへの接続できなくなるかも
- AWS IoTではAmazon Trust Serviceが署名したサーバ証明書とそれにひもづくエンドポイントを用意してるよ
- 新しい証明書とエンドポイントを使用することを推奨するよ
エンドポイントの更新と発生したエラー
- aws cliの導入。この辺の記事を見てやった
- aws cliのconfigureの設定。同上
- aws iot describe-endpoint --endpoint-type iot:Data-ATSを実行
An HTTP Client raised and unhandled exception: __init__() got an unexpected keyword argument 'ssl_context'
解決方法
解決方法としてはなんのことはないaws cliをpython2で実行するとダメだったっぽい。python 3.6.5にして実行すると問題なくエンドポイントの取得ができた。
pyenv環境でやっていたためpythhon3でやっていたつもりがsystemのpython2で起動していたようだった。
aws cliをpython2からpython3へ変更しエンドポイントを取得する
この記事参考- 環境をpython2に変更し、aws cliをアンインストールする
$ pyenv global system $ sudo pip uninstall awscli
- 環境をpython3へ変更し(自分の場合は3.6.5をインストール済みだった)、aws cliを再インストールする
$ pyenv global 3.6.5 $ sudo pip install awscli
- aws iot describe-endpoint --endpoint-type iot:Data-ATSを実行すればATSのエンドポイントが手に入る
まとめ
今回のエラーはAWS IoTだけではなくてS3やlambdaへのアクセスでも起きたのでpython2では使えなくなったのかな?とも思ったけどこのドキュメントでは2.6.5以降は使えそうな様子(自分のsystem環境のpythonは2.7.12だった)。詳しい原因は不明のままだったけどpython3でアクセスするのが安定かなーとは思う
コメント
コメントを投稿