Python boto3 で InsecureRequestWarning を消す方法2つ

方法1: 環境変数を使う

PYTHONWARNINGS 環境変数に "ignore:Unverified HTTPS request" を書いておく。

以下は Windows の例。" があると動かないので注意。

$ set PYTHONWARNINGS=ignore:Unverified HTTPS request
$ python script_with_boto3.py

方法2: urllib3.disable_warnings() を使う

urllib3.disable_warnings() を使えば良いことは知っていたが、消えてくれない。なぜだと思ったら、

import botocore.vendored.requests.packages.urllib3 as urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# 上記コードは boto3 を import する前に実行する必要アリ !!
import boto3

これで解決。 「Boto3にバンドルされてるrequests」にバンドルされてる urllib3 に対して disable_warnings() してやる必要があった。

が、これはトリッキーだし、OS によっては使えないらしいので、方法1 が確実だと思う。

参考

suppressing warnings for unverified certificates? · Issue #699 · boto/boto3