Amazon Q in QuickSight トピックのレビュー済み回答をCLIから操作する

Amazon Q in QuickSight トピックのレビュー済み回答をCLIから操作する

Amazon Q in QuickSightで回答を作り込んだ場合はバックアップをしておこう

こんにちは、クラウド事業本部 コンサルティング部の荒平(@eiraces)です。

Amazon Q in QuickSight、面白い機能がたくさんあって最近たまに触っています。
面白い機能の一つとして、自然言語で聞いた回答をユーザーに対して固定する機能(Verified Questions) があるのですが、ひとつひとつの設定は骨が折れ、仮にダッシュボードの引っ越しや別トピックへの移設が発生した際に全て手作業というのはなかなか辛そうです。

そこで、AWS CLIからQuickSight APIを操作することで、トピックに設定されたレビュー済み回答をバックアップしたり、ダッシュボードにインポートできます。

トピックに関しては以下のブログも是非参照ください。

https://dev.classmethod.jp/articles/q-in-quicksight-creata-topic-qa-dataset/

※ なお、本記事で扱うデータはFakerライブラリで作成したサンプルです

https://dev.classmethod.jp/articles/python-faker-for-sampledata/

レビュー済みの回答(Verified)をバックアップする

AWSドキュメントに記載がありますが、以下の構文を利用します。

aws quicksight list-topic-reviewed-answers \
--aws-account-id AWSACCOUNTID \
--topic-id TOPICID

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/q-topic-reviewed-answer-apis.html

以下のコマンドのようになります。

aws quicksight list-topic-reviewed-answers \
--aws-account-id 000000000000 \
--topic-id mjHJ90rMHgnDA4nR6E06m0EVAWxxxxx > output.json

aws-account-idはQuickSightを所有しているAWSアカウントのIDを利用し、 topic-id は特定のTopicを選択した状態で確認できます。

ScreenShot 2025-08-27 at 17.36.27

ScreenShot 2025-08-27 at 17.28.05

次のような回答を得ることができます。レビュー済みの質問が2個登録されていることが分かります。

