Desarrollo de aplicaciones con la API de Amazon QuickSight - Amazon QuickSight

Desarrollo de aplicaciones con la API de Amazon QuickSight

Puede administrar la mayoría de los aspectos de la implementación mediante los SDK de AWS para obtener acceso a una API adaptada al lenguaje de programación o la plataforma que utilice. Para obtener más información, consulte SDK de AWS.

Para obtener más información sobre las operaciones de la API, consulte la referencia de la API de Amazon QuickSight.

Para poder llamar a las operaciones de la API de Amazon QuickSight es necesario el permiso quicksight:operation-name en una política asociada a la identidad de IAM. Por ejemplo, para llamar a list-users, necesita el permiso quicksight:ListUsers. Lo mismo es aplicable a todas las operaciones.

Si no está seguro de cuál es el permiso necesario, puede intentar realizar una llamada. A continuación, el cliente le indica cuál es el permiso que falta. Puede usar un asterisco (*) en el campo Recurso de su política de permisos en lugar de especificar recursos explícitos. Sin embargo, le recomendamos que restrinja cada permiso en la medida de lo posible. Para restringir el acceso de los usuarios, especifique los recursos o exclúyalos de la política mediante el identificador del Nombre de recurso de Amazon (ARN) de Amazon QuickSight.

Para obtener más información, consulte los siguientes temas:

Para obtener el ARN de un usuario o un grupo, utilice la operación Describe para el recurso correspondiente. También puede añadir condiciones en IAM para restringir aún más el acceso a una API en algunos casos. Por ejemplo, si añade User1 a Group1, el recurso principal es Group1, por lo que puede permitir o denegar el acceso a determinados grupos, pero también puede añadir una condición mediante la clave de IAM de Amazon QuickSight quicksight:UserName para permitir o impedir que se agreguen determinados usuarios a ese grupo.

El siguiente es un ejemplo de política. Significa que el intermediario que tiene esta política asociada puede invocar la operación CreateGroupMembership para cualquier grupo, siempre que el nombre de usuario que se añade al grupo no sea 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

En el siguiente procedimiento se explica cómo interactuar con las operaciones de API de Amazon QuickSight a través de la CLI de AWS. Las instrucciones siguientes se han probado en Bash, pero deberían ser idénticas o similares en otros entornos de línea de comandos.

  1. Instale el SDK de AWS en su entorno. Encontrará instrucciones para hacerlo aquí: Interfaz de línea de comandos de AWS.

  2. Configure la identidad y la región de la CLI de AWS con el comando siguiente y siga las instrucciones. Utilice las credenciales de una identidad o rol de IAM que tenga los permisos adecuados.

    aws configure
  3. Para consultar la ayuda del SDK de Amazon QuickSight, ejecute el siguiente comando:

    aws quicksight help
  4. Para obtener instrucciones detalladas sobre el uso de una API, escriba su nombre seguido de “help”, del siguiente modo:

    aws quicksight list-users help
  5. Ahora puede llamar a una operación de la API de Amazon QuickSight. En este ejemplo se obtiene una lista con los usuarios de Amazon QuickSight de la cuenta.

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

Utilice el siguiente procedimiento para configurar una aplicación Java que interactúe con Amazon QuickSight.

  1. Para empezar, cree un proyecto de Java en el IDE.

  2. Importe el SDK de Amazon QuickSight en el nuevo proyecto, por ejemplo: AWSQuickSightJavaClient-1.11.x.jar

  3. Una vez que el IDE indexe el SDK de Amazon QuickSight, debería poder añadir una línea de importación, de este modo:

    import com.amazonaws.services.quicksight.AmazonQuickSight;

    Si el IDE no lo reconoce como válido, compruebe que ha importado el SDK.

  4. Al igual que otros SDK de AWS, el SDK de Amazon QuickSight requiere dependencias externas para realizar muchas de sus funciones. Es necesario descargarlas e importarlas en el mismo proyecto. Se requieren las dependencias siguientes:

  5. Ahora ya puede crear un cliente de Amazon QuickSight. Puede utilizar punto de enlace público predeterminado con el que el cliente pueda comunicar o indicar el punto de enlace de forma explícita. Existen varias maneras de proporcionar las credenciales de AWS. En el siguiente ejemplo ofrecemos un método sencillo y directo. En el método de cliente siguiente se utiliza para realizar todas las llamadas a la API subsiguientes:

    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. Ahora podemos utilizar el cliente anterior para obtener una lista de todos los usuarios de nuestra de Amazon QuickSight.

    nota

    Debe proporcionar el ID de cuenta de AWS que usó para suscribirse a Amazon QuickSight. Debe coincidir con el ID de cuenta de AWS de la identidad del intermediario. Actualmente no se admiten las llamadas entre cuentas. Además, en el parámetro obligatorio namespace debe especificarse siempre el valor predeterminado.

    getClient().listUsers(new ListUsersRequest() .withAwsAccountId("relevant_AWS_account_ID") .withNamespace("default")) .getUserList().forEach(user -> { System.out.println(user.getArn()); });
  7. Para ver una lista de todas las posibles operaciones de API y los objetos de solicitud que utilizan, haga CTRL-clic en el objeto cliente en el IDE para ver la interfaz de Amazon QuickSight. También puede encontrarla en el paquete com.amazonaws.services.quicksight contenido en el archivo JAR del cliente Java para Amazon QuickSight.

JavaScript (Node.js) SDK

El siguiente procedimiento le permite interactuar con Amazon QuickSight mediante Node.js.

  1. Configure el entorno del nodo con los comandos siguientes:

    • npm install aws-sdk

    • npm install aws4

    • npm install request

    • npm install url

  2. Para obtener información sobre cómo configurar Node.js con el SDK de AWS y establecer sus credenciales, consulte la Guía para desarrolladores de AWS SDK para JavaScript para SDK v2.

  3. Utilice el ejemplo de código siguiente para comprobar la configuración. HTTPS es obligatorio. El ejemplo muestra una lista completa de operaciones de Amazon QuickSight junto con sus parámetros de solicitud URL, seguida de una lista de usuarios de Amazon QuickSight en la cuenta.

    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

Utilice el procedimiento siguiente para crear un paquete botocore personalizado que interactúe con Amazon QuickSight.

  1. Cree un archivo de credenciales en el directorio de AWS para el entorno. En un entorno basado en Linux/Mac, el archivo se denomina ~/.aws/credentials y es similar al siguiente:

    [default] aws_access_key_id = Your_IAM_access_key aws_secret_access_key = Your_IAM_secret_key
  2. Descomprima la carpeta botocore-1.12.10. Cambie el directorio a botocore-1.12.10 y escriba el nombre del entorno del intérprete Python3.

  3. Las respuestas volverán como un objeto de diccionario. Cada una tendrá una entrada ResponseMetadata con los ID de solicitud y el estado de la respuesta. Las demás entradas dependen del tipo de operación que ejecute.

  4. El ejemplo siguiente es una aplicación de muestra que primero crea, elimina y muestra grupos. A continuación muestra una lista de los usuarios de una cuenta de 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

El siguiente procedimiento le permite interactuar con Amazon QuickSight mediante C#.NET. En este ejemplo se basa en Microsoft Visual para Mac. Las instrucciones pueden variar ligeramente dependiendo del IDE y la plataforma. Sin embargo, deberían ser muy similares.

  1. Descomprima el archivo nuget.zip en una carpeta llamada nuget.

  2. Cree un nuevo proyecto Aplicación de consola en Visual Studio.

  3. Dentro de la solución, busque las Dependencias de la aplicación y, a continuación, abra el menú contextual (clic con el botón derecho) y elija Agregar paquetes.

  4. En la lista de orígenes, elija Configurar orígenes.

  5. Elija Agregar y asigne al origen el nombre QuickSightSDK. Navegue hasta la carpeta nuget y elija Agregar origen.

  6. Seleccione Aceptar. A continuación, con QuickSightSDK seleccionado, seleccione los tres paquetes de Amazon QuickSight:

    • AWSSDK.QuickSight

    • AWSSDK.Extensions.NETCore.Setup

    • AWSSDK.Extensions.CognitoAuthentication

  7. Haga clic en Agregar paquete.

  8. Copie y pegue la siguiente aplicación de ejemplo en el editor de aplicaciones de la consola.

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