Amazon QuickSightのダッシュボードが外部サイトに埋め込めるようになりました #reinvent
この記事は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 にコマンドラインでアクセスした場合
$ 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