有没有一种方法可以完全通过代码(boto3)创建Quicksight分析?

时间:2019-12-13 08:15:40

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

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

此后,我需要通过手动创建的代码来创建所有图形。我目前找不到通过代码执行此操作的选项。有一个“ create_template” api调用,应该通过现有的Quicksight分析来创建模板。但这需要我无法找到的分析结果的ARN。

关于做什么的任何建议?

4 个答案:

答案 0 :(得分:2)

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

摘要

在本文底部的权限添加到您的数据集和数据源中,以便它们出现在控制台中。确保使用您的详细信息填写主要信息。

详细信息

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

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

我已经对此进行了测试,这是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"
    ]
  }
]

答案 1 :(得分:0)

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

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

我将包括在文档中找到的所有快速见解权限,从那里开始并从那里削下来。如果没有其他要求,请从控制台创建数据源/数据集,然后使用describe-* CLI调用查看其用途。

有点古怪。

答案 2 :(得分:0)

听起来您的小问题是关于分析的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末尾的外观,用于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复制您的分析。不幸的是,目前的答案是(12/16/19)否。

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

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

答案 3 :(得分:0)

有多种方法可以找到关联的分析ID。使用以下任何一种。

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

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

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