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이므로 특정 그룹에 대한 액세스를 허용하거나 거부할 수 있지만 IAM Amazon QuickSight 키를 사용하여 특정 사용자가 해당 그룹에 추가되지 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

다음 절차에서는 를 통해 AWS Amazon QuickSight API 작업과 상호 작용하는 방법을 설명합니다CLI. 다음 명령은 Bash에서 테스트가 되었지만, 다른 명령줄 환경에서도 같거나 비슷할 것입니다.

  1. 환경에 를 설치합니다 AWS SDK. 이 작업을 수행하는 방법에 대한 지침은 AWS 명령줄 인터페이스 에서 확인할 수 있습니다.

  2. 다음 명령 및 후속 지침을 사용하여 자격 증명과 리전을 설정합니다 AWS CLI. 적절한 권한이 있는 IAM 자격 증명 또는 역할에 자격 증명을 사용합니다.

    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 SDKsAmazon 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와 일치해야 합니다. 현재는 교차 계정 호출이 지원되지 않습니다. 또한 필수 파라미터는 항상 로 설정되어야 namespace 합니다.default.

    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. 를 사용하여 AWS SDK Node.js를 구성하고 자격 증명을 설정하는 방법에 대한 자세한 내용은 vAWS SDK for JavaScript SDK2용 개발자 안내서-->를 참조하세요.

  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에 디렉터리를 변경하고 Python 3 인터프리터 환경에 들어갑니다.

  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에 콘솔 앱 프로젝트를 새로 생성합니다.

  3. 솔루션 아래에서 앱 종속성을 찾아서, 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼 클릭) 패키지 추가를 선택합니다.

  4. 소스 목록에서 소스 구성을 선택합니다.

  5. 추가를 선택하고 QuickSightSDK라고 소스 이름을 명명합니다. nuget 폴더를 검색하고 소스 추가를 선택합니다.

  6. 확인을 선택합니다. 그런 다음 를 QuickSightSDK 선택한 상태에서 세 개의 Amazon QuickSight 패키지를 모두 선택합니다.

    • AWSSDK.QuickSight

    • AWSSDK.Extensions.NETCore.Setup

    • AWSSDK.Extensions.CognitoAuthentication

  7. 패키지 추가를 클릭합니다.

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