新しくなったQuickSight埋め込みAPIでコンソール埋め込みをためしてみた

2021.10.26

いわさです。

先日投稿した以下の記事で少し触ったのですが、QuickSightの埋め込み用URL発行APIが刷新されています。

またコンソール埋め込み機能の概要の紹介がされている記事は見つけたのですが、実際の操作イメージまでは見当たらなかったので、少し紹介してみようと思います。

本機能を利用する場合、QuickSight Enterprise Editionが必要となります

AWS CLIを使ってURLを発行

新しいコマンドはgenerate-embed-url-for-registered-userです。
ちなみに、旧コマンドはget-dashboard-embed-urlです。

必要な情報は、過去記事を良ければ参考にしてください。
コンソールを埋め込みたい場合は、experience-configurationオプションにQuickSightConsoleとパスを指定します。
パスは初期表示するメニューか、特定のダッシュボードや分析を指定することが出来ます。

iwasa.takahito@hoge embedconsole-qs % aws quicksight generate-embed-url-for-registered-user --aws-account-id 123456789012 --user-arn arn:aws:quicksight:ap-northeast-1:123456789012:user/default/cm-iwasa.takahito/cm-iwasa.takahito --experience-configuration '{"QuickSightConsole": {"InitialPath": "/start"}}' --profile iwasa                             
{
    "Status": 200,
    "EmbedUrl": "https://ap-northeast-1.quicksight.aws.amazon.com/embedding/521dbbb0b5c9429ca378c94af90a3e11/start?code=AYABeAco8mfG8fuldmi6xKUXGvgAAAABAAdhd3Mta21zAFBhcm46YXdzOmttczphcC1ub3J0aGVhc3QtMTozNjcwOTQ1NjE4OTQ6a2V5LzkyZDU3MjEzLTc0MjItNGNhOC1iYWZiLTg2MDFjNGZkODgyNwC4AQIBAHirSky28MTsQkRRkQnrWly9-KCD9GJ1rJU8zazSG85WsgFDf5R_5tWpPIBfJmkcw3pMAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMt15zMVsFjO_96ksWAgEQgDupkpSIgE6mIBLIc0u2hU8S6qvB1VJgIs1-cq6o3yjMvYDbq5_s1kfRfTU_rY6jD3XMKyR7Tf8iteZ8dQIAAAAADAAAEAAAAAAAAAAAAAAAAADiI9iNemHhHwNIkrJmhovU_____wAAAAEAAAAAAAAAAAAAAAEAAADqJoBpYZmTJekzO0la1ItWzPgVvt0A51ov-Aqjy_3Yl9vNHNLfumwTqPa8b0DQL5_rdargapXSYJqbeuUGK7mxtFVvOSJ5RwL0NCo4iQcSVXJppbDbT84OVGU-iTUKgC2qSCYAlO4aNr_j_lprBlTs_ViFHrFx_izRjR0NocJgHGpA8HplnjcQ-vdyTHmHhpDiiAVpMxmu8_JlWZAlTYYOX5grgMO2mIGXt-m-LamhCHgNkD8kJZOlhtx_75SHb2wVW15Hbd_6p7m0ILxG6mYVeyJy7r1_yywM44iN-d3iu0NNffPS8kkv61J6fTRMNT-BqDQgRNQRiGv-iw%3D%3D&identityprovider=quicksight&isauthcode=true",
    "RequestId": "d834957c-0990-4798-ad03-e8d87d1de818"
}

なお、先日のアップデートでこのコマンドはQuickSight Qのサーチバーなども埋め込めるようになりました。
Qをまだ試せていないのでいずれ埋め込みとあわせて試してみたいと思います。

操作感

発行されたURLを使って実施に操作していきたいと思います。
URLを開くと通常のQuickSightコンソールと類似した画面が表示されます。

ただし、設定メニューを開こうとしてもHelpのみで管理機能などは使えませんでした。

それぞれのダッシュボードや分析では既存の、印刷やダウンロード、共有などの機能も利用可能です。

以下は、InitialPathオプションに分析を指定した場合です。

以下は、InitialPathオプションにFavoritesを指定した場合です。

前述のとおり、InitialPathにはダッシュボードIDのや分析IDのを指定することも出来て、その場合はこのように直接開かれます。
ただし、これらの設定はあくまでも初期表示のパスを示しているだけで、メニューから他の機能へ遷移することは可能なので、特定パスのみにコンソールを制限するものではないことに注意してください。

セッション有効期間について

埋め込みURLのセッション有効期間について誤解していた点あったので残しておきます。
発行されたURLは最大5分有効なので5分以内にURLのリフレッシュトークンみたいなものを更新し続けないと行けないのかと思っていました。

しかし、上記にも記載のあるとおり、発行URLでアクセスしたあとはセッションで保持され、URLの一時トークンは一回限りしか使われていませんでした。
CookieとSessionでやり取りを行ってからは、session-lifetime-in-minutesオプションにしたがって有効期間が決まります。

セッションの期間は、15~600分が指定可能です。

まとめ

本日は新コマンドにおけるコンソール埋め込みの方法と、操作イメージなどをご紹介しました。
ダッシュボードを埋め込むケースは多いと思いますが、コンソール埋め込みを使うと独自アプリケーションの一部としてQuickSightの編集・分析機能を使うことも出来るようになります。

アプリケーションへの埋め込み用にSDKを利用したサンプルも案内されていますので併せてご利用ください。