list-topic-reviewed-answers 回答(output.json)
{
    "Status": 200,
    "TopicId": "mjHJ90rMHgnDA4nR6E06m0EVAWxxxxx",
    "TopicArn": "arn:aws:quicksight:ap-northeast-1:000000000000:topic/mjHJ90rMHgnDA4nR6E06m0EVAWxxxxx",
    "Answers": [
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:000000000000:topic/mjHJ90rMHgnDA4nR6E06m0EVAWxxxxx/reviewed-answer/GndqhY0lsp3NJEu3g4gkXrt4dVbcieHS",
            "AnswerId": "GndqhY0lsp3NJEu3g4gkXrt4dVbcieHS",
            "DatasetArn": "arn:aws:quicksight:ap-northeast-1:000000000000:dataset/838bae14-4635-42f0-a46f-44daafa264fc",
            "Question": "性別(customer_gender_ja)の分布を教えて下さい",
            "PrimaryVisual": {
                "VisualId": "d0c56611-bd13-4de1-9494-2da7d8f673b6",
                "Role": "PRIMARY",
                "Ir": {
                    "Metrics": [
                        {
                            "MetricId": {
                                "Identity": "d7b59cef-25a6-421a-8883-7c112fb0ce5c"
                            },
                            "Function": {
                                "Aggregation": "DISTINCT_COUNT"
                            },
                            "Operands": [
                                {
                                    "Identity": "customer_id"
                                }
                            ]
                        }
                    ],
                    "GroupByList": [
                        {
                            "FieldName": {
                                "Identity": "customer_gender_ja"
                            }
                        }
                    ],
                    "Filters": [],
                    "Visual": {
                        "type": "HORIZONTAL_BARS"
                    }
                },
                "SupportingVisuals": [
                    {
                        "VisualId": "480c6ecc-6c27-420b-85b1-a045183ed489",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "d7b59cef-25a6-421a-8883-7c112fb0ce5c"
                                    },
                                    "Function": {
                                        "Aggregation": "DISTINCT_COUNT"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_id"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "22a14472-ab40-4c40-92a5-e879e4a2fa69",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "281f29d9-53cd-4952-947a-0dd3932c0d44"
                                    },
                                    "Function": {
                                        "Aggregation": "DISTINCT_COUNT"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_gender_ja"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "bc5cef2c-408e-4ef7-8cbf-9eca20004b79",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "b488edca-517b-454e-b846-0e2e2b3d1f71"
                                    },
                                    "Function": {
                                        "Aggregation": "SUM"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_age"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [
                                {
                                    "FieldName": {
                                        "Identity": "customer_id"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_gender_ja"
                                    }
                                }
                            ],
                            "Filters": [],
                            "Sort": {
                                "Operand": {
                                    "Identity": "customer_age"
                                },
                                "SortDirection": "DESCENDING"
                            },
                            "Visual": {
                                "type": "HORIZONTAL_BARS"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "f94ec734-abac-4d14-a2c8-f1cb1fe8066e",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [],
                            "GroupByList": [
                                {
                                    "FieldName": {
                                        "Identity": "customer_segment_ja"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_age"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_gender_ja"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_id"
                                    }
                                }
                            ],
                            "Filters": [],
                            "Sort": {
                                "Operand": {
                                    "Identity": "customer_id"
                                },
                                "SortDirection": "DESCENDING"
                            },
                            "Visual": {
                                "type": "TABLE"
                            }
                        },
                        "SupportingVisuals": []
                    }
                ]
            },
            "Template": {
                "TemplateType": "BASELINE",
                "Slots": [
                    {
                        "SlotId": "SOFT_PRIMARY",
                        "VisualId": "d0c56611-bd13-4de1-9494-2da7d8f673b6"
                    },
                    {
                        "SlotId": "KPI_1",
                        "VisualId": "480c6ecc-6c27-420b-85b1-a045183ed489"
                    },
                    {
                        "SlotId": "KPI_2",
                        "VisualId": "22a14472-ab40-4c40-92a5-e879e4a2fa69"
                    },
                    {
                        "SlotId": "SOFT_GROUNDING",
                        "VisualId": "bc5cef2c-408e-4ef7-8cbf-9eca20004b79"
                    },
                    {
                        "SlotId": "ENTITY_TABLE",
                        "VisualId": "f94ec734-abac-4d14-a2c8-f1cb1fe8066e"
                    }
                ]
            }
        },
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:000000000000:topic/mjHJ90rMHgnDA4nR6E06m0EVAWxxxxx/reviewed-answer/p2w6KWROYoV9YzQGRITyJmHpoTgc33XU",
            "AnswerId": "p2w6KWROYoV9YzQGRITyJmHpoTgc33XU",
            "DatasetArn": "arn:aws:quicksight:ap-northeast-1:000000000000:dataset/838bae14-4635-42f0-a46f-44daafa264fc",
            "Question": "顧客の年齢(customer_age)の分布は?",
            "PrimaryVisual": {
                "VisualId": "5416f759-343d-4384-8f34-c25909b60488",
                "Role": "PRIMARY",
                "Ir": {
                    "Metrics": [
                        {
                            "MetricId": {
                                "Identity": "ef0e4480-1796-40b8-aa2f-b585947ff0b3"
                            },
                            "Function": {
                                "Aggregation": "SUM"
                            },
                            "Operands": [
                                {
                                    "Identity": "customer_age"
                                }
                            ]
                        }
                    ],
                    "GroupByList": [
                        {
                            "FieldName": {
                                "Identity": "customer_age"
                            }
                        }
                    ],
                    "Filters": [],
                    "Visual": {
                        "type": "HORIZONTAL_BARS"
                    }
                },
                "SupportingVisuals": [
                    {
                        "VisualId": "baceed34-f405-43f8-a671-47d2269b4296",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "ef0e4480-1796-40b8-aa2f-b585947ff0b3"
                                    },
                                    "Function": {
                                        "Aggregation": "SUM"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_age"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "072be447-38e4-4c41-bc8c-fae8e39d6ce8",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "b21e8979-f43c-4ee2-ac3e-a165a24d59e1"
                                    },
                                    "Function": {
                                        "Aggregation": "DISTINCT_COUNT"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_age"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "ddf68476-6ceb-4cb3-8094-73b3b98c58a5",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [],
                            "GroupByList": [
                                {
                                    "FieldName": {
                                        "Identity": "customer_gender"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_segment"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_age"
                                    }
                                }
                            ],
                            "Filters": [],
                            "Sort": {
                                "Operand": {
                                    "Identity": "customer_age"
                                },
                                "SortDirection": "DESCENDING"
                            },
                            "Visual": {
                                "type": "TABLE"
                            }
                        },
                        "SupportingVisuals": []
                    }
                ]
            },
            "Template": {
                "TemplateType": "BASELINE",
                "Slots": [
                    {
                        "SlotId": "SOFT_PRIMARY",
                        "VisualId": "5416f759-343d-4384-8f34-c25909b60488"
                    },
                    {
                        "SlotId": "KPI_1",
                        "VisualId": "baceed34-f405-43f8-a671-47d2269b4296"
                    },
                    {
                        "SlotId": "KPI_2",
                        "VisualId": "072be447-38e4-4c41-bc8c-fae8e39d6ce8"
                    },
                    {
                        "SlotId": "ENTITY_TABLE",
                        "VisualId": "ddf68476-6ceb-4cb3-8094-73b3b98c58a5"
                    }
                ]
            }
        }
    ],
    "RequestId": "5f349173-cfe2-4259-b971-3e1e38b287c9"
}

