

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon Quick Sight 处理 Quick Sight 主题 APIs
<a name="topics-cli"></a>


|  | 
| --- |
|  适用于：企业版  | 


|  | 
| --- |
|    目标受众：Amazon Quick 开发者  | 

使用本节学习如何使用 Amazon Quick Sight 命令行界面 (CLI) 处理 Quick Sight 主题。

**先决条件**

在开始之前，请确保您拥有一个 AWS Identity and Access Management (IAM) 角色，该角色可向 CLI 用户授予调用 Quick Sight API 操作的访问权限。下表显示必须向 IAM 策略添加哪些权限才能使用特定 API 操作。要使用所有主题 API 操作，请添加表中列出的所有权限。


| API 操作 | IAM 策略 | 
| --- | --- | 
|  `CreateTopic`  |  `quicksight:CreateTopic` `quicksight:PassDataSet`  | 
|  `ListTopics`  |  `quicksight:ListTopics`  | 
|  `DescribeTopic`  |  `quicksight:DescribeTopic`  | 
|  `DescribeTopicPermissions`  |  `quicksight:DescribeTopicPermissions`  | 
|  `DescribeTopicRefresh`  |  `quicksight:DescribeTopicRefresh`  | 
|  `DeleteTopic`  |  `quicksight:DeleteTopic`  | 
|  `UpdateTopic`  |  `quicksight:UpdateTopic` `quicksight:PassDataSet`  | 
|  `UpdateTopicPermissions`  |  `quicksight:UpdateTopicPermissions`  | 
|  `CreateTopicRefreshSchedule`  |  `quicksight:CreateTopicRefreshSchedule`  | 
|  `ListTopicRefreshSchedules`  |  `quicksight:ListTopicRefreshSchedules`  | 
|  `DescribeTopicRefreshSchedule`  |  `quicksight:DescribeTopicRefreshSchedule`  | 
|  `UpdateTopicRefreshSchedule`  |  `quicksight:UpdateTopicRefreshSchedule`  | 
|  `DeleteTopicRefreshSchedule`  |  `quicksight:DeleteTopicRefreshSchedule`  | 
|  `BatchCreateTopicReviewedAnswer`  |  `quicksight:BatchCreateTopicReviewedAnswer`  | 
|  `BatchDeleteTopicReviewedAnswer`  |  `quicksight:BatchDeleteTopicReviewedAnswer`  | 
|  `ListTopicReviewedAnswers`  |  `quicksight:ListTopicReviewedAnswers`  | 

