この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
この記事は2018年11月23日時点の動作をもとに執筆しています。
Amazon QuickSightのダッシュボードが埋め込み機能に対応し、Amazon QuickSightサイト外でダッシュボードを閲覧できるようになりました。
Embed interactive dashboards in your application with Amazon QuickSight | AWS Big Data Blog
Amazon QuickSight では、分析結果をダッシュボードとして公開すると、参照のみ可能なREADERロールのユーザーと分析結果を共有出来ます。BI 活用を促進する上では、利用者の多くを占めるこの参照のみのユーザーが簡単にダッシュボードを閲覧できることが重要です。
今回の機能追加により、ダッシュボードへのアクセス経路として
- QuickSight 上で閲覧
- Eメールレポート通知 ※エンタープライズ版のみ
に続き
- 外部サイトへの埋め込み
が増えました。
やってみた
埋め込みたいダッシュボードを指定すると、指定した時間だけセッションが有効な埋め込み用 URL が生成されます。
この URL にアクセスすると、QuickSight 未認証状態であっても、ダッシュボードが表示されます。
埋め込み URL の生成
get-dashboard-embed-url
API を利用します。
$ aws quicksight get-dashboard-embed-url \
--aws-account-id 123456789012 \
--dashboard-id 11-22-33-44-55 \
--identity-type IAM \
--session-lifetime-in-minutes 15
{
"Status": 200,
"EmbedUrl": "https://us-east-1.quicksight.aws.amazon.com/embed/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/dashboards/11-22-33-44-55?isauthcode=true&identityprovider=quicksight&code=",
"RequestId": "48385136-eb5f-4a9e-b499-3be690b55a74"
}
レスポンスの EmbedUrl
が埋込用 URL です。
この URL には、ダッシュボードのパスだけでなく、認証情報(isauthcode=true&identityprovider=quicksight&code=...
)も含まれています。
この URL に対して QuickSight 無認証状態のブラウザでアクセスすると、ダッシュボードが表示されます。
パラメーターについて
パラメーター | 意味 |
---|---|
--aws-account-id | アカウントID |
--dashboard-id | ダッシュボードID |
--identity-type | 認証方法を指定します。"IAM"または"QUICKSIGHT"が指定可能。詳細不明 |
--session-lifetime-in-minutes | セッションの有効期間を分で指定。デフォルトは 15分で 600分(10時間)まで指定可能。 |
--undo-redo-disabled | --no-undo-redo-disabled |
redo/undo の有効・無効を指定。デフォルトはともに有効 |
--reset-disabled | --no-reset-disabled |
ダッシュボード上の作業をすべて無効化する reset 機能の有効・無効を指定。デフォルトは有効 |
redo/undo/reset ボタンはダッシュボードの上に存在します。
ダッシュボード IDの確認方法
管理画面からダッシュボードにアクセスしたときのの URL は次のような形をしています。
https://AWS-REGION.quicksight.aws.amazon.com/sn/dashboards/DASHBOARD-ID
URL 最後のパス部分がダッシュボードIDです。
実際の URL では 8ce90ad1-7ea5-4e98-b3fa-0f617ca23c9f のように、hex の英数字が並んでいます。
埋め込み URL の有効時間
埋め込み用 URL は5分だけ有効です。有効期間を過ぎてアクセスすると、403:Forbidden エラーが発生します。
expire した URL にブラウザでアクセスした場合
expire した URL にコマンドラインでアクセスした場合
403:Forbidden の例
$ curl -D - https://us-east-1.quicksight.aws.amazon.com/embed/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/dashboards/DASHBORD-ID?isauthcode=true&identityprovider=quicksight&code=...
HTTP/1.1 403 Forbidden
Cache-Control: private
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-amzn-qs-clientType: EMBEDDING
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Set-Cookie: JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; Path=/; Secure; HttpOnly
X-UA-Compatible: IE=Edge
Content-Type: text/html;charset=ISO-8859-1
Content-Language: en-US
Transfer-Encoding: chunked
Vary: Accept-Encoding
Date: Sat, 23 Nov 2018 20:10:46 GMT
Server: AWS Server
<!DOCTYPE html>
<html lang="en">
...
最後に
Amazon QuickSightのダッシュボードが埋め込み機能に対応し、外部サイトで利用できるようになりました。
埋め込み用 URL の有効期限は5分であることから、利用時にオンデマンドでこの URL を生成し、 iframe タグなどで利用することを想定しています。
S3 オブジェクトダウンロード用の一時 URL を生成するのと同じ要領ですね。
ますます便利になった QuickSight ダッシュボードをご活用ください。
それでは。
参考
- AWS Documentation » Amazon QuickSight » User Guide » Embedding and Other SDKs » Embedding Amazon QuickSight Dashboards » Creating Embedded Dashboards with the Amazon QuickSight SDK
- Amazon QuickSight adds support for dashboard embedding and APIs
- Embed interactive dashboards in your application with Amazon QuickSight | AWS Big Data Blog