Dans DataWorks, vous pouvez utiliser un nœud SSH pour accéder à distance à un hôte via une source de données SSH spécifiée et y exécuter des scripts. Cette rubrique décrit le flux de développement d'un nœud SSH.
Présentation
Un nœud SSH permet à DataWorks d'accéder à distance à un hôte via une source de données SSH. Par exemple, vous pouvez accéder à distance à une instance Elastic Compute Service (ECS) depuis DataWorks et y exécuter des scripts de manière périodique.
Prérequis
-
L'utilisateur RAM que vous souhaitez utiliser est ajouté à votre espace de travail.
Si vous souhaitez utiliser un utilisateur RAM pour développer des tâches, vous devez l'ajouter en tant que membre à votre espace de travail et lui attribuer le rôle Develop ou Workspace Administrator. Le rôle Workspace Administrator dispose de plus d'autorisations que nécessaire. Faites preuve de prudence lors de l'attribution de ce rôle. Pour plus d'informations sur l'ajout d'un membre et l'attribution de rôles, consultez la section Ajouter des membres à un espace de travail.
Un groupe de ressources serverless est associé à votre espace de travail. Pour plus d'informations, consultez les rubriques du répertoire Utiliser des groupes de ressources serverless.
Vous avez créé un nœud SSH pour le développement. Pour plus d'informations, consultez la section Créer un nœud dans un workflow.
-
Vous avez créé une source de données SSH.
Vous devez d'abord créer une source de données SSH pour accéder à distance à votre serveur SSH. Vous pourrez ensuite développer et planifier périodiquement des tâches SSH dans un nœud SSH. Pour plus d'informations sur la création d'une source de données, consultez la section Source de données SSH.
RemarqueLes nœuds SSH prennent uniquement en charge les sources de données SSH créées avec une chaîne de connexion JDBC. Pour éviter les échecs de tâche, assurez-vous que la source de données peut se connecter au groupe de ressources.
Limites
La longueur maximale du code pour un nœud SSH est de 128KB.
Précautions
Si une tâche de nœud SSH qui a démarré un processus sur un hôte distant se termine de manière inattendue (par exemple, en raison d'un délai d'expiration) ou est arrêtée manuellement, seul le processus côté client est arrêté. Le processus sur l'hôte distant n'est pas arrêté et DataWorks n'envoie aucune commande à l'hôte distant pour le terminer.
Les nœuds SSH prennent en charge la syntaxe shell standard, mais ne supportent pas les fonctionnalités interactives.
Lorsque vous utilisez un nœud SSH pour exécuter un script sur une instance ECS, des fichiers temporaires sont générés sur l'instance ECS. Assurez-vous que l'instance dispose d'un espace disque suffisant et peut créer les fichiers nécessaires.
N'exécutez pas simultanément plusieurs tâches opérant sur le même fichier, car cela pourrait entraîner l'échec du nœud SSH.
Étape 1 : Développer un nœud SSH
(Facultatif) Sélectionner une source de données SSH
Si plusieurs sources de données SSH existent dans votre espace de travail, sélectionnez la source appropriée sur la page d'édition du nœud SSH. Si une seule source existe, DataWorks l'utilise par défaut.
Les nœuds SSH prennent uniquement en charge les sources de données SSH créées avec une chaîne de connexion JDBC. Pour éviter les échecs de tâche, assurez-vous que la source de données peut se connecter au groupe de ressources.
Développement du code : Exemple simple
Rédigez le script que vous souhaitez exécuter dans l'éditeur de code du nœud SSH. L'exemple suivant illustre cette procédure.
# 1. Prepare the environment.
# Find the file that you want to execute on the remote host. For example, a file named hello.sh exists in the /tmp directory of the remote host.
# For ease of testing, you can run the following command in the SSH node to create the hello.sh file.
echo "echo hello,dataworks" >/tmp/hello.sh
# 2. Run the script on the remote host.
# Use the DataWorks SSH node to run the /tmp/hello.sh script.
sh /tmp/hello.sh
Développement du code : Utilisation des paramètres de planification
Utilisez les Scheduling Parameters de DataWorks pour transmettre dynamiquement des arguments à votre code dans les scénarios de planification périodique. Vous pouvez définir des variables dans le code de votre tâche en utilisant le format ${variable_name}. Sur la page d'édition du nœud, accédez à Scheduling Settings > Scheduling Parameters dans le panneau de droite pour attribuer une valeur à la variable. Pour plus d'informations sur les formats pris en charge et les détails de configuration des paramètres de planification, consultez la section Configurer les propriétés de planification d'un nœud.
L'exemple suivant montre comment utiliser les paramètres de planification dans un nœud SSH :
# This example uses the ${myDate} variable to write the node's execution time to a log file. To do this, assign the value $[yyyy-mm-dd hh24:mi:ss] to the myDate variable in the node's properties.
echo ${myDate} >/tmp/sshnode.log
cat /tmp/sshnode.log
Après avoir développé le script pour le nœud SSH, vous devez configurer ses propriétés de planification pour exécuter la tâche périodiquement. Pour plus d'informations, consultez la section Configurer les propriétés de planification d'un nœud.
Étape 2 : Déployer et gérer le nœud
Après avoir configuré les propriétés de planification, déployez le nœud SSH dans l'environnement de production. Pour plus d'informations, consultez la section Déployer un nœud ou un workflow.
Une fois le nœud déployé, il s'exécute périodiquement selon votre configuration de planification. Vous pouvez accéder à pour consulter et gérer la tâche périodique. Pour plus d'informations, consultez la section Présentation du Operation Center.
Documentation connexe
Pour savoir comment mettre en œuvre l'équilibrage de charge et la haute disponibilité pour les nœuds SSH, consultez la section Mettre en œuvre l'équilibrage de charge et la haute disponibilité pour un nœud SSH.