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

Guide d'utilisation des API Talend Cloud

Version
Cloud
Language
Français
Product
Talend Cloud
Module
Talend API Designer
Talend API Tester
Talend Data Preparation
Talend Data Stewardship
Talend Management Console
Content
Création et développement > Création d'APIs
Création et développement > Test d'API
Last publication date
2023-11-13
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

  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.

    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.
Remarque : Notez que runId et executionId font référence à l'ID d'une exécution de tâche dans cette documentation.