

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.

# Connexion à Zendesk
<a name="connecting-to-data-zendesk"></a>

Zendesk est une solution de gestion de centre d’assistance cloud qui propose des outils personnalisables pour créer un portail de service client, une base de connaissances et des communautés en ligne.

**Topics**
+ [AWS Glue support pour Zendesk](zendesk-support.md)
+ [Politiques contenant les opérations API pour la création et l’utilisation des connexions](zendesk-configuring-iam-permissions.md)
+ [Configuration de Zendesk](zendesk-configuring.md)
+ [Configuration de connexions Zendesk](zendesk-configuring-connections.md)
+ [Lecture à partir d’entités Zendesk](zendesk-reading-from-entities.md)
+ [Options de connexion Zendesk](zendesk-connection-options.md)
+ [Limitations](zendesk-limitations.md)

# AWS Glue support pour Zendesk
<a name="zendesk-support"></a>

AWS Glue prend en charge Zendesk comme suit :

**Prise en charge en tant que source ?**  
Oui. Vous pouvez utiliser les tâches AWS Glue ETL pour interroger les données de Zendesk.

**Prise en charge en tant que cible ?**  
Non.

**Versions d’API Zendesk prises en charge**  
Les versions d’API Zendesk suivantes sont prises en charge :
+   v2

# Politiques contenant les opérations API pour la création et l’utilisation des connexions
<a name="zendesk-configuring-iam-permissions"></a>

L'exemple de politique suivant décrit les autorisations AWS IAM requises pour créer et utiliser des connexions. Si vous créez un rôle, créez une politique contenant les éléments suivants :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Si vous ne voulez pas utiliser la méthode ci-dessus, vous pouvez également utiliser les politiques IAM gérées suivantes :
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Accorde l'accès aux ressources dont AWS Glue les différents processus ont besoin pour s'exécuter en votre nom. Ces ressources incluent AWS Glue Amazon S3, IAM, CloudWatch Logs et Amazon EC2. Si vous suivez la convention de dénomination des ressources spécifiée dans cette politique, AWS Glue les processus disposent des autorisations requises. Cette politique est généralement attachée aux rôles spécifiés lorsque vous définissez les crawlers, les tâches et les points de terminaison de développement.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Accorde un accès complet aux AWS Glue ressources lorsqu'une identité à laquelle la politique est attachée utilise la console AWS de gestion. Si vous suivez la convention de dénomination pour les ressources spécifiées dans la politique, les utilisateurs bénéficient des capacités totales de la console. Cette politique s'applique généralement aux utilisateurs de la AWS Glue console.

# Configuration de Zendesk
<a name="zendesk-configuring"></a>

Avant de pouvoir AWS Glue transférer des données depuis Zendesk, vous devez répondre aux exigences suivantes :

## Configuration requise
<a name="zendesk-configuring-min-requirements"></a>

