使用 QuickSight API 创建包含多个数据集的模板,来自 Python 3/boto3

Creating a template with multiple data sets using the QuickSight API, from Python 3/boto3

对于具有多个数据集的模板,我有点受困于 QS API。 boto3 的 API 表示 (https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/quicksight.html#QuickSight.Client.create_template):

    SourceEntity={
        'SourceAnalysis': {
            'Arn': 'string',
            'DataSetReferences': [
                {
                    'DataSetPlaceholder': 'string',
                    'DataSetArn': 'string'
                },
            ]
        },

我正在尝试将其传递给 DataSetReferences:

[{'DataSetArn': 'my-dummy-arn1',
  'DataSetPlaceholder': 'my-dummy-placeholder1'},
 {'DataSetArn': 'my-dummy-arn2',
  'DataSetPlaceholder': 'my-dummy-placeholder2'},
 {'DataSetArn': 'my-dummy-arn3',
  'DataSetPlaceholder': 'my-dummy-placeholder3'}]

对于我未经训练的人来说,QS 似乎期望 dictslist,这应该是我传递的数据结构。但是,我明白了:

botocore.errorfactory.InvalidParameterValueException: An error occurred (InvalidParameterValueException) when calling the UpdateTemplate operation: Expected 1 placeholders. Given 3

我是不是误读了 API 文档?

好的,我找到了根本原因,这是用户错误。

以防其他人碰到这个:

检查手动配置的源分析(QS 没有自动源分析creation/restore/save,既不是通过 CLI,也不是 API 或其他一些方式)。

占位符的数量需要与源分析中的数据集数量相匹配。