レビュー済みの回答(Verified)を削除する

リストアのため、レビュー済みの回答を一旦削除します。「REMOVE」ボタンから可能です。

ScreenShot 2025-08-27 at 19.07.26

先述のリストコマンドなどでanswer-ids が分かっていれば、CLIを利用した削除も可能です。

aws quicksight batch-delete-topic-reviewed-answer \
--topic-id TOPICID \
--aws-account-id AWSACCOUNTID \                 
—answer-ids: ["AnswerId1, AnswerId2…"]

レビュー済みの回答はない状態となりました。

ScreenShot 2025-08-27 at 19.09.22

レビュー済みの回答(Verified)をリストアする

先ほどバックアップしたデータを復元してみます。

~ $ aws quicksight batch-create-topic-reviewed-answer \
> --cli-input-json file://output.json

Parameter validation failed:
Missing required parameter in input: "AwsAccountId"
Unknown parameter in input: "Status", must be one of: AwsAccountId, TopicId, Answers
Unknown parameter in input: "TopicArn", must be one of: AwsAccountId, TopicId, Answers
Unknown parameter in input: "RequestId", must be one of: AwsAccountId, TopicId, Answers
Unknown parameter in Answers[0]: "Arn", must be one of: AnswerId, DatasetArn, Question, Mir, PrimaryVisual, Template
Unknown parameter in Answers[1]: "Arn", must be one of: AnswerId, DatasetArn, Question, Mir, PrimaryVisual, Template

が・・・エラーが出てインポートが出来ませんでした。 aws quicksight batch-create-topic-reviewed-answer --generate-cli-skeleton コマンドからやり取りするjsonの形など確認できるのですが、Arnなどの情報はインプットとして不要のようです。

ArnStatus など不要そうなパラメータを削り、AwsAccountIdMirを追加しました。
最終的なインプットのjsonは以下の通り。

