使用 Amazon Quick Sight API 開發應用程式 - Amazon Quick Suite

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Quick Sight API 開發應用程式

您可以使用 AWS SDKs 來存取專為您正在使用的程式設計語言或平台量身打造的 API,以管理部署的大部分層面。如需詳細資訊,請參閱 AWS 開發套件

如需 API 操作的詳細資訊,請參閱 Amazon Quick Sight API 參考

在您可以呼叫 Amazon Quick Sight API 操作之前,您需要連接到 IAM 身分的政策中的 quicksight:operation-name 許可。例如,若要呼叫 list-users,您必須具備 quicksight:ListUsers 許可。同樣的模式適用於所有操作。

如果您不確定必要的許可是什麼,可以嘗試進行呼叫。然後,用戶端會告訴您缺少的許可是什麼。您可以在許可原則的「資源」欄位中使用星號 (*),而不指定明確的資源。但建議您盡可能限制每個許可。您可以使用 Amazon Quick Sight Amazon Resource Name (ARN) 識別符,在政策中指定或排除資源來限制使用者存取。

如需詳細資訊,請參閱下列內容:

若要擷取使用者或群組的 ARN,請對相關資源使用 Describe 操作。您也可以在 IAM 中新增條件,進一步限制某些情況下的 API 存取。例如,將 User1新增至 時Group1,主要資源是 Group1,因此您可以允許或拒絕存取特定群組,但您也可以使用 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

下列程序說明如何透過 CLI 與 Amazon Quick Sight API AWS 操作互動。此說明內容已在 Bash 中進行過測試,但在其他命令列環境下應可得到同樣或類似的結果。

  1. 在您的環境中安裝 AWS SDK。如需如何執行此操作的說明,請參閱 AWS Command Line Interface

  2. 使用下列命令和後續指示來設定您的 AWS CLI 身分和區域。請使用具備適當許可的 IAM 身分或角色的登入資料。

    aws configure
  3. 發出下列命令,查看 Amazon Quick Sight SDK 說明:

    aws quicksight help
  4. 若要取得如何使用特定 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 SDK 匯入您的新專案,例如: 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 的帳戶 ID。這必須符合發起人身分 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 操作及其使用之請求物件的清單,您可以在 IDE 中的用戶端物件上按一下 CTRL,以檢視 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 和設定登入資料的資訊,請參閱--> 適用於 JavaScript 的 AWS SDK SDK v2 開發人員指南

  3. 使用以下程式碼範例測試您的設定。HTTPS 為必要項目。此範例會顯示 Amazon Quick Sight 操作的完整清單及其 URL 請求參數,後面接著您帳戶中的 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 目錄中為您的環境建立登入資料檔案。在 Linux/Mac 環境中,該檔案名為 ~/.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. 回應將以字典物件的形式傳回。每次回應都會有 ResponseMetadata 項目,其中包含請求 ID 和回應狀態。其餘項目則視您所執行的操作類型而定。

  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# 與 Amazon Quick Sight 互動。NET。此範例是由 Microsoft Visual Studio for Mac 所建構;視您的 IDE 及平台而定,說明內容可能略有不同。不過,程序應大致雷同。

  1. nuget.zip 檔案解壓縮到名為 nuget 的資料夾。

  2. 在 Visual Studio 中建立新的主控台應用程式

  3. 在方案底下找出應用程式相依性,然後開啟內容功能表 (按滑鼠右鍵) 並選擇 Add Packages (新增封裝)

  4. 在來源清單中,選擇 Configure Sources (設定來源)

  5. 選擇 Add (新增)。然後將該來源命名為 QuickSightSDK。瀏覽至 nuget 資料夾並選擇 Add Source (新增來源)

  6. 選擇確定。然後,在QuickSightSDK選取的情況下,選取所有三個 Amazon Quick Sight 套件:

    • AWSSDK.QuickSight

    • AWSSDK.Extensions.NETCore.Setup

    • AWSSDK.Extensions.CognitoAuthentication

  7. 按一下 Add Package (新增封裝)

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