QuickSight カスタムビジュアルコンテンツで S3 画像の出し分けをしてみた

QuickSight カスタムビジュアルコンテンツで S3 画像の出し分けをしてみた

カスタムビジュアルコンテンツではパラメータを含む URL を使用することで、画像の切り替えができます。
2025.07.25

やりたいこと

コントロールで、猫の色を brown とすると、茶色の猫の画像が表示されます。
スクリーンショット 2025-07-25 14.28.33

一方、gray を選択すると、灰色の猫が表示されます。

スクリーンショット 2025-07-25 14.28.56

上記のように画像の切り替えをできるようにすることが、本ブログの目標です。

やってみた

S3 バケットの設定

画像を2つ(cat_brown.png, cat_gray.png)準備します。

cat_brown
cat_brown.png

cat_gray
cat_gray.png

S3 バケットをデフォルト設定で作成し、上記画像をアップロードします。
スクリーンショット 2025-07-25 13.27.04

S3 の画像はパブリック公開にするため、S3の「アカウントのブロックパブリックアクセス」をオフにします。
スクリーンショット 2025-07-25 13.33.18

作成した S3 バケット側でもブロックパブリックアクセスをオフにします。
スクリーンショット 2025-07-25 13.46.05

任意のユーザーが画像にアクセスできるよう以下のバケットポリシーで全許可します。

S3 のバケットポリシー
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForAllObjects",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<バケット名>/*"
        }
    ]
}

ここまできたらアップロード画像のオブジェクト URL をコピーし、ブラウザで表示してみます。
スクリーンショット 2025-07-25 13.49.03

ブラウザで表示できました。ここまでで S3 の設定は終了です。
スクリーンショット 2025-07-25 13.52.11

QuickSight の設定

続いて QuickSight の設定をしていきます。
以下のサンプルデータをデータセットとしてアップロードし、分析を作ります。

sample_data.csv
id,color
cat1,brown
cat2,gray

パラメータを追加

以下の設定でパラメータを作成します。
スクリーンショット 2025-07-25 13.54.43

コントロールを追加

作成したパラメータよりコントロールを追加します。
スクリーンショット 2025-07-25 13.55.52

以下設定で追加します。
スクリーンショット 2025-07-25 13.57.20

そうすると分析上部に猫の色が選べるコントロールが追加されます。項目には、サンプルデータセットの color カラムで指定した値が表示されていることがわかります。
スクリーンショット 2025-07-25 13.58.50

カスタムビジュアルコンテンツの URL の修正

ビジュアルとして、カスタムビジュアルコンテンツを追加し、プロパティの URL に S3 オブジェクトの URL を入力し、適用します。
この時点では、以下のように茶色の猫の画像が固定で表示されます。

スクリーンショット 2025-07-25 14.15.58

続いて、URL 右横にあるパラメータボタンを選択、すると先ほど作成した color パラメータが指定できるようになります。
スクリーンショット 2025-07-25 14.20.06

同パラメータを選択し、設定している URL を以下のようにパラメータを含む形で書き換えます。こうすることで、コントロールで選択した値が本パラメータに入力され、URL を切り替えることができるようになります。

https://test-cat-0725.s3.ap-northeast-1.amazonaws.com/cat_<<$color>>.png

スクリーンショット 2025-07-25 14.27.29
上記のようにパラメータを含む URL にする

以上で全ての設定は終了です。

動作確認

最後に、動作確認していきます。

コントロールで brown を選ぶと、茶色の猫の画像が表示されました。
スクリーンショット 2025-07-25 14.28.33

gray を選ぶと、灰色の猫の画像が表示されました。
以上より、コントロール値によって URL が切り替わり画像の出し分けをすることができました。
スクリーンショット 2025-07-25 14.28.56

終わりに

今回は、カスタムビジュアルコンテンツで表示する画像をコントロールで切り替えてみました。このような操作は意外とドキュメントでは見つけられずやや戸惑いましたが、パラメータを指定することで実装可能だということがわかりました。
QuickSight には様々な機能があるため、これからも色々触ってみたいと思います。

この記事がどなたかのお役に立てば幸いです。

参考文献

https://dev.classmethod.jp/articles/i-had-a-bit-of-trouble-publishing-s3-objects-because-of-the-aws-account-level-s3-block-public-access-set-up/

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.