AWS Supportをsdk for phpから使ってみた①

こんにちは、中の人です。

今回は『AWS Supportをsdk for phpから使ってみた』と題して、aws sdk for phpを使って、AWS Supportにケースの作成・閲覧・返信・クローズを出来るようにします。

複数のアカウントを管理している方やちょっとした問い合わせがしたい時にログインしないといけない手間がなくなるので、一部のユーザーには重宝します。

フロントをHTML5で実装し、ajaxでデータを呼び出すようにしています。

  1. aws sdk for phpをインストールします。

参考: AWS SDK編~for PHP~

  1. AWS Supportが利用できるiamユーザーを用意します。

Management Consoleのメニューから作成します。

参考: Amazon IAM編~ビリング閲覧用アカウントを作ろう~

  1. Credentialを用意します。今回は複数のアカウントでも切替が出来るように以下の記述にしています。

1ユーザーしか必要ない場合はuser1のみで問題ありません。(AWSのドキュメントだとdefaultと記述しているものが多いです)

今回はDocumentRoot配下の/.aws/ credentialsに作成しています。

1[user1]2aws_access_key_id = アクセスキー3aws_secret_access_key = シークレットアクセスキー45[user2]6aws_access_key_id = アクセスキー7aws_secret_access_key = シークレットアクセスキー

これで準備は完了です。

ここからは実装を行います。

aws_describeCases.php

1<?php23# credentialファイルの呼び出し45$credential_path = "./.aws/credentials";6if(!file_exists($credential_path)){7	exit("定義ファイルがありません");8}910# aws sdk for phpを呼び出し1112require_once("./vendor/autoload.php");13use Aws\Support\SupportClient;1415# credentialsのどちらかのユーザーを指定します。1617$profile = "user1";1819$client = SupportClient::factory(array(20    'profile' => $profile,21    'region'  => 'us-east-1',// サポートはUS eastのみ22));2324# ケースの呼び出し2526$result = $client->describeCases(array(27	'maxResults' => 20,28	'includeResolvedCases' => false, 29	'language' => 'ja',30));31$count = count($result["cases"]);32var_dump($result);

設置が完了したら、ブラウザから確認します。

下記のようなデータが表示されていればOKです。

確認後、htmlからの呼び出し用に末尾の行を

1echo json_encode($result);

と変更します。

1array(1) {2  [0]=>3  array(4) {4    ["subject"]=>5    string(30) "ケースのタイトル"6    ["caseId"]=>7    string(44) "case-**********************************"8    ["status"]=>9    string(23) "*********"10    ["timeCreated"]=>11    string(16) "2014/07/29 ****"12  }13}

ケースの呼び出し部分についての補足です。

describeCasesで作成済みのケースを取得することが出来ます。

[主なオプション]

オプション 項目
aftertime / beforeTime 12ヶ月以内の日付を指定
フォーマットはYYYY-mm-dd
includeResolvedCases 解決済みのケースを表示
false:未解決のみ
true:両方表示
maxResults 1回で取得する件数を指定
language 日本語ならjaを指定

注意点としては、

**・ 取得期間内の古いものからケースを取得するので、全てを取得するには期間指定して何度か取得する必要がある

・ maxResultsは20件程度しか使えない。

・ 20件でも取得に20秒程度かかります。**

といった事が挙げられます。

次回からはケースの内容を取得・返信・クローズ、ケースを作成するプログラムについて紹介します。

お楽しみに!!

この記事を書いた人

aws-recipe-user