Les exigences minimales sont les suivantes :
+ Vous disposez d’un compte Zendesk. Pour de plus amples informations, veuillez consulter [Création d’un compte Zendesk](#zendesk-configuring-creating-account).
+ Votre compte Zendesk est activé pour accéder à l’API.
+ Votre compte Zendesk vous permet d’installer des applications connectées.

Si vous répondez à ces exigences, vous êtes prêt à vous connecter AWS Glue à votre compte Zendesk.

## Création d’un compte Zendesk
<a name="zendesk-configuring-creating-account"></a>

Pour créer un compte Zendesk :

1. Accéder à l' https://www.zendesk.com/in/enregistrement/

1. Saisissez les informations telles que votre adresse e-mail professionnelle, votre prénom, votre nom de famille, votre numéro de téléphone, le titre du poste, le nom de l’entreprise, le nombre d’employés de l’entreprise, le mot de passe et la langue de votre choix. Choisissez ensuite **Inscription complète à l’essai**.

1. Une fois votre compte créé, utilisez le lien de vérification que vous avez reçu pour vérifier votre adresse e-mail.

1. Une fois l’adresse e-mail professionnelle vérifiée, vous êtes redirigé vers votre compte Zendesk. Choisissez l’**option Acheter Zendesk** pour votre plan préféré. Remarque : Pour le connecteur Zendesk, il est recommandé d’acheter le plan Suite Enterprise.

## Création d'une application cliente et d'informations d'identification OAuth 2.0
<a name="zendesk-configuring-creating-client-app"></a>

Pour créer une application cliente et des informations d'identification OAuth 2.0 :

1. Connectez-vous à votre compte Zendesk où vous souhaitez que l'application OAuth 2.0 soit créée https://www.zendesk.com/in/ login/

1. Cliquez sur l’icône d’engrenage. Cliquez sur le lien **Accéder au centre d’administration** pour ouvrir la page du centre d’administration.

1. Choisissez **Applications et intégrations** dans la barre latérale gauche, puis sélectionnez **APIs**> API **Zendesk**.

1. Sur la page de l'API Zendesk, choisissez l'onglet **OAuth Clients**.

1. Choisissez **Ajouter un client OAuth** sur le côté droit.

1. Renseignez les champs suivants pour créer un client :

   1. Nom du client : saisissez un nom pour votre application. Il s’agit du nom que les utilisateurs verront lorsqu’on leur demandera d’autoriser l’accès à votre application et lorsqu’ils consulteront la liste des applications tierces ayant accès à leur application Zendesk.

   1. Description (facultatif). Brève description de votre application que les utilisateurs verront lorsqu’on leur demandera d’autoriser l’accès à celle-ci.

   1. Entreprise (facultatif). Le nom de l’entreprise que les utilisateurs verront lorsqu’ils seront invités à autoriser l’accès à votre application. Ces informations peuvent les aider à comprendre à qui ils accordent l’accès.

   1. Logo (facultatif). Il s’agit du logo que les utilisateurs verront lorsqu’on leur demandera d’autoriser l’accès à votre application. L’image peut être au format JPG, GIF ou PNG. Pour obtenir de meilleurs résultats, importez une image carrée. Elle sera redimensionnée pour la page d’autorisation.

   1. Identifiant unique : le champ est rempli automatiquement avec une version reformatée du nom que vous avez saisi pour votre application. Vous pouvez modifier les noms si vous le souhaitez.

   1. Redirection URLs  : entrez l'URL ou l'URL URLs que Zendesk doit utiliser pour envoyer la décision de l'utilisateur d'autoriser l'accès à votre application.

      Par exemple : https://us-east-1.console.aws.amazon.com/gluestudio/ oauth

1. Cliquez sur **Sauvegarder**

1. Une fois la page actualisée, un nouveau champ **Secret** prérempli apparaît en bas de la page. Il s'agit de la valeur « client\$1secret » spécifiée dans la OAuth2 spécification. Copiez la valeur Secret dans votre presse-papiers et enregistrez-la dans un endroit sûr. Remarque : Les caractères peuvent dépasser la largeur de la zone de texte. Assurez-vous donc de tout sélectionner avant de copier.

1. Cliquez sur **Sauvegarder**

# Configuration de connexions Zendesk
<a name="zendesk-configuring-connections"></a>

Le connecteur Zendesk prend en charge le type d’autorisation Authorization Code.
+ Ce type de subvention est considéré comme « à trois étapes » OAuth car il repose sur la redirection des utilisateurs vers un serveur d'autorisation tiers pour authentifier l'utilisateur. Il est utilisé lors de la création de connexions via la AWS Glue console. L'utilisateur qui crée une connexion peut par défaut s'appuyer sur une application connectée qu'il AWS Glue possède (application client AWS Glue gérée) pour laquelle il n'a pas besoin de fournir d'informations OAuth connexes, à l'exception de l'URL de son instance Zendesk. La AWS Glue console redirige l'utilisateur vers Zendesk où il doit se connecter et autoriser AWS Glue les autorisations demandées pour accéder à son instance Zendesk.
+ Vous pouvez toujours choisir de créer votre propre application connectée dans Zendesk et de fournir votre propre identifiant client et votre secret client lors de la création de connexions via la AWS Glue console. Dans ce scénario, vous serez toujours redirigé vers Zendesk pour vous connecter et autoriser l'accès AWS Glue à vos ressources.
+ Ce type d’autorisation donne lieu à un jeton d’accès. Le jeton d’accès n’expire jamais.

Pour consulter la documentation publique de Zendesk sur la création d'une application connectée pour le OAuth flux de code d'autorisation, consultez la section [OAuth Tokens pour les types de subvention](https://developer.zendesk.com/api-reference/ticketing/oauth/grant_type_tokens/).

Pour configurer une connexion Zendesk :

1. Dans AWS Secrets Manager, créez un secret avec les informations suivantes :

   1. Pour le type de AuthorizationCode subvention : pour une application connectée gérée par le client, le secret doit contenir le secret du consommateur de l'application connectée avec `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` comme clé.

   1. Remarque : vous devez créer un secret par connexion dans AWS Glue.

1. Dans AWS Glue Glue Studio, créez une connexion sous **Data Connections** en suivant les étapes ci-dessous :

   1. Lorsque vous sélectionnez un **type de connexion**, sélectionnez Zendesk.

   1. Indiquez l’INSTANCE\$1URL de l’instance Zendesk à laquelle vous souhaitez vous connecter.

   1. Indiquez l’environnement Zendesk.

   1. Sélectionnez le rôle AWS IAM qui AWS Glue peut assumer les actions suivantes et qui dispose des autorisations nécessaires pour les actions suivantes :

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Sélectionnez celui `secretName` que vous souhaitez utiliser pour cette connexion AWS Glue afin d'y placer les jetons.

   1. Sélectionnez les options réseau si vous souhaitez utiliser votre réseau.

1. Accordez au rôle IAM associé à votre AWS Glue travail l'autorisation de lire`secretName`.

# Lecture à partir d’entités Zendesk
<a name="zendesk-reading-from-entities"></a>

**Prérequis**

Un objet Zendesk à partir duquel vous souhaitez lire. Vous aurez besoin du nom de l’objet tel que ticket, user ou article, comme indiqué dans le tableau suivant.


| Entité | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge\$1 | Partitionnement pris en charge | 
| --- | --- | --- | --- | --- | --- | 
| Ticket | Y | Y | Y | Y | N | 
| Utilisateur | Y | Y | Y | Y | N | 
| Organisation | Y | Y | Y | Y | N | 
| Article | Y | Y | N | Y | N | 
| Ticket Event | Y | Y | N | Y | N | 
| Ticket Metric Event | Y | Y | N | Y | N | 
| Ticket Comment | Y | Y | Y | Y | N | 
| Ticket Field | Y | Y | N | Y | N | 
| Ticket Metric | Y | Y | N | Y | N | 
| Ticket Activity | Y | Y | N | Y | N | 
| Ticket Skip | N | Y | N | Y | N | 
| Groupe | Y | Y | Y | Y | N | 
| Group Membership | N | Y | Y | Y | N | 
| Satisfaction Rating | Y | Y | N | Y | N | 
| Afficher | Y | Y | Y | Y | N | 
| Déclencheur | Y | Y | Y | Y | N | 
| Trigger Category | N | Y | Y | Y | N | 
| Macro | Y | Y | Y | Y | N | 
|  Automatisation | N | Y | Y | Y | N | 

**Exemple :**

```
Zendesk_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Zendesk",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v2"
    }
```

**Entités Zendesk et détails des champs** :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/zendesk-reading-from-entities.html)

**Note**  
Les types de données Struct et List sont convertis en type de données String dans la réponse du connecteur.

## Requêtes de partitionnement
<a name="zendesk-reading-partitioning-queries"></a>

Les partitions ne sont pas prises en charge dans Zendesk.

# Options de connexion Zendesk
<a name="zendesk-connection-options"></a>

Les options de connexion pour Zendesk sont les suivantes :
+ `ENTITY_NAME`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Le nom de votre objet dans Zendesk.
+ `API_VERSION`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Version d’API Rest Zendesk que vous souhaitez utiliser. Par exemple : v2.
+ `SELECTED_FIELDS`(Liste<Chaîne>) - Par défaut : vide (SELECT \$1). Utilisé pour la lecture. Colonnes que vous souhaitez sélectionner pour l’objet. Par exemple : id, name, url, created\$1at
+ `FILTER_PREDICATE`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Doit être au format SQL Spark. Par exemple : group\$1id = 100
+ `QUERY`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Requête Spark SQL complète. Par exemple : "SELECT id,url FROM users WHERE role=\$1"end-user\$1""
+ `PARTITION_FIELD`(Chaîne) - Utilisé pour la lecture. Champ à utiliser pour partitionner la requête. Le champ par défaut est `update_at` pour les entités prenant en charge l’API d’exportation incrémentielle (`created_at` pour `ticket-events` et `time` pour `ticket-metric-events`).
+ `LOWER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite inférieure inclusive du champ de partition choisi.
+ `UPPER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite supérieure exclusive du champ de partition choisi. Facultatif : cette option sera gérée par le connecteur si elle n’est pas fournie dans l’option de tâche. Valeur par défaut : "2024-05-01T20:55:02.000Z
+ `NUM_PARTITIONS`(Entier) - Par défaut : 1. Utilisé pour la lecture. Nombre de partitions pour la lecture. Facultatif : cette option sera gérée par le connecteur si elle n’est pas fournie dans l’option de tâche. Valeur par défaut : 1.
+ `IMPORT_DELETED_RECORDS`(Chaîne) - Par défaut : FALSE. Utilisé pour la lecture. Pour obtenir les enregistrements supprimés lors de la requête.
+ `ACCESS_TOKEN` : jeton d’accès à utiliser dans la demande.
+ `INSTANCE_URL` : URL de l’instance sur laquelle l’utilisateur souhaite exécuter les opérations. Par exemple : https://\$1subdomain\$1/.zendesk.com

# Limitations
<a name="zendesk-limitations"></a>

Les restrictions du connecteur Zendesk sont les suivantes :
+ La pagination basée sur le décalage limite le nombre de pages pouvant être extraites à 100, mais cela n’est pas recommandé, car le nombre total d’enregistrements pouvant être extraits est de 10 000. Cependant, la pagination basée sur un curseur mise en œuvre pour le connecteur Zendesk permet de contourner cette restriction. Seul l’opérateur de filtre EQUAL\$1TO est pris en charge par l’API Zendesk.

  En raison de cette restriction, le partitionnement n’est pas pris en charge pour le connecteur Zendesk.
+ Pour l’entité « Ticket Event », la limite de débit est de 10 demandes par minute. Lors de l'exécution d'une tâche AWS Glue ETL, vous pouvez recevoir un message d'erreur 429 (trop de demandes).