CloudWatchで画像取得ができない

前提

CloudWatchで設定した内容を取得し、表示するWebシステムを構築しています。
PHPのSDKで画像を取得しようとしていますが、うまく起動しません。
構築自体はdocker上で動作し、フレームワークはlaravelを使用しています。

発生している問題・エラーメッセージ

画像はでているが、グラフが表示されていない。

該当のソースコード AWS設定ファイル 変更なし

use Aws\Laravel\AwsServiceProvider; return [ /* |-------------------------------------------------------------------------- | AWS SDK Configuration |-------------------------------------------------------------------------- | | The configuration options set in this file will be passed directly to the | `Aws\Sdk` object, from which all client objects are created. This file | is published to the application config directory for modification by the | user. The full set of possible options are documented at: | http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/configuration.html | */ 'credentials' => [ 'key' => env('AWS_ACCESS_KEY_ID', ''), 'secret' => env('AWS_SECRET_ACCESS_KEY', ''), ], 'region' => env('AWS_REGION', 'ap-northeast-1'), 'version' => 'latest', 'ua_append' => [ 'L5MOD/' . AwsServiceProvider::VERSION, ], ];

該当のソースコード コントローラー

$client = App::make('aws')->createClient('cloudwatch'); $result = $client->getMetricWidgetImage([ /* ダッシュボード */ 'MetricWidget' => '{"view":"timeSeries","stacked":false,"metrics":[["AWS/EC2","NetworkPacketsIn","InstanceId","インスタンスID"]],"region":"ap-northeast-1"}' //'OutputFormat' => 'png', ]); $tmp = base64_encode($result['MetricWidgetImage']); $imginfo = getimagesize('data:application/octet-stream;base64,' . $tmp); Storage::disk('local')->put('test.png', $tmp); echo '<img src="data:' . $imginfo['mime'] . ';base64,'.$tmp.'">';

試したこと

AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXX AWS_DEFAULT_REGION=ap-northeast-1 AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false /* 追加 */ AWS_ROLE_ARN=XXXXXXXXXXXXXXXXXXXXXXXXXXXX

コメントを投稿

0 コメント