使用 Amazon QuickSight API 开发应用程序 - Amazon QuickSight
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon QuickSight API 开发应用程序

您可以使用访问针对您正在使用的编程语言或平台量身定制的 API,从而管理部署的大部分方面。 Amazon SDKs 有关更多信息,请参阅 Amazon SDKs

有关 API 操作的更多信息,请参阅 Amazon QuickSight API 参考

在调用 Amazon QuickSight API 操作之前,您需要获得附加到您的 IAM 身份的策略中的quicksight:operation-name权限。例如,要调用 list-users,您需要 quicksight:ListUsers 权限。该模式适用于所有操作。

如果不确定所需的具体权限,您可以尝试进行调用。客户端会告诉您到底缺少什么权限。您可以在权限策略的“资源”字段中使用星号 (*),而非指定显式资源。不过,建议您尽量对每个权限施加限制。您可以使用用户的 Amazon A QuickSight mazon 资源名称 (ARN) 标识符在策略中指定或排除资源,从而限制用户访问。

有关更多信息,请参阅下列内容:

要检索用户或组的 ARN,请对相关资源使用 Describe 操作。您也可以在 IAM 中添加条件,以进一步限制在某些情况下对 API 的访问。例如,User1添加到时Group1,主要资源是Group1,因此您可以允许或拒绝访问某些群组,但也可以使用 IAM Amazon QuickSight 密钥添加条件,quicksight:UserName以允许或阻止将某些用户添加到该群组。

下面是一个示例策略。这意味着只要添加到组中的用户名不是 user1,附加该策略的调用方就能够在任意组上调用 CreateGroupMembership 操作。

{ "Effect": "Allow", "Action": "quicksight:CreateGroupMembership", "Resource": "arn:aws:quicksight:us-east-1:aws-account-id:group/default/*", "Condition": { "StringNotEquals": { "quicksight:UserName": "user1" } } }
Amazon CLI

以下过程说明了如何通过 Amazon CLI 与 Amazon QuickSight API 操作进行交互。以下说明已在 Bash 中进行测试,在其他命令行环境中应可取得相同或相似的效果。

  1. 在您的环境中安装 Amazon SDK。有关如何执行该操作的说明,请参阅 Amazon 命令行界面

  2. 使用以下命令和后续说明设置您的 Amazon CLI 身份和区域。使用具有适当权限的 IAM 身份或角色的凭证。

    aws configure
  3. 通过发出以下命令来查看 Amazon QuickSight SDK 的帮助:

    aws quicksight help
  4. 要获取有关如何使用 API 的详细说明,请输入 API 名称,然后输入 help,如下所示:

    aws quicksight list-users help
  5. 现在,您可以调用亚马逊 QuickSight API 操作了。此示例返回您账户中的亚马逊 QuickSight 用户列表。

    aws quicksight list-users --aws-account-id aws-account-id --namespace default --region us-east-1
Java SDK

