【问题标题】:Is there a way to create Quicksight analysis purely through code (boto3)?有没有办法纯粹通过代码(boto3)来创建 Quicksight 分析?
【发布时间】:2019-12-13 08:15:40
【问题描述】:

我目前在我的 Quicksight 帐户中拥有一个数据源 (Redshift)、一些数据集(一些 Redshift 视图)和一个分析(使用这些数据集的图形和图表)。我可以在 AWS Quicksight 控制台上查看所有这些内容。但是当我使用 boto3 创建数据源和数据集时,控制台上没有显示任何内容。但是,当我使用 list_data_sources 和 list_data_sets 调用时,它们确实会出现。

在此之后,我需要通过手动创建的代码创建所有图表。我目前找不到通过代码执行此操作的选项。有一个 'create_template' api 调用应该通过现有的 Quicksight 分析创建一个模板。但它需要我找不到的分析的 ARN。

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    注意:这仅回答了为什么数据集/源不出现在控制台中。至于另一个问题,我认为mjgpy3 会有所帮助。

    总结

    将本文底部的权限添加到您的数据集和数据源,以便它们显示在控制台中。请务必填写您的详细信息。

    详情

    为了在通过 API 创建数据集和数据源时显示在控制台中,您必须确保已为其添加了正确的权限。如果不添加正确的权限,CLI 确实会列出它们而控制台不会。

    如果您通过控制台创建了数据集/源,则可以使用 CLI(aws quicksight describe-data-set-permissionsaws quicksight describe-data-source-permissions)查看 AWS 授予它们的权限,以便您的账户可以与它们交互。

    我已经对此进行了测试,这些是 AWS 自 2020 年 3 月 25 日起分配给他们的内容。

    数据集权限:

    "permissions": [
      {
        "Principal": "arn:aws:quicksight:<region>:<aws_account_id>:user/default/{IAM user name}",
        "Actions": [
          "quicksight:UpdateDataSetPermissions",
          "quicksight:DescribeDataSet",
          "quicksight:DescribeDataSetPermissions",
          "quicksight:PassDataSet",
          "quicksight:DescribeIngestion",
          "quicksight:ListIngestions",
          "quicksight:UpdateDataSet",
          "quicksight:DeleteDataSet",
          "quicksight:CreateIngestion",
          "quicksight:CancelIngestion"
        ]
      }
    ]
    

    数据源权限:

    "permissions": [
      {
        "Principal": "arn:aws:quicksight:<region>:<aws_account_id>:user/default/{IAM user name}",
        "Actions": [
          "quicksight:UpdateDataSourcePermissions",
          "quicksight:DescribeDataSource",
          "quicksight:DescribeDataSourcePermissions",
          "quicksight:PassDataSource",
          "quicksight:UpdateDataSource",
          "quicksight:DeleteDataSource"
        ]
      }
    ]
    

    【讨论】:

      【解决方案2】:

      听起来您的小问题是关于分析的 ARN。

      分析 ARN 的格式为

      arn:aws:quicksight:$AWS_REGION:$AWS_ACCOUNT_ID:analysis/$ANALYSIS_ID
      

      在哪里

      • $AWS_REGION 被替换为分析所在的区域
      • $AWS_ACCOUNT_ID 替换为您的 AWS 账户 ID
      • $ANALYSIS_ID 替换为分析 ID

      如果您正在寻找 $ANALYSIS_ID,它是 URL 末尾的 GUID 外观,用于在 QuickSight URL 中进行分析

      所以,如果您在 URL 上进行分析

      https://quicksight.aws.amazon.com/sn/analyses/018ef6393-2c71-4842-9798-1aa2f0902804
      

      分析 ID 将是 018ef6393-2c71-4842-9798-1aa2f0902804(这是我为本示例注入的假 ID)。

      您更大的问题似乎是您是否可以使用create_template API 来复制您的分析。不幸的是,目前(2019 年 12 月 16 日)的答案是否定的。

      您可以使用create_dashboard API 从使用create_template 制作的模板发布仪表板,但不能从模板创建分析。

      我回答这一点只是为了澄清一下,因为您实际上可以创建仪表板(基本上是分析的已发布版本)而不是另一个分析。

      【讨论】:

      • 非常感谢。对于我的用例,使用已创建的模板创建仪表板将起作用。但是当我在 boto3 中调用 create_dashboard 函数时遇到了问题。当我使用权限(主体和操作)运行该函数时,我收到以下错误:botocore.errorfactory.InvalidParameterValueException:调用 CreateDashboard 操作时发生错误(InvalidParameterValueException):给定操作组合:[quicksight:DescribeDashboard] 无效。有想法该怎么解决这个吗?似乎没有任何操作组合起作用。
      • @ashirhs 我正在使用节点 SDK,所以请原谅差异,但这里是我分配的权限,您可能希望将 group 交换为 user 并使用用户 ID 而不是一组,我不知道你的确切用例:gist.github.com/mjgpy3/b72487a9e261bf9405bff36ac7d9fe79
      【解决方案3】:

      您可以通过多种方式找到关联的分析 ID。使用以下任何一种。

      1. 仪表板 URL 包含仪表板 ID,使用此 ID 执行 API 调用 describe-dashboard,您将在源实体中看到分析 ARN。

      2. 单击仪表板上的“另存为”选项,它将带您进入相关分析。 [如果仪表板是从模板创建的,可能看不到此选项]

      3. 还可以使用 list_dashboards API 调用找到仪表板 ID。打印所有仪表板 ID 和名称。您可以将 ID 与给定的仪表板名称匹配。查看整个列表,因为仪表板 ID 是唯一的,但仪表板名称不是。一个人可以有多个同名的仪表板。

      【讨论】:

        【解决方案4】:

        我也一直在玩这个并且遇到了同样的问题。通过引用 quicksight 用户,确保为数据源和数据集正确设置了您的权限,如下所示:

        arn:aws:quicksight:{region}:xxxxxxxxxx:user/default/{user}
        

        我将包含文档中的所有快速查看权限,以从那里开始并从那里减少。如果不出意外,从控制台创建数据源/数据集,然后使用 describe-* CLI 调用查看它们使用的内容。

        这有点奇怪。

        【讨论】:

          猜你喜欢
          • 2011-06-09
          • 1970-01-01
          • 1970-01-01
          • 2022-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多