使用 Amazon Quick Sight API 开发应用程序 - Amazon Quick Suite

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

使用 Amazon Quick Sight API 开发应用程序

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

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

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

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

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

要检索用户或组的 ARN,请对相关资源使用 Describe 操作。您也可以在 IAM 中添加条件,以进一步限制在某些情况下对 API 的访问。例如,User1添加到时,主要资源是 Group1Group1,因此您可以允许或拒绝访问某些群组,但也可以使用 IAM Amazon Quick Sight 密钥添加条件,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" } } }
AWS CLI

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

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

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

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

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

    aws quicksight list-users help
  5. 现在你可以调用 Amazon Quick Sight API 操作了。此示例返回您账户中的 Amazon Quick Sight 用户列表。

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

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

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

  2. 将 Amazon Quick Sight 软件开发工具包导入到您的新项目中,例如:AWSQuickSightJavaClient-1.11.x.jar

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

    import com.amazonaws.services.quicksight.AmazonQuickSight;

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

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

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

    注意

    您必须提供订阅 Amazon Quick Sight 时使用的 AWS 账户编号。这必须与来电者身份的 AWS 账户 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 中的客户端对象,以查看 Amazon Quick Sight 界面。或者,也可以在 Amazon Quick Sight JavaClient JAR 文件的com.amazonaws.services.quicksight包中找到它。

JavaScript (Node.js) SDK

使用以下步骤通过 Node.js 与 Amazon Quick Sight 进行交互。

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

    • npm install aws-sdk

    • npm install aws4

    • npm install request

    • npm install url

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

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

    const AWS = require('aws-sdk'); const https = require('https'); var quicksight = new AWS.Service({ apiConfig: require('./quicksight-2018-04-01.min.json'), region: 'us-east-1', }); console.log(quicksight.config.apiConfig.operations); quicksight.listUsers({ // Enter your actual AWS 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

使用以下步骤创建定制botocore包以与 Amazon Quick Sight 进行交互。

  1. 在您的环境 AWS 目录中创建凭证文件。在 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

使用以下步骤通过 C#.NET 与 Amazon Quick Sight 进行交互。该示例在 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 Quick Sight 套餐:

    • 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) ); } } }