Accéder au contenu principal Passer au contenu complémentaire

Utiliser un compte de service pour exécuter des tâches

Utilisez un compte de service pour exécuter des tâches à l'endpoint suivant : https://api.<env>.cloud.talend.com/processing/executions

Avant de commencer

  • Assurez-vous que le compte de service à utiliser pour émettre les appels d'API a les autorisations appropriées. Ces autorisations peuvent être :
    • L'autorisation Engines - Use (Moteurs - Utilisation). L'ID de cette autorisation est TMC_ENGINE_USE. Dans cet exemple, le compte de service s'est vu attribuer cette autorisation, comme précédemment décrit dans Créer un compte de service avec account/service-accounts.
    • L'autorisation Operations - Manage (Opérations - Gestion). L'ID de cette autorisation est TMC_OPERATOR.
    Avec l'une de ces autorisations, le compte de service doit également se voir attribuer l'autorisation Execute (Exécution) sur l'espace de travail auquel appartient la tâche à exécuter. Si ce n'est pas encore fait, suivez la procédure Attribuer des autorisations d'espaces de travail à un compte de service pour attribuer l'autorisation.
  • Une fois généré, un jeton de compte de service expire après 30 minutes. S'il expire, générez un nouveau jeton à l'aide de la méthode POST sur l'endpoint https://api.<env>.cloud.talend.com/security/oauth/token. Pour plus d'informations concernant la génération de ce jeton, consultez Générer un jeton de compte de service.

Pourquoi et quand exécuter cette tâche

Dans cette section, l'appel d'API suivant est émis :
method: POST
endpoint:  https://api.<env>.cloud.talend.com/processing/executions
headers: {
 "Content-Type": "application/json",
 "Authorization": "Bearer <service_account_token>"
}
payload: {
  "executable": "id_of_the_task_to_be_run",
  "logLevel": "WARN"
}
Il est implémenté dans Talend API Tester à des fins de démonstration. Dans Talend API Tester, vous pouvez utiliser un Expression Builder pour récupérer de manière dynamique le jeton du compte de service depuis la requête d'API associée.

Procédure

  1. Sélectionnez POST dans la liste Method (Méthode) et, dans le champ à côté, saisissez l'endpoint de gestion des utilisateur·trices à utiliser : https://api.<env>.cloud.talend.com/processing/executions.

    Exemple

    La méthode POST est sélectionnée et l'endpoint de gestion des utilisateur·trices à utiliser est spécifié.
  2. Cliquez sur Add header (Ajouter un en-tête). Dans le champ name qui s'affiche, saisissez Content-Type et, dans le champ value, saisissez application/json.
  3. Cliquez à nouveau sur Add header (Ajouter un en-tête). Dans le champ name (nom), saisissez Authorization et, dans le champ value (valeur), saisissez Bearer, ainsi que le jeton d'accès du compte de service, ou cliquez sur pour construire une expression dynamique. Saisissez un espace afin de séparer Bearer du jeton.

    Exemple

    Puisque vous devez renouveler le jeton lorsque le jeton actif expire, il est recommandé d'utiliser une expression pour activer cette requête d'API, pour utiliser de manière dynamique le jeton le plus récent, après renouvellement par la requête d'API.
    Expression Builder.

    Dans Talend API Tester, vous pouvez utiliser l'Expression Builder pour écrire l'expression. La requête d'API de jeton doit avoir été sauvegardée dans votre référentiel. Dans la section précédente, cette requête d'API a été sauvegardée et nommée Renew the SAT.

    Cela donne une valeur semblable à celle-ci, pour Authorization.
    Bearer ${"service-account 2021"."Service Account Token scenario"."Reniew the SAT"."response"."body"."access_token"}
  4. Dans la zone BODY (CORPS), saisissez les informations spécifiant la tâche à exécuter par le compte de service.

    Exemple

    {
      "executable": "id_of_the_task_to_be_run",
      "logLevel": "WARN"
    }
    Dans cet exemple, aucun paramètre n'est spécifié dans le corps, afin que cette exécution de tâche utilise les paramètres par défaut, configurés lors de la création de la tâche. Si vous devez utiliser des valeurs personnalisées pour vos paramètres de tâches, comme les paramètres de connexion, ajoutez ces paramètres au corps, par exemple :
    "parameters": [
        {
          "name": "authentication_type",
          "value": "Basic",
          "encrypted": false
        },
        {
          "name": "basic_username",
          "value": "my_user_name",
          "encrypted": false
        },
        {
          "name": "basic_password",
          "value": "my_password",
          "encrypted": true
        },
        {
          "name": "basic_security_token",
          "value": "my_salesforce_security_token",
          "encrypted": true
        }
      ]
  5. Envoyez et sauvegardez la requête.

Résultats

L'ID de cette exécution est retourné avec le code de statut 201.
{
  "executionId": "16fefb53-035a-4249-af9d-f80a3b47b132"
}

Que faire ensuite

Utilisez cet ID sur l'endpoint /executions/{runId}/logs pour monitorer cette exécution de tâche. Pour plus d'informations, consultez Monitorer les exécutions de tâches.
Note InformationsRemarque : Notez que runId et executionId font référence à l'ID d'une exécution de tâche dans cette documentation.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !