python3.7

 

python3.6

 

Python2.7

2.7でもboto3-1.7.74.dist-info

  • Lambda pythonバージョン

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-programming-model.html

 

boto3 s3 署名バージョン対応

1.5.71 (Botocore)、1.4.6 (Boto3) にアップグレード。

【超重要】対応しないと使えなくなるかも?!今、全S3ユーザがチェックすべき署名バージョン2の廃止について

 

pythonコード

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingAWSSDK.html

すべての AWS リージョンでは、AWS SDK はデフォルトで署名バージョン 4 を使用してリクエストを認証します。2016 年 5 月以前にリリースされた AWS SDK を使用する場合、次の表に示すように、署名バージョン 4 のリクエストが必要になることがあります。

[s3] use-sigv4 = True

 

5af85bf0

色々調べると、GuzzleHttpがHTTPSで通信する際に増えるらしい

 

まとめ


  • AWS SDKのクライアント、GuzzleHttpも最終的にphpのcurl_~関数を呼んでいる
    ※constructorでcurlが無い場合、Exception吐くコードがあるし、AWSの要件にもcurlが入っている
  • php curl の nssは多分、ビルドされたcurlのNSSバージョンに依存してそう
    ※curl -V のNSS/3.27 の部分
  • curlをmakeすると、その時のOSのnssバージョンが組み込まれた
    curl 7.19.7 (x86_64-unknown-linux-gnu) libcurl/7.19.7 NSS/3.36
  • かつ、その際、nss-softokn-3.14.3-23.3.el6_8.x86_64 で、curlコマンドのNSS_SDB_USE_CACHE=yes は有効だった
  • phpのcurlバージョンは、コマンドと同じくlibcurlに依存してそうだが、curl_version(); 又は、phpinfo(); で確認できる

 

各種情報

AWS-SDKでSNSへpublishするテストコードを準備

実行前後の情報

dentunusedが増加し、dentryのslabが増加している。

buffers/cacheが減少している。

 

対策コードを追加

実行前後の情報

ほぼ増加しなくなったことがわかる。

nss-softokn-3.14.3-23.3.el6_8 の環境でも効果がありそうだ。

 

GuzzleHttp

コードを追っていくと、内部でphp curlを使っているようだ

curl と nss

NSS/3.27.1 が使われているようだ。

osにinstallされているnss-softknは使われていない?

curlをmakeして確かめてみる

同じバージョンをインストール

システムのnssが使われた事の確認と効果の確認

nss-softokn-3.14.3-23.3 で nss-softokn-3.14.3-23.3 が使えているだろうと思われる。

 

となったので、

 

と作成

とできた。