web-dev-qa-db-fra.com

Existe-t-il un moyen de créer une analyse Quicksight uniquement via du code (boto3)?

Ce que j'ai actuellement dans mon compte Quicksight est une source de données (Redshift), des ensembles de données (certaines vues Redshift) et une analyse (graphiques et graphiques qui utilisent les ensembles de données). Je peux afficher tous ces éléments sur la console AWS Quicksight. Mais lorsque j'utilise boto3 pour créer une source de données et des ensembles de données, rien n'apparaît sur la console. Ils apparaissent cependant lorsque j'utilise les appels list_data_sources et list_data_sets.

Après cela, je dois créer tous les graphiques par code que j'ai créé manuellement. Je ne trouve actuellement aucune option pour le faire via le code. Il existe un appel d'API 'create_template' qui est censé créer un modèle via une analyse Quicksight existante. Mais cela nécessite l'ARN de l'analyse que je ne trouve pas.

Des suggestions sur quoi faire?

5
ashirhs

Il semble que votre petite question concerne l'ARN de l'analyse.

Le format des ARN d'analyse est

arn:aws:quicksight:$AWS_REGION:$AWS_ACCOUNT_ID:analysis/$ANALYSIS_ID

  • $AWS_REGION est remplacé par la région dans laquelle se trouve l'analyse
  • $AWS_ACCOUNT_ID est remplacé par votre ID de compte AWS
  • $ANALYSIS_ID est remplacé par l'ID d'analyse

Si vous recherchez le $ANALYSIS_ID c'est l'élément qui ressemble au GUID à la fin de l'URL pour l'analyse dans l'URL QuickSight

Donc, si vous étiez sur une analyse à l'URL

https://quicksight.aws.Amazon.com/sn/analyses/018ef6393-2c71-4842-9798-1aa2f0902804

l'ID d'analyse serait 018ef6393-2c71-4842-9798-1aa2f0902804 (c'est un faux ID que j'ai injecté pour cet exemple).

Votre plus grande question semble être de savoir si vous pouvez utiliser le create_template API pour dupliquer votre analyse. La réponse en ce moment (16/12/19) est, malheureusement, non.

Vous pouvez utiliser le create_dashboard API pour publier un Dashboard à partir d'un modèle créé avec create_template mais vous ne pouvez pas créer d'analyse à partir d'un modèle.

Je réponds à ceci juste pour clarifier car vous pouvez en fait être d'accord avec la création d'un tableau de bord (essentiellement la version publiée d'une analyse) plutôt qu'une autre analyse.

1
mjgpy3

Remarque: cela répond uniquement aux raisons pour lesquelles les ensembles de données/sources n'apparaissent pas dans la console. Quant à l'autre question, je suppose que mjgpy a été d'une certaine aide.

Résumé

Ajoutez les autorisations au bas de cet article à votre ensemble de données et à votre source de données afin qu'elles apparaissent dans la console. Assurez-vous de remplir l'arn principal avec vos coordonnées.

Détails

Pour que les ensembles de données et les sources de données apparaissent dans la console lorsqu'ils sont créés via l'API, vous devez vous assurer que les autorisations appropriées leur ont été ajoutées. Sans ajouter les autorisations correctes, il est vrai que la CLI les répertorie alors que la console ne les répertorie pas.

Si vous avez créé des ensembles de données/sources via la console, vous pouvez utiliser la CLI (aws quicksight describe-data-set-permissions et aws quicksight describe-data-source-permissions) pour afficher les autorisations accordées par AWS afin que votre compte puisse interagir avec eux.

J'ai testé ceci et c'est ce qu'AWS leur attribue à partir du 25/03/2020.

Autorisations de l'ensemble de données:

"permissions": [
  {
    "Principal": "arn:aws:quicksight:<region>:<aws_account_id>:user/default/{IAM user name}",
    "Actions": [
      "quicksight:UpdateDataSetPermissions",
      "quicksight:DescribeDataSet",
      "quicksight:DescribeDataSetPermissions",
      "quicksight:PassDataSet",
      "quicksight:DescribeIngestion",
      "quicksight:ListIngestions",
      "quicksight:UpdateDataSet",
      "quicksight:DeleteDataSet",
      "quicksight:CreateIngestion",
      "quicksight:CancelIngestion"
    ]
  }
]

Autorisations de la source de données:

"permissions": [
  {
    "Principal": "arn:aws:quicksight:<region>:<aws_account_id>:user/default/{IAM user name}",
    "Actions": [
      "quicksight:UpdateDataSourcePermissions",
      "quicksight:DescribeDataSource",
      "quicksight:DescribeDataSourcePermissions",
      "quicksight:PassDataSource",
      "quicksight:UpdateDataSource",
      "quicksight:DeleteDataSource"
    ]
  }
]
1
M4C4R

Il existe plusieurs façons de trouver l'ID d'analyse associé. Utilisez l'un des éléments suivants.

  1. Une URL de tableau de bord a un identifiant de tableau de bord inclus, utilisez cet identifiant pour exécuter l'appel d'API describe-dashboard et vous verriez l'analyse ARN dans l'entité source.

  2. Cliquez sur l'option "enregistrer sous" sur le tableau de bord et cela vous mènera à l'analyse associée. [Il se peut que cette option ne s'affiche pas si un tableau de bord est créé à partir d'un modèle]

  3. Un ID de tableau de bord peut également être trouvé en utilisant list_dashboards appel API. Imprimez tout l'ID et le nom du tableau de bord. Vous pouvez faire correspondre l'ID avec le nom du tableau de bord donné.Regardez la liste entière car un ID de tableau de bord est unique mais le nom du tableau de bord ne l'est pas. On peut avoir plusieurs tableaux de bord avec le même nom.

0
Vivek