Amazon QuickSight API を使用したアプリケーションの開発 - Amazon QuickSight

重要: Amazon QuickSight 分析ワークスペースを再設計しました。 QuickSight コンソールの新しい外観を反映していないスクリーンショットや手順テキストが表示されることがあります。現在、スクリーンショットと手順のテキストを更新しています。

機能または項目を検索するには、クイック検索バーを使用します。

の新しい外観の詳細については、 QuickSight「Amazon での新しい分析エクスペリエンスの紹介 QuickSight」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon QuickSight API を使用したアプリケーションの開発

AWS SDKs を使用して、使用しているプログラミング言語またはプラットフォームに合わせた API にアクセスすることで、デプロイのほとんどの側面を管理できます。詳細については、AWS SDK を参照してください。

API オペレーションの詳細については、「Amazon QuickSight API リファレンス」を参照してください。

Amazon QuickSight API オペレーションを呼び出す前に、IAM ID にアタッチされたポリシーで アクセスquicksight:operation-name許可が必要です。例えば、list-users を呼び出すには、アクセス許可 quicksight:ListUsers が必要です。すべてのオペレーションに同じパターンが適用されます。

必要なアクセス許可が不明な場合は、呼び出しを試みることができます。クライアントにより、不足しているアクセス許可が何であるかが分かります。リソースフィールドのアスタリスク (*) は、明示的なリソースの指定ではなく、アクセス許可ポリシーに使用できます。ただし、各アクセス許可はできるだけ制限することをお勧めします。 QuickSight Amazon リソースネーム (ARN) 識別子を使用して、ポリシーでリソースを指定または除外することで、ユーザーアクセスを制限できます。

詳細については、次を参照してください。

ユーザーまたはグループの ARN を取得するには、関連するリソースの Describe オペレーションを使用します。一部のシナリオでは、IAM で条件を追加して、API へのアクセスをさらに制限することができます。例えば、 User1を に追加する場合Group1、メインリソースは であるためGroup1、特定のグループへのアクセスを許可または拒否できますが、IAM Amazon QuickSight キーを使用して特定のユーザーがそのグループに追加されることquicksight:UserNameを許可または禁止する条件を追加することもできます。

次に、ポリシーの例を示します。つまり、このポリシーがアタッチされている発信者は、グループに追加するユーザー名が CreateGroupMembership でない限り、すべてのグループで user1 オペレーションを呼び出すことができます。

{ "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 QuickSight API AWS オペレーションを操作する方法について説明します。次の手順は Bash でテスト済みですが、他のコマンドライン環境でも同一または類似していると考えられます。

  1. 環境に AWS SDK をインストールします。その手順については、AWS「 コマンドラインインターフェイス」を参照してください。

  2. 次のコマンドとフォローアップ手順を使用してAWS、 CLI アイデンティティとリージョンを設定します。適切なアクセス許可を持つ、IAM ID またはロールの認証情報を使用します。

    aws configure
  3. 次のコマンドを発行して、Amazon QuickSight SDK のヘルプを確認してください。

    aws quicksight help
  4. API の使用方法の詳細な手順を取得するには、その名前を入力した後に、以下のようにヘルプを入力します。

    aws quicksight list-users help
  5. これで、Amazon QuickSight API オペレーションを呼び出すことができます。この例では、アカウント内の Amazon QuickSight ユーザーのリストを返します。

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

以下の手順を使用して、Amazon とやり取りする Java アプリを設定します QuickSight。

  1. 開始するには、IDE で Java プロジェクトを作成してください。

  2. Amazon QuickSight SDK を新しいプロジェクトにインポートします。次に例を示します。 AWSQuickSightJavaClient-1.11.x.jar

  3. IDE が Amazon QuickSight SDK のインデックスを作成すると、次のようにインポートラインを追加できます。

    import com.amazonaws.services.quicksight.AmazonQuickSight;

    IDE がこれを有効と認識しない場合は、SDK をインポートしたことを確認してください。

  4. 他の AWS SDKs、Amazon QuickSight SDK では多くの機能を実行するために外部依存関係が必要です。同じプロジェクトにこれらをダウンロードしてインポートする必要があります。以下の依存関係は必須です。

  5. これで、Amazon QuickSight クライアントを作成する準備ができました。クライアントと通信できるデフォルトのパブリックエンドポイントを使用するか、エンドポイントを明示的に参照することもできます。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 QuickSight アカウントのすべてのユーザーを一覧表示できます。

    注記

    Amazon へのサブスクライブに使用したAWSアカウント ID を指定する必要があります QuickSight。これは、発信者のアイデンティティのAWSアカウント ID と一致する必要があります。クロスアカウント呼び出しは現在サポートされていません。さらに、必須パラメータ namespace は常にデフォルトに設定されている必要があります。

    getClient().listUsers(new ListUsersRequest() .withAwsAccountId("relevant_AWS_account_ID") .withNamespace("default")) .getUserList().forEach(user -> { System.out.println(user.getArn()); });
  7. 使用可能なすべての API オペレーションとそれらが使用するリクエストオブジェクトのリストを表示するには、IDE でクライアントオブジェクトを CTRL クリックすると、Amazon QuickSight インターフェイスを表示できます。または、Amazon QuickSight JavaClient JAR ファイルの com.amazonaws.services.quicksightパッケージ内で見つけます。

JavaScript (Node.js) SDK

Node.js QuickSight を使用して Amazon を操作するには、次の手順に従います。

  1. 次のコマンドを使用して、ノード環境を設定します。

    • npm install aws-sdk

    • npm install aws4

    • npm install request

    • npm install url

  2. AWS SDK を使用した Node.js の設定と認証情報の設定については、AWS SDK for JavaScript「 SDK v2 デベロッパーガイド」を参照してください。

  3. 次のコード例を使用して、設定をテストします。HTTPS が必要です。サンプルには、Amazon QuickSight オペレーションの完全なリストと URL リクエストパラメータが表示され、その後にアカウント内の Amazon QuickSight ユーザーのリストが表示されます。

    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

以下の手順を使用して、Amazon とやり取りするためのカスタムビルドbotocoreパッケージを作成します QuickSight。

  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. レスポンスは、ディクショナリオブジェクトとして返されます。レスポンスにはそれぞれ、リクエスト ID とレスポンスステータスを含む 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# QuickSight を使用して Amazon を操作するには、次の手順に従います。NET。この例は、Microsoft Visual for Mac で作成されます。ユーザーの IDE とプラットフォームに基づいて、指示が多少異なる場合があります。しかし、類似しています。

  1. nuget.zip ファイルを nuget と呼ばれるフォルダに解凍します。

  2. Visual Studio で新しい [Console app (コンソールアプリ)] プロジェクトを作成します。

  3. ソリューションの下から、[Dependencies (依存関係)] を見つけます。メニューを右クリックして [Add Packages (パッケージを追加)] を選択し、コンテキストを開きます。

  4. ソースリストで、[Configure Sources (ソースの設定)] を選択します。

  5. [Add (追加)] を選択し、ソースに QuickSightSDK という名前を付けます。nuget フォルダを参照して [Add Source (ソースの追加)] を選択します。

  6. [OK] をクリックします。次に、 をQuickSightSDK選択した状態で、3 つの Amazon QuickSight パッケージをすべて選択します。

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