Développement d'applications avec l' QuickSight API Amazon - Amazon QuickSight

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Développement d'applications avec l' QuickSight API Amazon

Vous pouvez gérer la plupart des aspects de votre déploiement en utilisant AWS les SDK pour accéder à une API adaptée au langage de programmation ou à la plate-forme que vous utilisez. Pour plus d’informations, consultez Kits SDK AWS.

Pour plus d'informations sur les opérations d'API, consultez Amazon QuickSight API Reference.

Avant de pouvoir appeler les opérations de l' QuickSight API Amazon, vous devez quicksight:operation-name obtenir l'autorisation dans une politique attachée à votre identité IAM. Par exemple, pour appeler list-users, vous avez besoin de l'autorisation quicksight:ListUsers. Le même modèle s'applique à toutes les opérations.

Si vous ne connaissez pas avec certitude l'autorisation nécessaire, vous pouvez essayer d'effectuer un appel. Le client vous précisera l'autorisation manquante. Vous pouvez utiliser un astérisque (*) dans le champ Ressource de votre politique d'autorisation à la place des ressources explicites. Toutefois, nous vous conseillons fortement de restreindre chaque autorisation autant que possible. Nous recommandons toutefois de restreindre chaque autorisation autant que possible. Vous pouvez restreindre l'accès des utilisateurs en spécifiant ou en excluant des ressources dans la politique, à l'aide de leur identifiant QuickSight Amazon Amazon Resource Name (ARN).

Pour plus d’informations, consultez les ressources suivantes :

Pour récupérer l'ARN d'un utilisateur ou d'un groupe, utilisez l'opération Describe sur la ressource concernée. Vous pouvez également ajouter des conditions dans IAM pour restreindre encore plus l'accès à une API dans certains scénarios. Par exemple, lorsque vous ajoutez User1 àGroup1, la ressource principale est Group1 que vous pouvez autoriser ou refuser l'accès à certains groupes, mais vous pouvez également ajouter une condition en utilisant la QuickSight clé IAM Amazon quicksight:UserName pour autoriser ou empêcher l'ajout de certains utilisateurs à ce groupe.

Voici un exemple de stratégie. Cela signifie que le mandataire auquel cette stratégie est attachée est en mesure d'invoquer l'opération CreateGroupMembership sur n'importe quel groupe, à condition que le nom d'utilisateur qu'il ajoute au groupe ne soit pas 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

La procédure suivante explique comment interagir avec les opérations de QuickSight l'API Amazon via la AWS CLI. Les instructions suivantes ont été testées dans Bash, mais doivent être identiques ou similaires dans d'autres environnements de ligne de commande.

  1. Installez le AWS SDK dans votre environnement. Les instructions pour ce faire se trouvent ici : Interface de ligne de AWS commande.

  2. Configurez l'identité et la région de votre AWS CLI à l'aide des instructions de commande et de suivi suivantes. Utilisez les informations d'identification pour une identité IAM ou un rôle qui dispose des autorisations appropriées.

    aws configure
  3. Consultez l'aide du QuickSight SDK Amazon en exécutant la commande suivante :

    aws quicksight help
  4. Pour obtenir des instructions détaillées sur la façon d'utiliser une API, saisissez son nom suivi de « help », comme suit :

    aws quicksight list-users help
  5. Vous pouvez désormais appeler une opération d' QuickSight API Amazon. Cet exemple renvoie une liste des QuickSight utilisateurs Amazon de votre compte.

    aws quicksight list-users --aws-account-id aws-account-id --namespace default --region us-east-1
Java SDK