インプット用JSONファイル(output-fix.json)
{
    "AwsAccountId": "000000000000",
    "TopicId": "mjHJ90rMHgnDA4nR6E06m0EVAWxxxxx",
    "Answers": [
        {
            "AnswerId": "GndqhY0lsp3NJEu3g4gkXrt4dVbcieHS",
            "DatasetArn": "arn:aws:quicksight:ap-northeast-1:000000000000:dataset/838bae14-4635-42f0-a46f-44daafa264fc",
            "Question": "性別(customer_gender_ja)の分布を教えて下さい",
            "Mir": {
                "Metrics": [
                {
                    "MetricId": {
                    "Identity": "d7b59cef-25a6-421a-8883-7c112fb0ce5c"
                    },
                    "Function": {
                    "Aggregation": "DISTINCT_COUNT"
                    },
                    "Operands": [
                    {
                        "Identity": "customer_id"
                    }
                    ]
                }
                ],
                "GroupByList": [
                {
                    "FieldName": {
                    "Identity": "customer_gender_ja"
                    }
                }
                ],
                "Filters": [],
                "Visual": {
                "type": "HORIZONTAL_BARS"
                }
            },
            "PrimaryVisual": {
                "VisualId": "d0c56611-bd13-4de1-9494-2da7d8f673b6",
                "Role": "PRIMARY",
                "Ir": {
                    "Metrics": [
                        {
                            "MetricId": {
                                "Identity": "d7b59cef-25a6-421a-8883-7c112fb0ce5c"
                            },
                            "Function": {
                                "Aggregation": "DISTINCT_COUNT"
                            },
                            "Operands": [
                                {
                                    "Identity": "customer_id"
                                }
                            ]
                        }
                    ],
                    "GroupByList": [
                        {
                            "FieldName": {
                                "Identity": "customer_gender_ja"
                            }
                        }
                    ],
                    "Filters": [],
                    "Visual": {
                        "type": "HORIZONTAL_BARS"
                    }
                },
                "SupportingVisuals": [
                    {
                        "VisualId": "480c6ecc-6c27-420b-85b1-a045183ed489",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "d7b59cef-25a6-421a-8883-7c112fb0ce5c"
                                    },
                                    "Function": {
                                        "Aggregation": "DISTINCT_COUNT"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_id"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "22a14472-ab40-4c40-92a5-e879e4a2fa69",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "281f29d9-53cd-4952-947a-0dd3932c0d44"
                                    },
                                    "Function": {
                                        "Aggregation": "DISTINCT_COUNT"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_gender_ja"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "bc5cef2c-408e-4ef7-8cbf-9eca20004b79",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "b488edca-517b-454e-b846-0e2e2b3d1f71"
                                    },
                                    "Function": {
                                        "Aggregation": "SUM"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_age"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [
                                {
                                    "FieldName": {
                                        "Identity": "customer_id"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_gender_ja"
                                    }
                                }
                            ],
                            "Filters": [],
                            "Sort": {
                                "Operand": {
                                    "Identity": "customer_age"
                                },
                                "SortDirection": "DESCENDING"
                            },
                            "Visual": {
                                "type": "HORIZONTAL_BARS"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "f94ec734-abac-4d14-a2c8-f1cb1fe8066e",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [],
                            "GroupByList": [
                                {
                                    "FieldName": {
                                        "Identity": "customer_segment_ja"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_age"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_gender_ja"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_id"
                                    }
                                }
                            ],
                            "Filters": [],
                            "Sort": {
                                "Operand": {
                                    "Identity": "customer_id"
                                },
                                "SortDirection": "DESCENDING"
                            },
                            "Visual": {
                                "type": "TABLE"
                            }
                        },
                        "SupportingVisuals": []
                    }
                ]
            },
            "Template": {
                "TemplateType": "BASELINE",
                "Slots": [
                    {
                        "SlotId": "SOFT_PRIMARY",
                        "VisualId": "d0c56611-bd13-4de1-9494-2da7d8f673b6"
                    },
                    {
                        "SlotId": "KPI_1",
                        "VisualId": "480c6ecc-6c27-420b-85b1-a045183ed489"
                    },
                    {
                        "SlotId": "KPI_2",
                        "VisualId": "22a14472-ab40-4c40-92a5-e879e4a2fa69"
                    },
                    {
                        "SlotId": "SOFT_GROUNDING",
                        "VisualId": "bc5cef2c-408e-4ef7-8cbf-9eca20004b79"
                    },
                    {
                        "SlotId": "ENTITY_TABLE",
                        "VisualId": "f94ec734-abac-4d14-a2c8-f1cb1fe8066e"
                    }
                ]
            }
        },
        {
            "AnswerId": "p2w6KWROYoV9YzQGRITyJmHpoTgc33XU",
            "DatasetArn": "arn:aws:quicksight:ap-northeast-1:000000000000:dataset/838bae14-4635-42f0-a46f-44daafa264fc",
            "Question": "顧客の年齢(customer_age)の分布は?",
            "Mir": {
                "Metrics": [
                    {
                        "MetricId": {
                            "Identity": "ef0e4480-1796-40b8-aa2f-b585947ff0b3"
                        },
                        "Function": {
                            "Aggregation": "SUM"
                        },
                        "Operands": [
                            {
                                "Identity": "customer_age"
                            }
                        ]
                    }
                ],
                "GroupByList": [
                    {
                        "FieldName": {
                            "Identity": "customer_age"
                        }
                    }
                ],
                "Filters": [],
                "Visual": {
                    "type": "HORIZONTAL_BARS"
                }
            },
            "PrimaryVisual": {
                "VisualId": "5416f759-343d-4384-8f34-c25909b60488",
                "Role": "PRIMARY",
                "Ir": {
                    "Metrics": [
                        {
                            "MetricId": {
                                "Identity": "ef0e4480-1796-40b8-aa2f-b585947ff0b3"
                            },
                            "Function": {
                                "Aggregation": "SUM"
                            },
                            "Operands": [
                                {
                                    "Identity": "customer_age"
                                }
                            ]
                        }
                    ],
                    "GroupByList": [
                        {
                            "FieldName": {
                                "Identity": "customer_age"
                            }
                        }
                    ],
                    "Filters": [],
                    "Visual": {
                        "type": "HORIZONTAL_BARS"
                    }
                },
                "SupportingVisuals": [
                    {
                        "VisualId": "baceed34-f405-43f8-a671-47d2269b4296",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "ef0e4480-1796-40b8-aa2f-b585947ff0b3"
                                    },
                                    "Function": {
                                        "Aggregation": "SUM"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_age"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "072be447-38e4-4c41-bc8c-fae8e39d6ce8",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [
                                {
                                    "MetricId": {
                                        "Identity": "b21e8979-f43c-4ee2-ac3e-a165a24d59e1"
                                    },
                                    "Function": {
                                        "Aggregation": "DISTINCT_COUNT"
                                    },
                                    "Operands": [
                                        {
                                            "Identity": "customer_age"
                                        }
                                    ]
                                }
                            ],
                            "GroupByList": [],
                            "Filters": [],
                            "Visual": {
                                "type": "KPI"
                            }
                        },
                        "SupportingVisuals": []
                    },
                    {
                        "VisualId": "ddf68476-6ceb-4cb3-8094-73b3b98c58a5",
                        "Role": "COMPLIMENTARY",
                        "Ir": {
                            "Metrics": [],
                            "GroupByList": [
                                {
                                    "FieldName": {
                                        "Identity": "customer_gender"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_segment"
                                    }
                                },
                                {
                                    "FieldName": {
                                        "Identity": "customer_age"
                                    }
                                }
                            ],
                            "Filters": [],
                            "Sort": {
                                "Operand": {
                                    "Identity": "customer_age"
                                },
                                "SortDirection": "DESCENDING"
                            },
                            "Visual": {
                                "type": "TABLE"
                            }
                        },
                        "SupportingVisuals": []
                    }
                ]
            },
            "Template": {
                "TemplateType": "BASELINE",
                "Slots": [
                    {
                        "SlotId": "SOFT_PRIMARY",
                        "VisualId": "5416f759-343d-4384-8f34-c25909b60488"
                    },
                    {
                        "SlotId": "KPI_1",
                        "VisualId": "baceed34-f405-43f8-a671-47d2269b4296"
                    },
                    {
                        "SlotId": "KPI_2",
                        "VisualId": "072be447-38e4-4c41-bc8c-fae8e39d6ce8"
                    },
                    {
                        "SlotId": "ENTITY_TABLE",
                        "VisualId": "ddf68476-6ceb-4cb3-8094-73b3b98c58a5"
                    }
                ]
            }
        }
    ]
}

