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

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

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

Pour plus d'informations sur les opérations d'API, consultez la Référence d'API Amazon QuickSight (français non garanti).

Avant de pouvoir appeler les opérations d'API Amazon QuickSight, vous avez besoin de l'autorisation quicksight:operation-name 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 Amazon Resource Name (ARN) Amazon QuickSight.

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, lors de l'ajout de User1 dans Group1, la principale ressource est Group1, de sorte que vous pouvez autoriser ou refuser l'accès à certains groupes, mais vous pouvez également ajouter une condition en utilisant la clé Amazon QuickSight IAM quicksight:UserName afin d'autoriser ou d'empêcher certains utilisateurs d'être ajoutés à 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 d'API Amazon QuickSight depuis l'interface de la ligne de commande AWS. 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 SDK AWS dans votre environnement. Instructions sur la façon de procéder ici : AWSInterface de ligne de commande.

  2. Configurez l'identité et la région de votre interface de ligne de commande AWS en utilisant la commande et les instructions de suivi ci-après. 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 sur les kits de développement logiciel (SDK) Amazon QuickSight en émettant 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. Maintenant, vous pouvez appeler une opération d'API Amazon QuickSight. Cet exemple renvoie une liste des utilisateurs Amazon QuickSight dans votre compte.

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

Utilisez la procédure suivante 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 kit de développement logiciel (SDK) Amazon QuickSight dans votre nouveau projet, par exemple : AWSQuickSightJavaClient-1.11.x.jar

  3. Une fois que votre IDE indexe le kit de développement logiciel (SDK) Amazon QuickSight, vous devriez pouvoir 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 kits de développement logiciel (SDK) AWS, le kit de développement logiciel (SDK) Amazon QuickSight nécessite des dépendances externes pour exécuter un grand 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 pouvez désormais créer un client Amazon QuickSight. 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 façons de fournir vos informations d'identification AWS. 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. Désormais, nous pouvons utiliser le client ci-dessus pour répertorier tous les utilisateurs dans votre compte Amazon QuickSight.

    Note

    Vous devez fournir l'ID de compte AWS que vous avez utilisé pour vous abonner à Amazon QuickSight. Celui-ci doit correspondre à l'ID de compte AWS de l'identité du mandataire. 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 consulter une liste de toutes les opérations d'API et des objets de requêtes qu'elles utilisent, vous pouvez utiliser CTRL-clic sur l'objet client dans votre IDE afin de visualiser l'interface Amazon QuickSight. Vous pouvez également le trouver dans le package com.amazonaws.services.quicksight dans le fichier JAR JavaClient Amazon QuickSight.

JavaScript (Node.js) SDK

Utilisez la procédure suivante pour interagir avec Amazon QuickSight en utilisant 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 en savoir plus sur la configuration de Node.js avec le kit de développement logiciel (SDK) AWS et la définition de vos informations d'identification, consultez le AWS SDK pour JavaScript Guide du développeur pour SDK v2 (français non garanti).

  3. Utilisez l'exemple de code suivant pour tester votre configuration. Le protocole HTTPS est requis. L'exemple affiche une liste complète des opérations Amazon QuickSight ainsi que leurs paramètres de demandes d'URL, avec ensuite une liste des utilisateurs Amazon QuickSight dans 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 package botocore personnalisé pour interagir avec Amazon QuickSight.

  1. Créez un fichier d'informations d'identification dans le répertoire AWS pour 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

Utilisez la procédure suivante pour interagir avec Amazon QuickSight en utilisant 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 fois QuickSightSDK sélectionné, sélectionnez les trois packages Amazon QuickSight :

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