首页 > 解决方案 > 从 Python 3/boto3 使用 QuickSight API 创建具有多个数据集的模板

问题描述

对于具有多个数据集的模板,我有点坚持使用 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 期望 a listof dicts,这应该是我传递的数据结构。但是,我明白了:

botocore.errorfactory.InvalidParameterValueException:调用 UpdateTemplate 操作时发生错误 (InvalidParameterValueException):需要 1 个占位符。给定 3

我是否误读了 API 文档?

标签: python-3.xamazon-web-servicesboto3amazon-quicksight

解决方案


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

万一其他人碰到这个:

检查手动配置的源分析(QS没有自动源分析创建/恢复/保存,既不是通过CLI,也不是API或其他方式)。

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


推荐阅读