

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.

# Automatisez vos tâches de gestion avec AWS OpsHub
<a name="automate-task"></a>

Vous pouvez l'utiliser AWS OpsHub pour automatiser les tâches opérationnelles que vous effectuez fréquemment sur votre Snowball Edge. Vous pouvez créer une tâche pour effectuer des actions récurrentes sur les ressources, telles que le redémarrage de serveurs virtuels, l'arrêt d'instances EC2 compatibles avec Amazon, etc. Vous fournissez un document d'automatisation qui exécute des tâches opérationnelles en toute sécurité et exécute l'opération sur AWS des ressources en masse. Vous pouvez également planifier des flux de travail informatiques courants. 

**Note**  
L'automatisation des tâches n'est pas prise en charge sur les clusters.  
Pour utiliser des tâches, le service Amazon EC2 Systems Manager doit d'abord être démarré. Pour plus d'informations, voir [Activation de la gestion des appareils Snowball Edge sur un Snowball](https://docs.aws.amazon.com/snowball/latest/developer-guide/aws-sdm.html#enable-sdm) Edge.

**Topics**
+ [Création et démarrage d'une tâche avec AWS OpsHub](#create-task)
+ [Afficher les détails d'une tâche dans AWS OpsHub](#view-task)
+ [Supprimer une tâche dans AWS OpsHub](#delete-task)

## Création et démarrage d'une tâche avec AWS OpsHub
<a name="create-task"></a>

Lorsque vous créez une tâche, vous spécifiez les types de ressources sur lesquelles la tâche doit s'exécuter, puis fournissez un document de tâche contenant les instructions qui exécutent la tâche. Le document de tâche est au format YAML ou JSON. Vous fournissez ensuite les paramètres requis pour la tâche et démarrez la tâche.

**Pour créer une tâche**

1. Dans la section **Launch tasks (Lancer des tâches)** du tableau de bord, choisissez **Get started (Démarrer)** pour ouvrir la page **Tasks (Tâches)**. Si vous avez créé des tâches, celles-ci apparaissent sous **Tasks (Tâches)**. 

1. Choisissez **Create task (Créer une tâche)** et fournissez des détails pour la tâche.

1. Pour **Name (Nom)**, saisissez un nom unique pour la tâche.
**Astuce**  
Le nom doit comporter entre 3 et 128 caractères. Les caractères valides sont `a-z`, `A-Z`, `0-9`, `.`, `_` et `-`.

1. Si vous le souhaitez, vous pouvez choisir un type cible dans la liste **Target type-optional (Type cible facultatif)**. Il s'agit du type de la ressource sur laquelle vous souhaitez exécuter la tâche. 

   Par exemple, vous pouvez spécifier que **/AWS::EC2::Instance** les tâches doivent être exécutées sur une instance EC2 compatible avec Amazon ou **/** sur tous les types de ressources. 

1. Dans la section **Contenu**, choisissez **YAML** ou **JSON** et indiquez le script qui exécute la tâche. Vous avez deux options, le format YAML ou JSON. Pour obtenir des exemples, consultez [Exemples de tâches dans AWS OpsHub](#task-examples).

1. Choisissez **Créer**. La tâche que vous avez créée apparaît ensuite sur la page **Tasks (Tâches)**.

**Pour démarrer une tâche**

1. Dans la section **Launch tasks (Lancer des tâches)** du tableau de bord, choisissez **Get started (Démarrer)** pour ouvrir la page **Tasks (Tâches)**. Vos tâches apparaissent sous **Tasks (Tâches)**.

1. Choisissez votre tâche pour ouvrir la page **Start task (Démarrer la tâche)**.

1. Choisissez **Simple execution (Exécution simple)** pour procéder à l’exécution sur des cibles. 

   Choisissez **Rate control (Contrôle du débit)** pour procéder à l’exécution en toute sécurité sur plusieurs cibles et définir des seuils de concurrence et d'erreur. Pour cette option, vous fournissez les informations supplémentaires sur la cible et le seuil d'erreur dans la section **Rate control (Contrôle du débit)**. 

1. Fournissez les paramètres d'entrée requis, puis choisissez **Start task (Démarrer la tâche)**. 

   Le statut de la tâche est **Pending (En attente)**; il devient **Success (Succès)** lorsque la tâche a été exécutée correctement.

### Exemples de tâches dans AWS OpsHub
<a name="task-examples"></a>

L'exemple suivant redémarre une instance EC2 compatible avec Amazon. Il nécessite deux paramètres d'entrée : `endpoint` et `instance ID`. 

*Exemple YAML*

```
description: Restart EC2 instance
schemaVersion: '0.3'
parameters:
  Endpoint:
    type: String
    description: (Required) EC2 Service Endpoint URL
  Id:
    type: String
    description: (Required) Instance Id
mainSteps:
  - name: restartInstance
    action: aws:executeScript
    description: Restart EC2 instance step
    inputs:
      Runtime: python3.7
      Handler: restart_instance
      InputPayload:
        Endpoint: "{{ Endpoint }}"
        Id: "{{ Id }}"
      TimeoutSeconds: 30
      Script: |-
        import boto3
        import time
        def restart_instance(payload, context):
            ec2_endpoint = payload['Endpoint']
            instance_id = payload['Id']
            ec2 = boto3.resource('ec2', endpoint_url=ec2_endpoint)
            instance = ec2.Instance(instance_id)
            if instance.state['Name'] != 'stopped':
                instance.stop()
                instance.wait_until_stopped()
            instance.start()
            instance.wait_until_running()
            return {'InstanceState': instance.state}
```

*Exemple JSON*

```
{
  "description" : "Restart EC2 instance",
  "schemaVersion" : "0.3",
  "parameters" : {
    "Endpoint" : {
      "type" : "String",
      "description" : "(Required) EC2 Service Endpoint URL"
    },
    "Id" : {
      "type" : "String",
      "description" : "(Required) Instance Id"
    }
  },
  "mainSteps" : [ {
    "name" : "restartInstance",
    "action" : "aws:executeScript",
    "description" : "Restart EC2 instance step",
    "inputs" : {
      "Runtime" : "python3.7",
      "Handler" : "restart_instance",
      "InputPayload" : {
        "Endpoint" : "{{ Endpoint }}",
        "Id" : "{{ Id }}"
      },
      "TimeoutSeconds" : 30,
      "Script" : "import boto3\nimport time\ndef restart_instance(payload, context):\n    
            ec2_endpoint = payload['Endpoint']\n    instance_id = payload['Id']\n    
            ec2 = boto3.resource('ec2', endpoint_url=ec2_endpoint)\n    
            instance = ec2.Instance(instance_id)\n    
            if instance.state['Name'] != 'stopped':\n        
            instance.stop()\n        
            instance.wait_until_stopped()\n    
            instance.start()\n    
            instance.wait_until_running()\n    
            return {'InstanceState': instance.state}"
    }
  } ]
}
```

## Afficher les détails d'une tâche dans AWS OpsHub
<a name="view-task"></a>

Vous pouvez afficher les détails d'une tâche de gestion, tels que sa description et les paramètres nécessaires à son exécution.

**Pour afficher les détails d'une tâche**

1. Dans la section **Launch tasks (Lancer des tâches)** du tableau de bord, choisissez **Get started (Démarrer)** pour ouvrir la page **Tasks (Tâches)**. 

1. Sur la page **Tasks (Tâches)**, recherchez et choisissez la tâche dont vous souhaitez afficher les détails.

1. Choisissez **View details (Afficher les détails)**, puis choisissez un des onglets pour afficher les détails. Par exemple, l'onglet **Parameters (Paramètres)** affiche les paramètres d'entrée dans le script.

## Supprimer une tâche dans AWS OpsHub
<a name="delete-task"></a>

Procédez comme suit pour supprimer une tâche de gestion.

**Pour supprimer une tâche**

1. Dans la section **Launch tasks (Lancer des tâches)** du tableau de bord, choisissez **Get started (Démarrer)** pour ouvrir la page **Tasks (Tâches)**. 

1. Recherchez la tâche que vous souhaitez supprimer. Choisissez la tâche, puis cliquez sur **Delete (Supprimer)**.