

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 à Adobe Marketo Engage
<a name="connecting-to-data-adobe-marketo-engage"></a>

Adobe Marketo Engage est une plateforme d’automatisation du marketing qui permet aux spécialistes du marketing de gérer des programmes et des campagnes multicanaux personnalisés destinés aux prospects et aux clients.

**Topics**
+ [AWS Glue support pour Adobe Marketo Engage](adobe-marketo-engage-support.md)
+ [Politiques contenant les opérations API pour la création et l’utilisation des connexions](adobe-marketo-engage-configuring-iam-permissions.md)
+ [Configuration d’Adobe Marketo Engage](adobe-marketo-engage-configuring.md)
+ [Configuration des connexions Adobe Marketo Engage](adobe-marketo-engage-configuring-connections.md)
+ [Lecture à partir d’entités Adobe Marketo Engage](adobe-marketo-engage-reading-from-entities.md)
+ [Écriture aux entités Adobe Marketo Engage](adobe-marketo-engage-writing-to-entities.md)
+ [Options de connexion Adobe Marketo Engage](adobe-marketo-engage-connection-options.md)
+ [Restrictions et remarques relatives au connecteur Adobe Marketo Engage](adobe-marketo-engage-connector-limitations.md)

# AWS Glue support pour Adobe Marketo Engage
<a name="adobe-marketo-engage-support"></a>

AWS Glue prend en charge Adobe Marketo Engage comme suit :

**Prise en charge en tant que source ?**  
Oui. Vous pouvez utiliser les tâches AWS Glue ETL pour interroger les données d'Adobe Marketo Engage.

**Prise en charge en tant que cible ?**  
Oui. Vous pouvez utiliser des tâches AWS Glue ETL pour écrire des données dans Adobe Marketo.

**Versions de l’API Adobe Marketo Engage prises en charge**  
Les versions de l’API Adobe Marketo Engage suivantes sont prises en charge :
+ v1

Pour connaître la prise en charge des entités par version, consultez la section Entités prises en charge pour Source.

# Politiques contenant les opérations API pour la création et l’utilisation des connexions
<a name="adobe-marketo-engage-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 d’Adobe Marketo Engage
<a name="adobe-marketo-engage-configuring"></a>

Avant de pouvoir AWS Glue transférer des données d'Adobe Marketo Engage, vous devez satisfaire aux exigences suivantes :

## Configuration requise
<a name="adobe-marketo-engage-configuring-min-requirements"></a>

Les exigences minimales sont les suivantes :
+ Vous possédez un compte Adobe Marketo Engage avec des informations d’identification client.
+ Votre compte Adobe Marketo Engage dispose d’un accès à l’API avec une licence valide.

Si vous répondez à ces exigences, vous êtes prêt à vous connecter AWS Glue à votre compte Adobe Marketo Engage. Pour les connexions classiques, vous n’avez rien d’autre à faire dans Adobe Marketo Engage.

## Obtenir des informations d'identification OAuth 2.0
<a name="adobe-marketo-engage-configuring-creating-adobe-marketo-engage-oauth2-credentials"></a>

Pour obtenir des informations d’identification d’API afin de passer des appels authentifiés vers votre instance, consultez [Adobe Marketo Rest API](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/rest-api).

# Configuration des connexions Adobe Marketo Engage
<a name="adobe-marketo-engage-configuring-connections"></a>

