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

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

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

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

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

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

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

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

ARN ユーザーまたはグループの を取得するには、関連するリソースで Describeオペレーションを使用します。また、 に条件を追加してIAM、一部のシナリオAPIで へのアクセスをさらに制限することもできます。例えば、 User1に追加する場合Group1、メインリソースは であるためGroup1、特定のグループへのアクセスを許可または拒否できますが、IAMAmazon 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

次の手順では、 を使用して AWS Amazon QuickSight API オペレーションを操作する方法について説明しますCLI。次の手順は 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. 開始するには、 で Java プロジェクトを作成しますIDE。

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

  3. Amazon のIDEインデックスを作成したら 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。これは、発信者の ID の AWS アカウント ID と一致する必要があります。クロスアカウント呼び出しは現在サポートされていません。さらに、必要なパラメータは常に に設定する必要がありますnamespacedefault.

    getClient().listUsers(new ListUsersRequest() .withAwsAccountId("relevant_AWS_account_ID") .withNamespace("default")) .getUserList().forEach(user -> { System.out.println(user.getArn()); });
  7. 使用可能なすべてのAPIオペレーションとそれらが使用するリクエストオブジェクトのリストを表示するには、 でクライアントオブジェクトCTRLをクリックして Amazon QuickSight インターフェイスIDEを表示できます。または、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. Node.js を で AWS SDK設定し、認証情報を設定する方法については、「 AWS SDK for JavaScript v2 SDK 用デベロッパーガイド」を参照してください。

  3. 次のコード例を使用して、設定をテストします。HTTPS は必須です。サンプルには、URLリクエストパラメータとともに Amazon QuickSight オペレーションの完全なリストが表示され、その後にアカウント内の 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-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# 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) ); } } }