使用以下步骤设置可与 Amazon QuickSight 交互的 Java 应用程序。

  1. 首先,在 IDE 中创建一个 Java 项目。

  2. 将 Amazon QuickSight SDK 导入到您的新项目中,例如:AWSQuickSightJavaClient-1.11.x.jar

  3. 在您的 IDE 为 Amazon QuickSight SDK 编制索引后,您应该能够按如下方式添加导入行:

    import com.amazonaws.services.quicksight.AmazonQuickSight;

    如果 IDE 未将其识别为有效名称,请确认是否已导入开发工具包。

  4. 与其他软件开发工具包一样 Amazon SDKs,Amazon QuickSight SDK 需要外部依赖才能执行其许多功能。您需要将它们下载并导入到同一个项目中。以下依赖项是必需的:

  5. 现在,您已准备好创建 Amazon QuickSight 客户端。您可以使用客户端能够与之通信的默认公有终端节点,也可以显式引用该终端节点。提供 Amazon 凭证的方法有多种。在以下示例中,我们提供一种直接、简单的方法。以下客户端方法用于进行下面所有的 API 调用:

    private static AmazonQuickSight getClient() { final AWSCredentialsProvider credsProvider = new AWSCredentialsProvider() { @Override public AWSCredentials getCredentials() { // provide actual IAM access key and secret key here return new BasicAWSCredentials("access-key", "secret-key"); } @Override public void refresh() {} }; return AmazonQuickSightClientBuilder .standard() .withRegion(Regions.US_EAST_1.getName()) .withCredentials(credsProvider) .build(); }
  6. 现在,我们可以使用上述客户端列出我们 Amazon QuickSight 账户中的所有用户。

    注意

    您必须提供订阅 Amazon 时使用的 Amazon 账户编号 QuickSight。这必须与来电者身份的 Amazon 账户 ID 相匹配。目前,不支持跨账户调用。此外,必需的参数namespace应始终设置为default

    getClient().listUsers(new ListUsersRequest() .withAwsAccountId("relevant_AWS_account_ID") .withNamespace("default")) .getUserList().forEach(user -> { System.out.println(user.getArn()); });
  7. 要查看所有可能的 API 操作及其使用的请求对象的列表,您可以按住 Ctrl 键单击 IDE 中的客户端对象,以查看 Ama QuickSight zon 界面。或者,也可以在com.amazonaws.services.quicksight包内的 Amazon QuickSight JavaClient JAR 文件中找到它。

JavaScript (Node.js) SDK

使用以下步骤 QuickSight 通过 Node.js 与亚马逊互动。

  1. 使用以下命令设置节点环境:

    • npm install aws-sdk

    • npm install aws4

    • npm install request

    • npm install url

  2. 有关使用 Amazon SDK 配置 Node.js 和设置凭据的信息,请参阅-> S DK v 适用于 JavaScript 的 Amazon SDK 2 开发者指南

  3. 使用下面的代码示例测试设置。必须使用 HTTPS。该示例显示了亚马逊 QuickSight 操作的完整列表及其网址请求参数,然后是您账户中的亚马逊 QuickSight 用户列表。

    const Amazon = require('aws-sdk'); const https = require('https'); var quicksight = new Amazon.Service({ apiConfig: require('./quicksight-2018-04-01.min.json'), region: 'us-east-1', }); console.log(quicksight.config.apiConfig.operations); quicksight.listUsers({ // Enter your actual Amazon account ID 'AwsAccountId': 'relevant_AWS_account_ID', 'Namespace': 'default', }, function(err, data) { console.log('---'); console.log('Errors: '); console.log(err); console.log('---'); console.log('Response: '); console.log(data); });
Python3 SDK

使用以下步骤创建用于与 Amazon 交互的定制botocore软件包 QuickSight。

  1. 在您的环境 Amazon 目录中创建凭证文件。在 a Linux/Mac-based environment, that file is called ~/.aws/credentials 中看起来像这样:

    [default] aws_access_key_id = Your_IAM_access_key aws_secret_access_key = Your_IAM_secret_key
  2. 解压缩文件夹 botocore-1.12.10。将目录切换到 botocore-1.12.10,然后进入 Python3 解释器环境。

  3. 响应以字典对象的形式返回。它们都有一个包含请求 IDs 和响应状态的ResponseMetadata条目。其他条目基于您运行的操作类型。

  4. 下面是一个示例应用程序,它首先创建、删除和列出组,然后列出 QuickSight 账户中的用户:

    import botocore.session default_namespace = 'default' account_id = 'relevant_AWS_Account' session = botocore.session.get_session() client = session.create_client("quicksight", region_name='us-east-1') print('Creating three groups: ') client.create_group(AwsAccountId = account_id, Namespace=default_namespace, GroupName='MyGroup1') client.create_group(AwsAccountId = account_id, Namespace=default_namespace, GroupName='MyGroup2') client.create_group(AwsAccountId = account_id, Namespace=default_namespace, GroupName='MyGroup3') print('Retrieving the groups and listing them: ') response = client.list_groups(AwsAccountId = account_id, Namespace=default_namespace) for group in response['GroupList']: print(group) print('Deleting our groups: ') client.delete_group(AwsAccountId = account_id, Namespace=default_namespace, GroupName='MyGroup1') client.delete_group(AwsAccountId = account_id, Namespace=default_namespace, GroupName='MyGroup2') client.delete_group(AwsAccountId = account_id, Namespace=default_namespace, GroupName='MyGroup3') response = client.list_users(AwsAccountId = account_id, Namespace=default_namespace) for user in response['UserList']: print(user)
.NET/C# SDK

使用以下步骤 QuickSight 通过 C#.NET 与亚马逊互动。该示例在 Microsoft Visual for Mac 上构建;根据您的 IDE 和平台,说明可能略有不同。但是,过程应该是相似的。

  1. nuget.zip 文件解压缩到名为 nuget 的文件夹。

  2. 在 Visual Studio 中创建一个新的控制台应用

  3. 在解决方案下,找到应用程序 Dependencies (依赖关系),然后打开上下文(右键单击)菜单并选择 Add Packages (添加包))。

  4. 在源列表中,选择 Configure Sources (配置源)

  5. 选择添加,然后将源命名为 QuickSightSDK。浏览到 nuget 文件夹,然后选择 Add Source (添加源)

  6. 选择确定。然后,在QuickSightSDK选中状态下,选择所有三个 Amazon QuickSight 套餐:

    • AWSSDK.QuickSight

    • AWSSDK.Extensions.NETCore.Setup

    • AWSSDK.Extensions.CognitoAuthentication

  7. 请单击添加包

  8. 将以下示例应用程序复制并粘贴到您的控制台应用编辑器中。

    using System; using Amazon.QuickSight.Model; using Amazon.QuickSight; namespace DotNetQuickSightSDKTest { class Program { private static readonly string AccessKey = "insert_your_access_key"; private static readonly string SecretAccessKey = "insert_your_secret_key"; private static readonly string AccountID = "AWS_account_ID"; private static readonly string Namespace = "default"; // leave this as default static void Main(string[] args) { var client = new AmazonQuickSightClient( AccessKey, SecretAccessKey, Amazon.RegionEndpoint.USEast1); var listUsersRequest = new ListUsersRequest { AwsAccountId = AccountID, Namespace = Namespace }; client.ListUsersAsync(listUsersRequest).Result.UserList.ForEach( user => Console.WriteLine(user.Arn) ); var listGroupsRequest = new ListGroupsRequest { AwsAccountId = AccountID, Namespace = Namespace }; client.ListGroupsAsync(listGroupsRequest).Result.GroupList.ForEach( group => Console.WriteLine(group.Arn) ); } } }