AWS SDK for PHP を ver3 にアップデートするためにやったこと
1. composer.json の変更
comporser.json の中のversion指定を 2.* から 3.* へ変更して、 comporser update しました。
"require": {
- "aws/aws-sdk-php": "2.*"
+ "aws/aws-sdk-php": "3.*"
},
$ composer.phar update
2. インスタンス生成方法の変更
v2までは、下記のような感じで、factory メソッドでインスタンスを生成していました。
$config = array(
'key' => AWS_KEY,
'secret' => AWS_SECRET,
'region' => AWS_REGION,
);
/** @var $sqs \Aws\Sqs\SqsClient */
$sqs = SqsClient::factory($config);
これを下記のような感じに new でインスタンスを生成するように変更する必要がありました。
$credentials = new \Aws\Credentials\Credentials(AWS_KEY, AWS_SECRET);
$params = array(
'credentials' => $credentials,
'region' => AWS_REGION,
'version' => '2012-11-05',
);
/** @var $sqs \Aws\Sqs\SqsClient */
$sqs = new \Aws\Sqs\SqsClient($params);
また、同時に、version のオプションが必須になりました。
version については、サービス毎に指定できるものが違うので、ドキュメントで確認して指定します。
ドキュメント:
3. 挙動が変わっている所を個別対処
ほぼありませんでしたが、DynamoDBのupdateItem等でパラメータを数値型で渡すとエラーになったので、
文字列型に変換して渡す必要がありました。
- $value = 1;
+ $value = '1';
かなり後方互換性は保たれているようです。
バージョンを上げた結果について
2014年の re:Inventで、v3は早くなっていると聞いたのですが、残念ながらパフォーマンスの変化は見られませんでした。
今回はバージョンを上げただけで、コードはほぼ必要に迫られたところしか変えなかったので、並列化する処理などコードも変えないとパフォーマンスは改善されないのかもしれません。
ただ、v3には新しい機能が追加になっていることと、今後の新しい機能は v3でのみ追加されていくと思うので、折を見てバージョンアップしておくことをおすすめします。
参考:
Author And Source
この問題について(AWS SDK for PHP を ver3 にアップデートするためにやったこと), 我々は、より多くの情報をここで見つけました https://qiita.com/inouet/items/06487cf61113cdc55d80著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .