こんにちは、中の人です。
今回は『AWS Supportをsdk for phpから使ってみた』と題して、aws sdk for phpを使って、AWS Supportにケースの作成・閲覧・返信・クローズを出来るようにします。
複数のアカウントを管理している方やちょっとした問い合わせがしたい時にログインしないといけない手間がなくなるので、一部のユーザーには重宝します。
フロントをHTML5で実装し、ajaxでデータを呼び出すようにしています。
1. aws sdk for phpをインストールします。
参考:AWS SDK編~for PHP~
2. AWS Supportが利用できるiamユーザーを用意します。
Management Consoleのメニューから作成します。
参考:Amazon IAM編~ビリング閲覧用アカウントを作ろう~
3. Credentialを用意します。今回は複数のアカウントでも切替が出来るように以下の記述にしています。
1ユーザーしか必要ない場合はuser1のみで問題ありません。(AWSのドキュメントだとdefaultと記述しているものが多いです)
今回はDocumentRoot配下の/.aws/ credentialsに作成しています。
1 2 3 4 5 6 7 |
[user1] aws_access_key_id = アクセスキー aws_secret_access_key = シークレットアクセスキー [user2] aws_access_key_id = アクセスキー aws_secret_access_key = シークレットアクセスキー |
これで準備は完了です。
ここからは実装を行います。
aws_describeCases.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php # credentialファイルの呼び出し $credential_path = "./.aws/credentials"; if(!file_exists($credential_path)){ exit("定義ファイルがありません"); } # aws sdk for phpを呼び出し require_once("./vendor/autoload.php"); use Aws\Support\SupportClient; # credentialsのどちらかのユーザーを指定します。 $profile = "user1"; $client = SupportClient::factory(array( 'profile' => $profile, 'region' => 'us-east-1',// サポートはUS eastのみ )); # ケースの呼び出し $result = $client->describeCases(array( 'maxResults' => 20, 'includeResolvedCases' => false, 'language' => 'ja', )); $count = count($result["cases"]); var_dump($result); |
設置が完了したら、ブラウザから確認します。
下記のようなデータが表示されていればOKです。
確認後、htmlからの呼び出し用に末尾の行を
1 |
echo json_encode($result); |
と変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
array(1) { [0]=> array(4) { ["subject"]=> string(30) "ケースのタイトル" ["caseId"]=> string(44) "case-**********************************" ["status"]=> string(23) "*********" ["timeCreated"]=> string(16) "2014/07/29 ****" } } |
ケースの呼び出し部分についての補足です。
describeCasesで作成済みのケースを取得することが出来ます。
[主なオプション]
オプション | 項目 |
---|---|
aftertime / beforeTime | 12ヶ月以内の日付を指定 |
フォーマットはYYYY-mm-dd | |
includeResolvedCases | 解決済みのケースを表示 |
false:未解決のみ | |
true:両方表示 | |
maxResults | 1回で取得する件数を指定 |
language | 日本語ならjaを指定 |
注意点としては、
・ 取得期間内の古いものからケースを取得するので、全てを取得するには期間指定して何度か取得する必要がある
・ maxResultsは20件程度しか使えない。
・ 20件でも取得に20秒程度かかります。
といった事が挙げられます。
次回からはケースの内容を取得・返信・クローズ、ケースを作成するプログラムについて紹介します。
お楽しみに!!