【问题标题】:Creating Amazon Quicksight datasets in code and using them through the console在代码中创建 Amazon Quicksight 数据集并通过控制台使用它们
【发布时间】:2020-02-14 03:06:25
【问题描述】:

我正在代码 (boto3) 中创建数据源/数据集,但这些不会显示在控制台中。 即使数据集与 list_data_sets 一起列出,但它们似乎在控制台中不可用。

我需要能够在代码中创建所有必要的数据集,然后能够使用这些数据集在控制台中创建新的分析/仪表板。

我使用的是标准版 QuickSight。 这可以做到吗?或者,只能在企业版中完成吗?或者,根本没有?

谢谢

【问题讨论】:

  • 我在标准版中通过 boto3 创建了数据集。它有效

标签: amazon-web-services boto3 amazon-quicksight


【解决方案1】:

根据QuickSight pricing page,“API”在标准版中不可用。这到底是什么意思,我不知道。

但是,假设可以调用create-data-set,需要记住的重要一点是数据集权限是用户查看它们所必需的。

根据boto docs,这些权限应该包含在以下架构中

    Permissions=[
        {
            'Principal': 'string',
            'Actions': [
                'string',
            ]
        },
    ]

在我的代码中,我使用以下内容与all-users 组共享(注意组主体,将AWS_REGIONACCOUNT_ID 替换为您的值)

    Permissions= [
      {
        'Principal': 'arn:aws:quicksight:AWS_REGION:ACCOUNT_ID:group/default/all-users',
        'Actions': [
          'quicksight:DescribeDataSet',
          'quicksight:DescribeDataSetPermissions',
          'quicksight:PassDataSet',
          'quicksight:DescribeIngestion',
          'quicksight:ListIngestions'
        ]
      }
    ],

我相信个人用户也可以这样做,使用 user/default/user.name 而不是 group/default/all-users 的 ARN 资源。

对于数据源,我使用的权限集是

        'Actions': [
          'quicksight:DescribeDataSource',
          'quicksight:DescribeDataSourcePermissions',
          'quicksight:UpdateDataSource',
          'quicksight:UpdateDataSourcePermissions',
          'quicksight:DeleteDataSource',
          'quicksight:PassDataSource'
        ]

【讨论】:

  • 感谢您的帮助。尽管它说“API 不可用”,但它们显然是因为我可以使用 aws-sdk 成功创建和列出我的数据集。我已经尝试将 QuickSight 实例升级到 Enterprise,并且通过代码(使用 sdk)创建的数据集仍然不可见。 QuickSight说默认资源权限允许所有用户默认访问所有资源,但是,我尝试了您添加权限的建议,但没有奏效:通过代码创建仍然成功并且它们是可列出的,但仍然没有'不显示在控制台中。
  • @FredHeeks 这很奇怪,因为我正在经历您所描述的内容并且权限已修复它。您是针对您的用户所属的组还是仅针对您的用户?
  • 我只是针对我的用户。我使用 list-users 来确保我拥有完全正确的 ARN,但它们仍然没有出现在控制台中。您的代码创建的数据集是否显示在您的控制台中?
  • @FredHeeks 是的,他们在添加权限代码后会这样做。值得注意的是,主体是用户的 ARN,而不是称为“主体”的列表 API 返回的值(令人困惑)。
  • 我一直在使用列表用户中的 Arn:{ "Status": 200, "UserList": [ { "Arn": "arn:aws:quicksight:xxxxxxxx:xxxxxxxxxxxxxx:user/default/xxxxxxxxxxxxxxxxxxxxxxxxxx", "UserName": "xxxxxxxxxxxxxxxxxxxxxxxxxx", "Email": "xxxxxxxxxxxxxxxxxxxxxxxxxx", "Role": "ADMIN", "Active": true, "PrincipalId": "federated/iam/xxxxxxxxxxxxxxxxxxxxxxxxxx" } } 而不是 PrincipalId 我正在使用 CustomSQL 来直接查询,所以可能就是这样。我将尝试使用更简单的数据集,看看是否可行。
猜你喜欢
  • 1970-01-01
  • 2014-10-08
  • 2022-06-14
  • 2022-07-28
  • 2013-09-10
  • 1970-01-01
  • 2012-04-14
相关资源
最近更新 更多