問題なくインポートできました!

~ $ aws quicksight batch-create-topic-reviewed-answer --cli-input-json file://output-fix.json
{
    "Status": 200,
    "TopicId": "mjHJ90rMHgnDA4nR6E06m0EVAWxxxxx",
    "SucceededAnswers": [
        {
            "AnswerId": "p2w6KWROYoV9YzQGRITyJmHpoTgc33XU"
        },
        {
            "AnswerId": "GndqhY0lsp3NJEu3g4gkXrt4dVbcieHS"
        }
    ],
    "InvalidAnswers": [],
    "RequestId": "4b4a1e2d-7844-49a0-b44d-db89a1ef38c2"
}

更新時間を見ると、インポートした時間に更新されています。Asked(その質問が使われた回数)はリセットされていました。

ScreenShot 2025-08-27 at 19.33.17

回答を確認してみると、レビュー済みの回答を削除する前のレイアウトが維持されていました!

ScreenShot 2025-08-27 at 19.34.47

おわりに

Amazon Q in QuickSightのレビュー済み回答をCLIから操作する方法を紹介してみました。
Removeボタン1回で気軽に質問は消せてしまうので、バックアップから戻したいなど需要があれば参考にしてみてください。

このエントリが誰かの助けになれば幸いです。
それでは、クラウド事業本部 コンサルティング部の荒平がお送りしました!

参考

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/q-topic-reviewed-answer-apis.html

https://dev.classmethod.jp/articles/q-in-q-batch-configuration-include/

https://docs.aws.amazon.com/cli/latest/reference/quicksight/list-topic-reviewed-answers.html

この記事をシェアする

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

© Classmethod, Inc. All rights reserved.