

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

# Amazon Quick Sight API を使用したアプリケーションの開発
<a name="quicksight-sdks"></a>

デプロイのほとんどの側面を管理するには、 AWS SDKs を使用して、使用しているプログラミング言語またはプラットフォームに合わせた API にアクセスします。詳細については、[AWS SDK](https://aws.amazon.com/tools/#SDKs) を参照してください。

API オペレーションの詳細については、[「Amazon Quick Sight API リファレンス](https://docs.aws.amazon.com/quicksight/index.html?id=docs_gateway)」を参照してください。

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

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

詳細については次を参照してください:
+ [Amazon Quick Sight の IAM ポリシーの例](https://docs.aws.amazon.com/quicksight/latest/user/iam-policy-examples.html)
+ [アクション、リソース、および条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonquicksight.html)
+ [IAM JSON ポリシーエレメント](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)

ユーザーまたはグループの ARN を取得するには、関連するリソースの `Describe` オペレーションを使用します。一部のシナリオでは、IAM で条件を追加して、API へのアクセスをさらに制限することができます。たとえば、 `User1`に を追加する場合`Group1`、メインリソースは であるため`Group1`、特定のグループへのアクセスを許可または拒否できますが、IAM Amazon Quick Sight キーを使用して特定のユーザーがそのグループに追加されること`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 CLI を使用して Amazon Quick Sight API オペレーションを操作する方法について説明します。次の手順は Bash でテスト済みですが、他のコマンドライン環境でも同一または類似していると考えられます。

1. 環境に AWS SDK をインストールします。これを行う方法についての手順は、「[AWS コマンドラインインターフェイス](https://aws.amazon.com/cli/)」を参照してください。

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

   ```
   aws configure
   ```

1. 次のコマンドを発行して、Amazon Quick Sight SDK のヘルプを確認します。

   ```
   aws quicksight help
   ```

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

   ```
   aws quicksight list-users help
   ```

1. これで、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 プロジェクトを作成してください。

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

1. IDE が Amazon Quick Sight SDK にインデックスを作成したら、次のようにインポートラインを追加できます。

   ```
   import com.amazonaws.services.quicksight.AmazonQuickSight;
   ```

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

1. 他の AWS SDKs と同様に、Amazon Quick Sight SDK では、多くの関数を実行するために外部依存関係が必要です。同じプロジェクトにこれらをダウンロードしてインポートする必要があります。以下の依存関係は必須です。
   + `aws-java-sdk-1.11.402.jar` (AWS Java SDK と認証情報の設定) — [AWS 「 SDK for Java のセットアップ](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-install.html)」を参照してください。
   + `commons-logging-1.2.jar` — [ https://commons.apache.org/proper/commons-logging/download\$1logging.cgi ](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/ ](https://repo1.maven.org/maven2/com/fasterxml/jackson/core/)を参照してください。
   + `httpclient-4.5.6.jar`、`httpcore-4.4.10.jar` — [ https://hc.apache.org/downloads.cgi ](https://hc.apache.org/downloads.cgi)を参照してください。
   + `joda-time-2.1.jar` — [ https://mvnrepository.com/artifact/joda-time/joda-time/2.1 ](https://mvnrepository.com/artifact/joda-time/joda-time/2.1)を参照してください。

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

1. これで、上記のクライアントを使用して、Amazon Quick Sight アカウントのすべてのユーザーを一覧表示できます。
**注記**  
Amazon Quick Sight のサブスクライブに使用した AWS アカウント ID を指定する必要があります。これは、発信者の ID の AWS アカウント ID と一致する必要があります。クロスアカウント呼び出しは現在サポートされていません。さらに、必須パラメータ `namespace` は常に*デフォルト*に設定されている必要があります。

   ```
   getClient().listUsers(new ListUsersRequest()
           .withAwsAccountId("relevant_AWS_account_ID")
           .withNamespace("default"))
           .getUserList().forEach(user -> {
               System.out.println(user.getArn());
           });
   ```

1. 使用可能なすべての 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`

1.  AWS SDK で Node.js を設定し、認証情報を設定する方法については、[AWS SDK for JavaScript 「 SDK v2 開発者ガイド」の「-->](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/welcome.html)」を参照してください。

1. 次のコード例を使用して、設定をテストします。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 ]

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

1. 環境の AWS ディレクトリに認証情報ファイルを作成します。Linux/Mac ベースの環境では、そのファイルは \$1/.aws/credentials と呼ばれ、次のように表示されます。

   ```
   [default]
   aws_access_key_id = Your_IAM_access_key
   aws_secret_access_key = Your_IAM_secret_key
   ```

1. フォルダ `botocore-1.12.10` を解凍します。ディレクトリを `botocore-1.12.10` に変更し、Python3 インタプリタ環境を入力します。

1. レスポンスは、ディクショナリオブジェクトとして返されます。レスポンスにはそれぞれ、リクエスト ID とレスポンスステータスを含む `ResponseMetadata` エントリがあります。その他のエントリは、実行されるオペレーションのタイプに基づいています。

1. 次の例は、最初に作成、削除、グループを一覧表示するサンプルアプリです。次に、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\$1 SDK ]

C\$1 を使用して Amazon Quick Sight を操作するには、次の手順に従います。NET。この例は、Microsoft Visual for Mac で作成されます。ユーザーの IDE とプラットフォームに基づいて、指示が多少異なる場合があります。しかし、類似しています。



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

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

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

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

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

1. [**OK**] を選択してください。次に、 `QuickSightSDK` を選択して、3 つの Amazon Quick Sight パッケージをすべて選択します。
   + `AWSSDK.QuickSight`
   + `AWSSDK.Extensions.NETCore.Setup`
   + `AWSSDK.Extensions.CognitoAuthentication`

1. [**Add Package (パッケージの追加)**] をクリックします。

1. 次のサンプルアプリを、コンソールアプリエディタにコピーして貼り付けます。

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

------