기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon QuickSight API를 사용한 애플리케이션 개발
AWS SDK를 통해 사용하고 있는 프로그래밍 언어나 플랫폼에 맞는 API에 액세스하여 배포의 대부분 측면을 관리할 수 있습니다. 자세한 내용은 AWS SDK를 참조하십시오.
API 작업에 대한 자세한 내용은 Amazon QuickSight API 참조를 확인하세요.
Amazon QuickSight API 작업을 직접 호출할 수 있으려면, 먼저 IAM 자격 증명에 연결된 정책에서 quicksight:operation-name
권한이 필요합니다. 예를 들어 list-users
을(를) 직접 호출하려면 quicksight:ListUsers
권한이 필요합니다. 모든 작업에 같은 패턴이 적용됩니다.
필요한 권한이 무엇인지 확실하지 않은 경우, 직접 호출해 볼 수 있습니다. 그러면 클라이언트가 누락된 권한이 무엇인지 알려줍니다. 명시적인 리소스를 지정하는 대신 권한 정책의 리소스 필드에 별표(*
)를 사용할 수 있습니다. 하지만 각 권한을 최대한 제한할 것을 권장합니다. Amazon QuickSight Amazon 리소스 이름(ARN) 식별자를 사용하여, 정책에서 리소스를 지정하거나 제외하여 사용자 액세스를 제한할 수 있습니다.
자세한 내용은 다음 자료를 참조하세요.
사용자 또는 그룹의 ARN을 검색하려면 해당 리소스에서 Describe
작업을 사용합니다. 또한 상황에 따라 IAM에 조건을 추가하여 API에 대한 액세스를 추가로 제한할 수도 있습니다. 예를 들어 Group1
에 User1
을(를) 추가할 때, 기본 리소스는 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 CLI를 통해 Amazon QuickSight API 작업과 상호 작용하는 방법을 설명합니다. 다음 명령은 Bash에서 테스트가 되었지만, 다른 명령줄 환경에서도 같거나 비슷할 것입니다.
-
자신의 환경에 AWS SDK를 설치합니다. 설치 방법에 대한 지침은 AWS 명령줄 인터페이스에서 확인하세요.
-
다음 명령과 후속 조치 지침을 사용하여 AWS CLI 자격 증명 및 리전을 설정합니다. 적정 권한을 가진 IAM 자격 증명 및 역할에 대한 자격 증명을 사용합니다.
aws configure
-
다음 명령을 발행하여 Amazon QuickSight SDK 도움말을 확인합니다.
aws quicksight help
-
API 사용 방법에 대한 자세한 지침을 얻으려면 다음과 같이 도움말 다음에 나오는 이름을 입력합니다.
aws quicksight list-users help
-
이제 Amazon QuickSight API 작업을 직접 호출할 수 있습니다. 이 예제에서는 계정에서 Amazon QuickSight 사용자 목록을 반환합니다.
aws quicksight list-users --aws-account-id aws-account-id
--namespace default --region us-east-1
- Java SDK
-
다음 절차를 사용하여 Amazon QuickSight와 상호 작용하는 Java 앱을 설정합니다.
-
시작하려면 IDE에서 Java 프로젝트를 만듭니다.
-
새 프로젝트(예: AWSQuickSightJavaClient-1.11.x.jar
)에 Amazon QuickSight SDK를 가져옵니다.
-
IDE가 Amazon QuickSight SDK를 인덱싱하면 다음과 같이 가져오기 줄을 추가할 수 있습니다.
import com.amazonaws.services.quicksight.AmazonQuickSight;
IDE가 이를 유효하다고 인식하지 않은 경우에는 SDK를 가져왔는지 확인합니다.
-
다른 AWS SDK와 마찬가지로, Amazon QuickSight SDK에서 다수의 함수를 실행하려면 외부 종속 프로그램이 필요합니다. 외부 종속 프로그램은 다운로드를 하여 같은 프로젝트에 가져와야 합니다. 다음과 같은 종속 프로그램이 필요합니다.
-
이제 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();
}
-
이제 위의 클라이언트를 사용하여 Amazon QuickSight 계정에 모든 사용자를 나열할 수 있습니다.
Amazon QuickSight 구독에 사용한 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());
});
-
사용할 수 있는 모든 API 작업 및 요청 객체의 목록을 보려면 IDE의 클라이언트 객체를 CTRL 클릭하여 Amazon QuickSight 인터페이스를 확인합니다. 아니면 Amazon QuickSight JavaClient JAR 파일의 com.amazonaws.services.quicksight
패키지 내에서 찾아봅니다.
- JavaScript (Node.js) SDK
-
다음 절차에 따라 Node.js를 사용하여 Amazon QuickSight와 상호 작용을 합니다.
-
다음 명령을 사용하여 노드 환경을 설정합니다.
-
npm install aws-sdk
-
npm install aws4
-
npm install request
-
npm install url
-
AWS SDK를 사용하여 Node.js를 구성하고 자격 증명을 설정하는 방법에 대한 자세한 내용은 AWS SDK for JavaScript SDK v2 개발자 안내서를 참조하세요.
-
다음 코드 예제를 사용하여 설정을 테스트합니다. 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 QuickSight와 상호 작용하기 위한 사용자 지정 botocore
패키지를 빌드합니다.
-
환경의 AWS 디렉터리에 자격 증명 파일을 만듭니다. Linux/Mac 기반 환경에서는 이 파일을 ~/.aws/credentials라고 부르며, 그 형식은 다음과 같습니다.
[default]
aws_access_key_id = Your_IAM_access_key
aws_secret_access_key = Your_IAM_secret_key
-
botocore-1.12.10
폴더를 압축 해제합니다. botocore-1.12.10
에 디렉터리를 변경하고 Python 3 인터프리터 환경에 들어갑니다.
-
응답은 딕셔너리 객체 형태로 반환됩니다. 이들 각각은 요청 ID와 응답 상태가 포함된 ResponseMetadata
항목을 가지고 있습니다. 다른 항목들은 실행하는 작업 유형에 따라 결정됩니다.
-
다음 예제는 먼저 그룹을 생성, 삭제 및 나열하는 샘플 앱입니다. 그런 다음, 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#.NET를 사용하여 Amazon QuickSight와 상호 작용을 합니다. 이 예제는 Mac용 Microsoft Visual에서 구성한 것이기 때문에 IDE 및 플랫폼에 따라 지침이 약간 다를 수 있습니다. 하지만 서로 비슷할 것입니다.
-
nuget.zip
파일을 nuget
라는 폴더에 풉니다.
-
Visual Studio에 콘솔 앱 프로젝트를 새로 생성합니다.
-
솔루션 아래에서 앱 종속성을 찾아서, 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼 클릭) 패키지 추가를 선택합니다.
-
소스 목록에서 소스 구성을 선택합니다.
-
추가를 선택하고 QuickSightSDK
라고 소스 이름을 명명합니다. nuget
폴더를 검색하고 소스 추가를 선택합니다.
-
확인을 선택합니다. 그런 다음, QuickSightSDK
을(를) 선택한 상태에서 3개의 Amazon QuickSight 패키지를 모두 선택합니다.
-
패키지 추가를 클릭합니다.
-
다음 샘플 앱을 콘솔 앱 편집기에 복사하여 붙여 넣습니다.
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)
);
}
}
}