[アップデート] Amazon Quick Suite の埋め込み機能がチャットエージェントの埋め込みをサポートしていたのでワンクリック埋め込みのほうを使ってみた
いわさです。
Amazon Quick Suite では旧 Amazon QuickSight のころから外部アプリケーションに Quick Sight ダッシュボードやコンソール、Q in QuickSight のコンポーネントなどを埋め込んで、外部アプリケーション上で Quick Suite の機能を活用することが出来ていました。
先日のアップデートでこの埋め込みパターンで新たにチャットエージェント機能も埋め込めるようになりました。
ワンクリック埋め込みと認証ユーザーを使った API 経由での埋め込みをサポートしており、本日は一応どちらも試してみましたので結果を共有します。
後者については失敗しまして、もしかするとまだ API 側が対応していないのかもしれません。
ワンクリック埋め込み
前提として Amazon Quick Suite のバージニア北部リージョンで Quick Suite のチャットエージェントを作成済みとします。
手順はここでは割愛しますが、以下のブログなどを参考にしてください。
そして、作成したチャットエージェントの共有メニューにアクセスします。

これまでは Quick Suite 内のユーザーに共有する機能のみだったのですが、次のように埋め込み機能を使って共有する方法にアクセスすることが出来ます。
こちららの「Share via embed」タブにアクセスすると埋め込み用の iframe コードを取得することが出来ます。

ワンクリック埋め込み機能の前提として、ダッシュボードのワンクリック埋め込みと同様に埋め込みコードには認証情報が含まれていません。
そのため、アクセスするブラウザが既に Quick Sight への認証済みクッキーを取得しておくか、あるいはサインイン画面から認証を行う必要があります。
では上記 iframe 用のコードをコピーして検証用の Web ページを実行してみましょう。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<a>hoge embed chat</a>
<iframe
width="450"
height="800"
allow="clipboard-read https://us-east-1.quicksight.aws.amazon.com; clipboard-write https://us-east-1.quicksight.aws.amazon.com"
src="https://us-east-1.quicksight.aws.amazon.com/sn/embed/share/accounts/123456789012/chatagents/cd7e175f-41ec-429a-a7d5-b49880e2addc?directory_alias=hogehoge">
</iframe>
</body>
</html>
上記コードを今回はローカルホストでpython http.serverを使って起動しました。
アクセスしてみましょう。

シークレットブラウザでアクセスしてみたのですが、やはりログインを要求されましたね。
sign in againのリンクをクリックします。
すると次のように認証画面が表示されるので認証しましょう。IAM ユーザーの場合は事前に他の仕組みでブラウザ上で認証済みにしておく必要がありますね。

認証済みでアクセスしてみたのですが次のようにエラー画面が表示されてしまいました。

実はこのエラー画面見慣れていて、組み込みダッシュボードでも同じエラーが発生したことがあります。
Quick Sight の組み込み機能は iframe のセキュリティ対策のために許可したドメインの Web サイトへのみ埋め込むことが出来ます。
どうやらこの埋め込みチャットエージェント機能についても同じみたいですね。
ということで、許可ドメインの設定を追加しましょう。
Quick Suite の管理画面から、セキュリティ -> データの共有方法 -> ドメインを管理から埋め込みダッシュボードのドメイン管理を追加します。

上記設定を追加後に、再度埋め込んだアプリを読み込んでみると...

おお、アプリ上に Quick Suite のチャットエージェントが埋め込まれていますね。
ユーザーインターフェースとしては Quick Suite の画面そのままという感じです。そりゃそうか。
ユーザー情報を使った埋め込み URL を生成してみる
先程のワンクリック埋め込みではブラウザ上での認証が必要でした。
この認証画面を挟みたくないケースもあると思います。
埋め込みダッシュボードと同じで、GenerateEmbedUrlForRegisteredUser機能を使ってユーザー認証トークンを付与した一時的な埋め込み用 URL を生成することが出来ます。
以下はダッシュボード埋め込みの場合ですが、ここにチャットエージェント埋め込みオプションが追加された感じみたいです。
ExperienceConfiguration.QuickChatが追加されているのでこちらを指定するみたいです。
~ $ cat hoge.json | jq
{
"AwsAccountId": "123456789012",
"SessionLifetimeInMinutes": 15,
"UserArn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/cm-iwasa.takahito/cm-iwasa.takahito",
"ExperienceConfiguration": {
"QuickChat": {}
},
"AllowedDomains": [
"http://localhost:8080"
]
}
~ $ aws --version
aws-cli/2.32.6 Python/3.13.9 Linux/6.1.156-177.286.amzn2023.x86_64 exec-env/CloudShell exe/x86_64.amzn.2023
~ $ aws quicksight generate-embed-url-for-registered-user --cli-input-json file://hoge.json
An error occurred (InvalidParameterValueException) when calling the GenerateEmbedUrlForRegisteredUser operation: Must specify at least one valid Experience Configuration option.
が、試してみたところ上記のようにエラーになりました。
そもそもQuickChatオプションの中で本来はおそらく対象のチャットエージェントなどの情報を指定しそうなのですがそのあたりの指定を行っていません。
API ドキュメントで指定方法がわからないので、ドキュメントが追いついていないようでした。
こちら更新されたらまた試してみたいと思います。
さいごに
本日は Amazon Quick Suite の埋め込み機能がチャットエージェントの埋め込みをサポートしていたのでワンクリック埋め込みのほうを使ってみました。
まだ東京リージョンでは使えないのと、メインで使われそうな URL 生成型のほうが使えていないですが、今後 Quick Suite を SaaS や社内アプリなどに埋め込む場合の参考にしてください。






