AwsClientManager for PHP というライブラリを作った
What is AwsClientManager
app2641/AwsClientManagerForPHP · GitHub
AwsClientManager は PHP で Aws を操作する AWS SDK for PHP2 (以下、SDK)ライブリを容易に操作するためのライブラリ。
SDK には豊富な API が実装されていて Aws のサービスをプログラマブルに扱うことが出来る。
例えば EC2 を操作したい場合、クライアントクラスを factory メソッドを介してインスタンス化して処理を行う。
<?php use Aws\Ec2\Ec2Client; $ec2 = Ec2Client::factory(array( 'key' => 'your_aws_access_key', 'secret' => 'your_aws_secret_key', 'region' => \Aws\Common\Enum\Region::TOKYO )); $images = $ec2->describeImages();
Aws のサービスを簡単に使えるけど、Aws の恩恵をふんだんに受けているプロジェクトだとインスタンス化にいちいちキーやリージョン指定しないといけなくて面倒くさい。
AwsClientManager はクライアントクラスのインスタンス化を簡単に行える。
<?php use Acm\Acm; $ec2 = Acm::getEc2(); $images = $ec2->describeImages();
こんな感じ。
Install and Usage
インストールは Composer を使用する。
下記の composer.json を生成して、
{ "require": { "app2641/aws-client-manager": "*" } }
コマンドラインでインストールする。
$ composer.phar install
AwsClientManager ではアクセスキーなど Aws の接続に関わる情報を環境変数に入れて使用している。Aws のコマンドツール使ってる人などは既に設定してあるだろう。
$ export AWS_ACCESS_KEY_ID=your_aws_access_key $ export AWS_SECRET_ACCESS_KEY=your_secret_key $ export AWS_DEFAULT_REGION=your_region
環境変数が用意できれば Acm\Acm クラスを読み込んで使用出来る。
主要なクライアントは呼び出せるようにしてある。
第一引数に配列で設定値を与えてあげればリージョンなど上書きすることも可能。
<?php use Acm\Acm; $s3 = Acm::getS3(array('region' => \Aws\Common\Enum\Region::NORTHERN_VIRGINIA)); $response = $s3->getObject(....);
Aws クライアント使うのが少々楽になる。