以下示例演示了允许用户使用 `ListTopics` API 操作的 IAM 策略。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "quicksight:ListTopics"
            ],
            "Resource": "*"
        }
    ]
}
```

------

配置了使用 Quick Sight 创建 Quick Sight 主题的权限后 APIs，请使用以下主题来创建和使用 Quick Sight 主题 APIs。

**Topics**
+ [使用 Quick Sight 处理 Quick Sight 主题 APIs](topic-cli-examples.md)
+ [使用 Quick Sight CLI 配置 Quick Sight 主题刷新计划](topic-refresh-apis.md)
+ [在内部和之间复制和迁移 Quick Sight 主题 AWS 账户](topic-cli-walkthroughs.md)
+ [使用 Quick Sight 在 Quick Sight 主题中创建和修改已审阅的 APIs](topic-reviewed-answer-apis.md)

# 使用 Quick Sight 处理 Quick Sight 主题 APIs
<a name="topic-cli-examples"></a>

以下示例创建了一个新主题。

```
aws quicksight create-topic
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
--topic TOPIC
```

您也可以使用带有以下命令的 CLI 框架文件来创建新主题。有关 CLI 框架文件的更多信息，请参阅 *Amazon Quick Sight 开发人员指南*中的[使用 CLI 框架文件](https://docs.aws.amazon.com/quicksight/latest/developerguide/cli-skeletons.html)。

```
aws quicksight create-topic
--cli-input-json file://createtopic.json
```

创建新主题时，数据集刷新配置不会复制到该主题中。要为新主题设置主题刷新计划，您可以调用 `create-topic-refresh-schedule` API。有关使用 CLI 配置主题刷新计划的更多信息，请参阅 [使用 Quick Sight CLI 配置 Quick Sight 主题刷新计划](topic-refresh-apis.md)。

创建第一个主题后，您可以更新、删除、列出或请求主题摘要。

以下示例更新了主题。

```
aws quicksight update-topic
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
--topic TOPIC
```

您也可以使用带有以下命令的 CLI 框架文件来更新主题。有关 CLI 框架文件的更多信息，请参阅 *Amazon Quick Sight 开发人员指南*中的[使用 CLI 框架文件](https://docs.aws.amazon.com/quicksight/latest/developerguide/cli-skeletons.html)。

```
aws quicksight update-topic
--cli-input-json file://updatetopic.json
```

以下示例提供了 Quick 账户中所有主题的列表。

```
aws quicksight list-topics 
--aws-account-id AWSACCOUNTID
```

以下示例删除了一个主题。

```
aws quicksight delete-topic 
--aws-account-id AWSACCOUNTID 
--topic-id TOPICID
```

以下示例提供了有关如何配置主题的信息。

```
aws quicksight describe-topic 
--aws-account-id AWSACCOUNTID 
--topic-id TOPICID
```

以下命令更新主题的权限。

```
aws quicksight update-topic-permissions
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
--grant-permissions Principal=arn:aws:quicksight:us-east-1:AWSACCOUNTID:user/default/USERNAME,Actions=quicksight:DescribeTopic
--revoke-permissions Principal=arn:aws:quicksight:us-east-1:AWSACCOUNTID:user/default/USERNAME,Actions=quicksight:DescribeTopic
```

使用`grant-permissions`参数向 Quick 账户用户授予读取和作者权限。要向账户用户授予读取权限，请输入以下值：`"quicksight:DescribeTopic"`。要向账户用户授予权限，请输入以下值：
+ `"quicksight:DescribeTopic"`
+ `"quicksight:DescribeTopicRefresh"`
+ `"quicksight:ListTopicRefreshSchedules"`
+ `"quicksight:DescribeTopicRefreshSchedule"`
+ `"quicksight:DeleteTopic"`
+ `"quicksight:UpdateTopic"`
+ `"quicksight:CreateTopicRefreshSchedule"`
+ `"quicksight:DeleteTopicRefreshSchedule"`
+ `"quicksight:UpdateTopicRefreshSchedule"`
+ `"quicksight:DescribeTopicPermissions"`
+ `"quicksight:UpdateTopicPermissions"`

`RevokePermissions` 参数撤销授予账户用户的所有权限。

以下命令描述了来自主题的所有权限。

```
aws quicksight describe-topic-permissions 
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
```

创建 Quick Sight 主题后，您可以使用 Amazon Quick Sight APIs [配置主题刷新计划](https://docs.aws.amazon.com/quicksuite/latest/userguide/topic-refresh-apis)、在账户[内或账户之间迁移 Quick Sight 主题](https://docs.aws.amazon.com/quicksuite/latest/userguide/topic-cli-walkthroughs)以及[创建已审核的答案](https://docs.aws.amazon.com/quicksuite/latest/userguide/topic-reviewed-answer-apis)。

# 使用 Quick Sight CLI 配置 Quick Sight 主题刷新计划
<a name="topic-refresh-apis"></a>

以下命令创建主题的刷新计划。

```
aws quicksight create-topic-refresh-schedule
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
--dataset-arn DATASETARN
--refresh-schedule REFRESHSCHEDULE
```

为主题创建刷新计划后，您可以更新、删除、列出或请求该主题的刷新计划摘要。

以下命令更新主题的刷新计划。

```
aws quicksight update-topic-refresh-schedule 
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
--dataset-id DATASETID
--refresh-schedule REFRESHSCHEDULE
```

以下示例提供了为主题配置的所有刷新计划的列表。

```
aws quicksight list-topic-refresh-schedules
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
```

以下示例删除了主题刷新计划。

```
aws quicksight delete-topic-refresh-schedule 
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
--dataset-id DATASETID
```

以下示例提供了有关如何配置主题刷新计划的信息。

```
aws quicksight describe-topic-refresh-schedule  
--aws-account-id AWSACCOUNTID
--topic-id TOPICID
--dataset-id DATASETID
```

# 在内部和之间复制和迁移 Quick Sight 主题 AWS 账户
<a name="topic-cli-walkthroughs"></a>

您可以使用 Quick Sight 命令行界面 (CLI) 将 Quick Sight 主题从一个账户迁移到另一个账户。您可以使用 Quick Sight CLI 重复重复使用同一个主题，而不必在多个仪表板、命名空间或账户中手动复制同一主题。此功能节省了 Quick Sight 作者的时间，并为跨多个仪表板的仪表板读者创建了标准化的主题体验。

要使用 Quick Sight CLI 迁移主题，请按以下步骤操作

**将主题迁移到其他账户**

1. 首先，确定要迁移的主题。您可以使用 `list-topics` API 命令查看 Quick 账户中每个主题的列表。

   ```
   aws quicksight list-topics --aws-account-id AWSACCOUNTID
   ```

1. 获得主题列表后，找到要迁移的主题并拨`describe-topic`打电话以接收该主题配置的 JSON 结构。

   ```
   aws quicksight describe-topic 
       --aws-account-id AWSACCOUNTID
       --topic-id TOPICID
   ```

   下面是 `describe-topic` API 响应的示例。

   ```
   {
       "Status": 200,
       "TopicId": "TopicExample", 
       "Arn": "string",
       "Topic": [
           {
               "Name": "{}",
               "DataSets": [
               {
               "DataSetArn": "{}",
               "DataSetName": "{}",
               "DataSetDescription": "{}",
               "DataAggregation": "{}",
               "Filters": [],
               "Columns": [],
               "CalculatedFields": [],
               "NamedEntities": []
               }
               ]
           }
       ],
       "RequestId": "requestId"
       }
   ```

1. 使用 JSON 响应创建一个框架文件，您可以将其输入到另一个 Quick 账户中的新`create-topic`呼叫中。在使用骨架文件进行 API 调用之前，请务必更改骨架文件中的 AWS 账户 ID 和数据集 ID，使其与要向其添加新主题的 AWS 账户 ID 和数据集 ID 相匹配。有关 CLI 框架文件的更多信息，请参阅 *Amazon Quick Sight 开发人员指南*中的[使用 CLI 框架文件](https://docs.aws.amazon.com/quicksight/latest/developerguide/cli-skeletons.html)。

   ```
   aws quicksight create-topic --aws-account-id AWSACCOUNTID \
   --cli-input-json file://./create-topic-cli-input.json
   ```

在您`create-topic`调用 Quick Sight API 后，新主题会出现在您的账户中。要确认新主题是否存在，请`list-topics`调用 Quick Sight API。如果复制的源主题包含已验证答案，则答案不会迁移到新主题。要查看配置到源主题的所有已验证答案的列表，请使用 `describe-topic` API 调用。

# 使用 Quick Sight 在 Quick Sight 主题中创建和修改已审阅的 APIs
<a name="topic-reviewed-answer-apis"></a>

创建 Quick Sight 主题后，您可以使用 Quick Sight APIs 创建、列出、更新和删除已审阅的主题答案。

下面的命令批量为 Quick Sight 主题创建多达 100 个经过审查的答案。

```
aws quicksight batch-create-topic-reviewed-answer \
--topic-id TOPICID \
--aws-account-id AWSACCOUNTID \                 
—answers ANSWERS
```

您还可以使用以下命令从 CLI 骨架文件批量创建已审核答案。有关 CLI 框架文件的更多信息，请参阅 *Amazon Quick Sight 开发人员指南*中的[使用 CLI 框架文件](https://docs.aws.amazon.com/quicksight/latest/developerguide/cli-skeletons.html)。

```
aws quicksight batch-create-topic-reviewed-answer \ 
--cli-input-json file://createTopicReviewedAnswer.json
```

以下命令列出了 Quick Sight 主题中所有已审核的答案。

```
aws quicksight list-topic-reviewed-answers \
--aws-account-id AWSACCOUNTID \
--topic-id TOPICID \
```

下面的示例批量删除某个主题的最多 100 个已审核答案。

```
aws quicksight batch-delete-topic-reviewed-answer \
--topic-id TOPICID \
--aws-account-id AWSACCOUNTID \                 
—answer-ids: ["AnswerId1, AnswerId2…"]
```

您还可以使用以下命令从 CLI 骨架文件批量创建主题已审核答案。有关 CLI 框架文件的更多信息，请参阅 *Amazon Quick Sight 开发人员指南*中的[使用 CLI 框架文件](https://docs.aws.amazon.com/quicksight/latest/developerguide/cli-skeletons.html)。

```
aws quicksight batch-delete-topic-reviewed-answer \
--cli-input-json file://deleteTopicReviewedAnswer.json
```

要更新已审核答案，请使用 `batch-delete-topic-reviewed-answer` API 从主题中删除现有答案。然后，使用 `batch-create-topic-reviewed-answer` API 将更新的已审核答案添加到主题。