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