本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Quick Sight API 開發應用程式
您可以使用 AWS SDKs 來存取專為您正在使用的程式設計語言或平台量身打造的 API,以管理部署的大部分層面。如需詳細資訊,請參閱 AWS 開發套件
如需 API 操作的詳細資訊,請參閱 Amazon Quick Sight API 參考。
在您可以呼叫 Amazon Quick Sight API 操作之前,您需要連接到 IAM 身分的政策中的 quicksight: 許可。例如,若要呼叫 operation-namelist-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 中進行過測試,但在其他命令列環境下應可得到同樣或類似的結果。
-
在您的環境中安裝 AWS SDK。如需如何執行此操作的說明,請參閱 AWS Command Line Interface
。 -
使用下列命令和後續指示來設定您的 AWS CLI 身分和區域。請使用具備適當許可的 IAM 身分或角色的登入資料。
aws configure -
發出下列命令,查看 Amazon Quick Sight SDK 說明:
aws quicksight help -
若要取得如何使用特定 API 的詳細說明,請輸入其名稱,後面加上 help,例如:
aws quicksight list-users help -
現在您可以呼叫 Amazon Quick Sight API 操作。此範例會傳回您帳戶中的 Amazon Quick Sight 使用者清單。
aws quicksight list-users --aws-account-idaws-account-id--namespace default --region us-east-1
-
- Java SDK
-
使用下列程序來設定與 Amazon Quick Sight 互動的 Java 應用程式。
-
若要開始使用,請在 IDE 中建立 Java 專案。
-
將 Amazon Quick Sight SDK 匯入您的新專案,例如:
AWSQuickSightJavaClient-1.11.x.jar -
一旦您的 IDE 為 Amazon Quick Sight SDK 編製索引,您應該能夠新增匯入行,如下所示:
import com.amazonaws.services.quicksight.AmazonQuickSight;如果 IDE 未將其判別為有效語法,請確認您是否已匯入軟體開發套件。
-
如同其他 AWS SDKs,Amazon Quick Sight SDK 需要外部相依性才能執行其許多函數。您必須下載依存項目並將之匯入同一專案。必要的依存項目如下:
-
aws-java-sdk-1.11.402.jar(AWS Java 開發套件和登入資料設定) — 請參閱設定適用於 Java 的 AWS 開發套件 -
commons-logging-1.2.jar– 請參閱 https://commons.apache.org/proper/commons-logging/download_logging.cgi -
jackson-annotations-2.9.6.jar、jackson-core-2.9.6.jar及jackson-databind-2.9.6.jar– 請參閱 http://repo1.maven.org/maven2/com/fasterxml/jackson/core/ -
httpclient-4.5.6.jar、httpcore-4.4.10.jar– 請參閱 https://hc.apache.org/downloads.cgi -
joda-time-2.1.jar– 請參閱 https://mvnrepository.com/artifact/joda-time/joda-time/2.1
-
-
現在,您已準備好建立 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(); } -
現在,我們可以使用上述用戶端列出 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()); }); -
若要查看所有可能 API 操作及其使用之請求物件的清單,您可以在 IDE 中的用戶端物件上按一下 CTRL,以檢視 Amazon Quick Sight 介面。或者,在 Amazon Quick Sight JavaClient JAR 檔案中的
com.amazonaws.services.quicksight套件中找到它。
-
- JavaScript (Node.js) SDK
-
使用下列程序來使用 Node.js 與 Amazon Quick Sight 互動。
-
使用以下命令設定您的節點環境:
-
npm install aws-sdk -
npm install aws4 -
npm install request -
npm install url
-
-
如需有關使用 AWS SDK 設定 Node.js 和設定登入資料的資訊,請參閱--> 適用於 JavaScript 的 AWS SDK SDK v2 開發人員指南。
-
使用以下程式碼範例測試您的設定。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 互動。-
在 AWS 目錄中為您的環境建立登入資料檔案。在 Linux/Mac 環境中,該檔案名為 ~/.aws/credentials,其內容如下:
[default] aws_access_key_id =Your_IAM_access_keyaws_secret_access_key =Your_IAM_secret_key -
解壓縮
botocore-1.12.10資料夾。將目錄切換到botocore-1.12.10,然後進入 Python3 解譯器環境。 -
回應將以字典物件的形式傳回。每次回應都會有
ResponseMetadata項目,其中包含請求 ID 和回應狀態。其餘項目則視您所執行的操作類型而定。 -
以下所示的範例應用程式將首先建立、刪除和列出群組,接著列出 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 及平台而定,說明內容可能略有不同。不過,程序應大致雷同。
-
將
nuget.zip檔案解壓縮到名為nuget的資料夾。 -
在 Visual Studio 中建立新的主控台應用程式。
-
在方案底下找出應用程式相依性,然後開啟內容功能表 (按滑鼠右鍵) 並選擇 Add Packages (新增封裝)。
-
在來源清單中,選擇 Configure Sources (設定來源)。
-
選擇 Add (新增)。然後將該來源命名為
QuickSightSDK。瀏覽至nuget資料夾並選擇 Add Source (新增來源)。 -
選擇確定。然後,在
QuickSightSDK選取的情況下,選取所有三個 Amazon Quick Sight 套件:-
AWSSDK.QuickSight -
AWSSDK.Extensions.NETCore.Setup -
AWSSDK.Extensions.CognitoAuthentication
-
-
按一下 Add Package (新增封裝)。
-
複製以下範例應用程式並將其貼入您的主控台應用程式編輯器。
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) ); } } }
-