

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Automatice sus tareas de administración con AWS OpsHub
<a name="automate-task"></a>

Puede utilizarlo AWS OpsHub para automatizar las tareas operativas que realiza con frecuencia en su Snowball Edge. Puede crear una tarea para las acciones recurrentes que desee realizar en los recursos, como reiniciar servidores virtuales, detener instancias EC2 compatibles con Amazon, etc. Proporciona un documento de automatización que realiza las tareas operativas de forma segura y ejecuta la operación en AWS los recursos de forma masiva. También puede programar flujos de trabajo de TI comunes. 

**nota**  
No se pueden automatizar tareas en clústeres.  
Para utilizar las tareas, primero se debe iniciar el servicio Amazon EC2 Systems Manager. Para obtener más información, consulte [Activación de la administración de dispositivos Snowball Edge en un Snowball](https://docs.aws.amazon.com/snowball/latest/developer-guide/aws-sdm.html#enable-sdm) Edge.

**Topics**
+ [Crear e iniciar una tarea con AWS OpsHub](#create-task)
+ [Visualización de los detalles de una tarea en AWS OpsHub](#view-task)
+ [Eliminar una tarea en AWS OpsHub](#delete-task)

## Crear e iniciar una tarea con AWS OpsHub
<a name="create-task"></a>

Al crear una tarea, especifique los tipos de recursos en los que debe ejecutarse la tarea y, a continuación, proporcione un documento de tarea que contenga las instrucciones que ejecutan la tarea. El documento de tarea está en formato YAML o JSON. A continuación, proporcione los parámetros necesarios para la tarea e inicie la tarea.

**Cómo crear una tarea**

1. En la sección **Lanzar tareas** del panel, seleccione **Comenzar** para abrir la página **Tareas**. Si ha creado tareas, aparecerán en **Tareas**. 

1. Seleccione **Crear tarea** y proporcione los detalles de la tarea.

1. En **Nombre**, escriba un nombre único para la tarea.
**sugerencia**  
El nombre debe tener entre 3 y 128 caracteres. Los caracteres válidos son `a-z`, `A-Z`, `0-9`, `.`, `_` y `-`.

1. Opcionalmente, puede elegir un tipo de destino en la lista **Tipo de destino opcional**. Este es el tipo de recurso en el que desea que se ejecute la tarea. 

   Por ejemplo, puedes especificar **/AWS::EC2::Instance** que las tareas se ejecuten en una instancia EC2 compatible con Amazon o que se **/** ejecuten en todos los tipos de recursos. 

1. En la sección **Contenido** seleccione **YAML** o **JSON** y proporcione el script que realiza la tarea. Tiene dos opciones: formato YAML o JSON. Para ver ejemplos, consulta [Ejemplos de tareas en AWS OpsHub](#task-examples).

1. Seleccione **Crear**. La tarea que creó aparecerá en la página **Tareas**.

**Para iniciar una tarea**

1. En la sección **Lanzar tareas** del panel, seleccione **Comenzar** para abrir la página **Tareas**. Las tareas aparecen en **Tareas**.

1. Seleccione la tarea para abrir la página **Iniciar tarea**.

1. Seleccione **Ejecución sencilla** para que se ejecute en los destinos. 

   Seleccione **Control de velocidad** para que se ejecute de forma segura en varios destinos y definir umbrales de concurrencia y error. En esta opción, proporcione información adicional sobre el destino y el umbral de error en la sección **Control de velocidad**. 

1. Proporcione los parámetros de entrada necesarios y seleccione **Iniciar tarea**. 

   El estado de la tarea es **Pendiente** y cambia a **Correcto** cuando la tarea se ha ejecutado correctamente.

### Ejemplos de tareas en AWS OpsHub
<a name="task-examples"></a>

En el siguiente ejemplo, se reinicia una instancia EC2 compatible con Amazon. Requiere dos parámetros de entrada: `endpoint` e `instance ID`. 

*Ejemplo de 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}
```

*Ejemplo de 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}"
    }
  } ]
}
```

## Visualización de los detalles de una tarea en AWS OpsHub
<a name="view-task"></a>

Puede ver los detalles de una tarea de administración, como la descripción y los parámetros necesarios para ejecutar la tarea.

**Para ver detalles de una tarea**

1. En la sección **Lanzar tareas** del panel, seleccione **Comenzar** para abrir la página **Tareas**. 

1. En la página **Tareas**, busque y seleccione la tarea cuyos detalles desea ver.

1. Seleccione **Ver detalles** y seleccione una de las pestañas para ver los detalles. Por ejemplo, la pestaña **Parámetros** muestra los parámetros de entrada del script.

## Eliminar una tarea en AWS OpsHub
<a name="delete-task"></a>

Siga estos pasos para eliminar una tarea de administración.

**Para eliminar una tarea**

1. En la sección **Lanzar tareas** del panel, seleccione **Comenzar** para abrir la página **Tareas**. 

1. Busque la tarea que desea eliminar. Seleccione la tarea y a continuación, seleccione **Eliminar**.