Suivez la procédure ci-dessous pour configurer une application Java qui interagit avec Amazon QuickSight.

  1. Pour démarrer, créez un projet Java dans votre IDE.

  2. Importez le QuickSight SDK Amazon dans votre nouveau projet, par exemple : AWSQuickSightJavaClient-1.11.x.jar

  3. Une fois que votre IDE a indexé le QuickSight SDK Amazon, vous devriez être en mesure d'ajouter une ligne d'importation comme suit :

    import com.amazonaws.services.quicksight.AmazonQuickSight;

    Si votre IDE ne reconnaît pas ceci comme valide, assurez-vous d'avoir importé le kit de développement logiciel (SDK).

  4. Comme les autres AWS SDK, le QuickSight SDK Amazon nécessite des dépendances externes pour exécuter bon nombre de ses fonctions. Vous devez télécharger et importer celles-ci dans le même projet. Les dépendances suivantes sont obligatoires :

  5. Vous êtes maintenant prêt à créer un QuickSight client Amazon. Vous pouvez utiliser un point de terminaison public par défaut avec lequel le client peut communiquer. Vous pouvez également référencer le point de terminaison de façon explicite. Il existe plusieurs manières de fournir vos AWS informations d'identification. Dans l'exemple suivant, nous fournissons une approche simple et directe. La méthode client suivante est utilisée pour effectuer tous les appels d'API suivants :

    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. Maintenant, nous pouvons utiliser le client ci-dessus pour répertorier tous les utilisateurs de notre QuickSight compte Amazon.

    Note

    Vous devez fournir l'identifiant de AWS compte que vous avez utilisé pour vous abonner à Amazon QuickSight. Il doit correspondre à l'identifiant de AWS compte correspondant à l'identité de l'appelant. Les appels entre comptes ne sont pas pris en charge à l'heure actuelle. En outre, le paramètre obligatoire namespace doit toujours être défini sur par défaut.

    getClient().listUsers(new ListUsersRequest() .withAwsAccountId("relevant_AWS_account_ID") .withNamespace("default")) .getUserList().forEach(user -> { System.out.println(user.getArn()); });
  7. Pour voir une liste de toutes les opérations d'API possibles et des objets de requête qu'elles utilisent, vous pouvez cliquer en maintenant la touche Ctrl enfoncée sur l'objet client dans votre IDE afin d'afficher l'interface Amazon. QuickSight Vous pouvez également le trouver dans le com.amazonaws.services.quicksight package dans le fichier Amazon QuickSight JavaClient JAR.

JavaScript (Node.js) SDK

Suivez la procédure ci-dessous pour interagir avec Amazon à QuickSight l'aide de Node.js.

  1. Configurez votre environnement Node à l'aide des commandes suivantes :

    • npm install aws-sdk

    • npm install aws4

    • npm install request

    • npm install url

  2. Pour plus d'informations sur la configuration du fichier Node.js avec le AWS SDK et sur la définition de vos informations d'identification, voir -> le Guide du AWS SDK for JavaScript développeur pour le SDK v2.

  3. Utilisez l'exemple de code suivant pour tester votre configuration. Le protocole HTTPS est requis. L'exemple affiche une liste complète des QuickSight opérations Amazon ainsi que leurs paramètres de demande d'URL, suivie d'une liste des QuickSight utilisateurs Amazon de votre compte.

    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

Utilisez la procédure suivante pour créer un botocore package personnalisé afin d'interagir avec Amazon QuickSight.

  1. Créez un fichier d'informations d'identification dans le AWS répertoire de votre environnement. Dans un environnement Linux/Mac, ce fichier est nommé ~/.aws/credentials et se présente sous la forme suivante :

    [default] aws_access_key_id = Your_IAM_access_key aws_secret_access_key = Your_IAM_secret_key
  2. Décompressez le dossier botocore-1.12.10. Modifiez le répertoire en botocore-1.12.10 et saisissez l'environnement d'interpréteur Python3.

  3. Les réponses sont renvoyées sous forme d'objet de dictionnaire. Ils ont chacun une entrée ResponseMetadata qui contient les ID de demande et le statut des réponses. Les autres entrées dépendent du type d'opération exécuté.

  4. L'exemple suivant est un exemple d'application qui, dans un premier temps, crée, supprime et répertorie les groupes. Ensuite, il répertorie les utilisateurs dans un compte 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

Suivez la procédure ci-dessous pour interagir avec Amazon à QuickSight l'aide de C#.NET. Cet exemple s'appuie sur Microsoft Visual pour Mac ; les instructions peuvent varier légèrement en fonction de votre IDE et de votre plateforme. Cependant, elles devraient être relativement similaires.

  1. Décompressez le fichier nuget.zip dans un dossier intitulé nuget.

  2. Créez un nouveau projet Application de console dans Visual Studio.

  3. Dans votre solution, localisez les dépendances de l'application, puis ouvrez le menu contextuel d'un clic droit et choisissez Add Packages (Ajouter des packages).

  4. Dans la liste des sources, choisissez Configure Sources (Configurer les sources).

  5. Choisissez Add (Ajouter), puis attribuez à la source le nom QuickSightSDK. Ouvrez le dossier nuget et choisissez Add Source (Ajouter source).

  6. Choisissez OK. Ensuite, une QuickSightSDK fois sélectionné, sélectionnez les trois QuickSight packages Amazon :

    • AWSSDK.QuickSight

    • AWSSDK.Extensions.NETCore.Setup

    • AWSSDK.Extensions.CognitoAuthentication

  7. Cliquez sur Add Package (Ajouter un package).

  8. Copiez et collez l'exemple d'application suivant dans l'éditeur de votre application de console.

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