Adobe Marketo Engage prend en charge le type de subvention CLIENT CREDENTIALS pour OAuth2.
+ Ce type de subvention est considéré comme bidimensionnel OAuth 2.0 car il est utilisé par les clients pour obtenir un jeton d'accès en dehors du contexte d'un utilisateur. AWS Glue est capable d'utiliser l'ID client et le secret du client pour authentifier l'Adobe Marketo Engage APIs fournis par les services personnalisés que vous définissez.
+ Chaque service personnalisé appartient à un utilisateur régi uniquement par l’API, qui dispose d’un ensemble de rôles et d’autorisations autorisant le service à effectuer des actions spécifiques. Un jeton d’accès est associé à un seul service personnalisé.
+ Ce type d’autorisation donne lieu à un jeton d’accès de courte durée qui peut être renouvelé en appelant un point de terminaison d’identité.
+ Pour consulter la documentation publique d'Adobe Marketo Engage OAuth 2.0 avec les informations d'identification du client, voir [Authentification](https://developers.adobe-marketo-engage.com/rest-api/authentication/) dans le guide du développeur d'Adobe Marketo Engage.

Pour configurer une connexion Adobe Marketo Engage :

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

   1. Pour l’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 Adobe Marketo Engage.

   1. Indiquez l’`INSTANCE_URL` de l’instance Adobe Marketo Engage à laquelle vous souhaitez vous connecter.

   1. Sélectionnez le rôle AWS IAM qui AWS Glue peut assumer et 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 Adobe Marketo Engage
<a name="adobe-marketo-engage-reading-from-entities"></a>

**Prérequis**

Un objet Adobe Marketo Engage à partir duquel vous souhaitez lire. Vous aurez besoin du nom de l’objet, comme leads, activities ou customobjects. Les tableaux suivants présentent les entités prises en charge.

**Entités prises en charge pour source (synchrone)** :


| Entité | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge\$1 | Partitionnement pris en charge | 
| --- | --- | --- | --- | --- | --- | 
| leads | Oui | Oui | Non | Oui | Non | 
| activités | Oui | Oui | Non | Oui | Non | 
| customobjects | Oui | Oui | Non | Oui | Non | 

**Entités prises en charge pour source (asynchrone)** :


| Entité | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge\$1 | Partitionnement pris en charge | 
| --- | --- | --- | --- | --- | --- | 
| leads | Oui | Non | Non | Oui | Oui | 
| activités | Oui | Non | Non | Oui | Non | 
| customobjects | Oui | Non | Non | Oui | Oui | 

**Exemple :**

```
adobe-marketo-engage_read = glueContext.create_dynamic_frame.from_options(
    connection_type="adobe-marketo-engage",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v2",
        "INSTANCE_URL": "https://539-t**-6**.mktorest.com"
    }
```

**Détails des entités et des champs Adobe Marketo Engage** :

**Entités avec métadonnées statiques** : 

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

**Entités avec métadonnées dynamiques** :

Pour les entités suivantes, Adobe Marketo Engage fournit des points de terminaison permettant de récupérer les métadonnées de manière dynamique, afin que la prise en charge des opérateurs soit capturée au niveau du type de données pour chaque entité.

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

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

Vous pouvez indiquer les options Spark supplémentaires `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` et `NUM_PARTITIONS` si vous souhaitez utiliser la simultanéité dans Spark. Avec ces paramètres, la requête d’origine serait divisée en `NUM_PARTITIONS` nombres de sous-requêtes pouvant être exécutées simultanément par les tâches Spark.
+ `PARTITION_FIELD` : le nom du champ à utiliser pour partitionner la requête.
+ `LOWER_BOUND` : une valeur limite inférieure **inclusive** du champ de partition choisi.

  Pour le DateTime champ, nous acceptons la valeur au format ISO.

  Exemple de valeur valide :

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND` : une valeur limite supérieure **exclusive** du champ de partition choisi.
+ `NUM_PARTITIONS` : le nombre de partitions.

Le tableau suivant décrit les détails de prise en charge dans les champs de partitionnement d’entités :

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

Exemple :

```
adobe-marketo-engage_read = glueContext.create_dynamic_frame.from_options(
    connection_type="adobe-marketo-engage",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "createdAt"
        "LOWER_BOUND": "2024-07-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-07-02T00:00:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Écriture aux entités Adobe Marketo Engage
<a name="adobe-marketo-engage-writing-to-entities"></a>

**Conditions préalables**
+ Un objet Adobe Marketo auquel vous souhaitez écrire. Vous aurez besoin du nom de l’objet, comme `leads` ou `customobjects`.
+ Le connecteur Adobe Marketo prend en charge trois opérations d’écriture :
  + INSERT
  + UPSERT
  + UPDATE
+ Pour les opérations d’écriture `UPSERT` et `UPDATE`, vous devez proposer l’option `ID_FIELD_NAMES` afin de spécifier le champ d’ID pour les enregistrements. Lorsque vous travaillez avec l’entité `leads`, utilisez `email` en tant que `ID_FIELD_NAMES` pour les opérations `UPSERT` et `id` pour les opérations `UPDATE`. Pour l’entité `customobjects`, utilisez `marketoGUID` en tant que `ID_FIELD_NAMES` pour les opérations `UPDATE` et `UPSERT`.

**Entités prises en charge pour destination (synchrone)**


| Nom de l'entité | Sera pris en charge en tant que connecteur de destination | Peut être inséré | Peut être mis à jour | Peut faire l’objet d’un upsert | 
| --- | --- | --- | --- | --- | 
| leads | Oui | Oui (groupé) | Oui (groupé) | Oui (groupé) | 
| customobjects | Oui | Oui (groupé) | Oui (groupé) | Oui (groupé) | 

**Exemple :**

**Opération INSERT :**

```
marketo_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="marketo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v1",
        "WRITE_OPERATION": "INSERT"
    }
```

**Opération UPDATE :**

```
marketo_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="marketo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v1",
        "WRITE_OPERATION": "UPDATE",
        "ID_FIELD_NAMES": "id"
    }
```

**Note**  
Pour les entités `leads` et `customobjects`, Adobe Marketo fournit des points de terminaison permettant de récupérer les métadonnées de manière dynamique afin que les champs inscriptibles soient identifiés à partir de la réponse de l’API Marketo.

# Options de connexion Adobe Marketo Engage
<a name="adobe-marketo-engage-connection-options"></a>

Les options de connexion pour Adobe Marketo Engage sont les suivantes :
+ `ENTITY_NAME`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Le nom de votre objet dans Adobe Marketo Engage.
+ `API_VERSION`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Version d’API Rest d’Adobe Marketo Engage que vous souhaitez utiliser. Par exemple : v1.
+ `SELECTED_FIELDS`(Liste<Chaîne>) - Par défaut : vide (SELECT \$1). Utilisé pour la lecture. Colonnes que vous souhaitez sélectionner pour l’objet.
+ `FILTER_PREDICATE`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Doit être au format SQL Spark.
+ `QUERY`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Requête Spark SQL complète.
+ `PARTITION_FIELD`(Chaîne) - Utilisé pour la lecture. Champ à utiliser pour partitionner la requête.
+ `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. 
+ `NUM_PARTITIONS`(Entier) - Par défaut : 1. Utilisé pour la lecture. Nombre de partitions pour la lecture.
+ `TRANSFER_MODE`(Chaîne) - Par défaut : SYNC. Utilisé pour la lecture asynchrone.
+ `WRITE_OPERATION`(Chaîne) - Par défaut : INSERT. Utilisé pour l’écriture La valeur doit être INSERT, UPDATE, UPSERT.
+ `ID_FIELD_NAMES`(Chaîne) - Valeur par défaut : null. Nécessaire pour UPDATE et UPSERT.

# Restrictions et remarques relatives au connecteur Adobe Marketo Engage
<a name="adobe-marketo-engage-connector-limitations"></a>

Voici les restrictions ou les remarques relatives au connecteur Adobe Marketo Engage :
+ « SinceDateTime » et « activityTypeId » sont des paramètres de filtre obligatoires pour l'entité Sync Activities.
+ Les abonnements se voient allouer 50 000 appels d’API par jour (réinitialisés tous les jours à minuit CST). Une capacité quotidienne supplémentaire peut être achetée dans le cadre d’un abonnement Adobe Marketo Engage. Pour référence, consultez [Adobe Marketo Rest API](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/rest-api).
+ La durée maximale pour le filtre de plage de dates (`createdAt` ou `updatedAt`) est de 31 jours. Pour référence, consultez [Bulk Extract - Marketo Developers](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Les abonnements se voient attribuer un maximum de 10 tâches d’extraction en bloc dans la file d’attente à un moment précis. Pour référence, consultez [Bulk Extract - Marketo Developers](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Par défaut, les tâches d’extraction sont limitées à 500 Mo par jour (réinitialisation quotidienne à minuit CST). Une capacité quotidienne supplémentaire peut être achetée dans le cadre d’un abonnement Adobe Marketo Engage. Pour référence, consultez [Bulk Extract - Marketo Developers](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Le nombre maximum de tâches d’exportation simultanées est de deux. Pour référence, consultez [Bulk Extract - Marketo Developers](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Le nombre maximum de tâches d’exportation en attente (y compris les tâches actuellement en cours d’exportation) est de dix. Pour référence, consultez [Bulk Extract - Marketo Developers](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ La taille de fichier maximale autorisée est de 1 Go pour l’extraction à partir d’une tâche groupée.
+ Une fois qu’une tâche asynchrone est créée, la période de conservation des fichiers sera de sept jours avant l’expiration. Pour référence, consultez [Bulk Extract - Marketo Developers](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ `createdAt` ou `updatedAt` sont des paramètres de filtre obligatoires pour l’entité Async Leads.
+ Pour l’entité Async Activities, `createdAt` est un paramètre de filtre obligatoire.
+ Pour l’entité Async Custom Object, `updatedAt` est un paramètre de filtre obligatoire.
+ Lorsqu'ils utilisent des connecteurs AWS Glue SaaS, les utilisateurs ne peuvent pas identifier les enregistrements spécifiques qui ont échoué lors d'une opération d'écriture sur les plateformes SaaS de destination en cas de défaillance partielle.
+ Lorsque vous utilisez les opérations d’écriture Sync, tous les champs contenant des valeurs nulles dans le fichier d’entrée seront automatiquement supprimés et ne seront pas envoyés à la plateforme SaaS.
+ Vous pouvez créer ou mettre à jour jusqu’à 300 enregistrements par lot pour l’écriture Sync.

Pour plus d’informations, consultez [Adobe Marketo Engage Integration Best Practices](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/marketo-integration-best-practices) et [Bulk Extract](https://https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-activity-extract).