Как можно встроить панель инструментов quicksight, используя aws sdk в laravel? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть проект laravel 5.3, в котором мне нужно отобразить график aws quicksight, проблема в том, что я не знаю, как получить URL для вставки графика из AWS SDK.

я сделал это в lambda-node проекте, и это сработало, но в laravel он просто возвращает {}

, это мой код, он не отображает никакой ошибки и ответ, это status 200

<?php

namespace App\Http\Controllers;

use Aws\QuickSight\QuickSightClient; 
use Illuminate\Http\Request;
use App\Models\QuicksightDashboard;

class DashboardController extends Controller
{
    //
    public function getDashboard($id) {
        $dashboards = QuicksightDashboard::find($id);
        $quick = new QuickSightClient([
            'version' => 'latest',
            'region'  => 'us-east-1',
            'credentials' => [
              'key'    => '...',
              'secret' => '...',
            ]
        ]);

        $result = $quick->GetDashboardEmbedUrl([
            'AwsAccountId' => '...',
            'DashboardId' => '...',
            'IdentityType' => 'IAM',
            'ResetDisabled' => true,
            'SessionLifetimeInMinutes' => 600,
            'UndoRedoDisabled' => false
        ]);
        return response()->json([
            'code' => 200,
            'message' => 'Operation successfull',
            'dashboard' => $result,
        ]);
    }
}

Как я уже говорил, я передаю правильные учетные данные и правильные accountId и dashboardId что еще мне не хватает?

1 Ответ

0 голосов
/ 06 марта 2020

Мне нужно вернуть поле, которое я хочу, чтобы оно работало.

return $quick->GetDashboardEmbedUrl([
            'AwsAccountId' => '...',
            'DashboardId' => '...',
            'IdentityType' => 'IAM',
            'ResetDisabled' => true,
            'SessionLifetimeInMinutes' => 600,
            'UndoRedoDisabled' => false
        ])->get('EmbedUrl');

таким образом я получаю URL-адрес для вставки.

...