

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# による管理タスクの自動化 AWS OpsHub
<a name="automate-task"></a>

を使用して AWS OpsHub 、Snowball Edge で頻繁に実行する運用タスクを自動化できます。仮想サーバーの再起動、Amazon EC2 互換インスタンスの停止など、リソースで繰り返し実行するアクションのタスクを作成できます。オペレーションタスクを安全に実行し、 AWS リソースに対してオペレーションを一括で実行するオートメーションドキュメントを提供します。一般的な IT ワークフローをスケジュールすることもできます。

**注記**  
タスクの自動化は、クラスターではサポートされていません。  
タスクを使用するには、まず Amazon EC2 Systems Manager サービスを開始する必要があります。詳細については、[「Snowball Edge での Snowball Edge デバイス管理のアクティブ化](https://docs.aws.amazon.com/snowball/latest/developer-guide/aws-sdm.html#enable-sdm)」を参照してください。

**Topics**
+ [を使用したタスクの作成と開始 AWS OpsHub](#create-task)
+ [でのタスクの詳細の表示 AWS OpsHub](#view-task)
+ [でのタスクの削除 AWS OpsHub](#delete-task)

## を使用したタスクの作成と開始 AWS OpsHub
<a name="create-task"></a>

タスクを作成するときは、タスクを実行するリソースの種類を指定し、タスクを実行する手順が示されたタスクドキュメントを提供します。タスクドキュメントは YAML 形式または JSON 形式のいずれかです。次に、タスクに必要なパラメータを指定し、タスクを開始します。

**タスクを作成するには**

1. ダッシュボードの [**Launch tasks**] セクションで、[**Get started**] を選択して [**タスク**] ページを開きます。作成したタスクは、[**タスク**] の下に表示されます。

1. [**タスクの作成**] を選択し、タスクの詳細を入力します。

1. [**名前**] に、タスクの一意な名前を入力します。
**ヒント**  
名前は 3～128 文字にしてください。有効な文字は `a-z`、`A-Z`、`0-9`、`.`、`_`、および `-` です。

1. 必要に応じて、[**Target type-optional**] リストからターゲットタイプを選択できます。これは、タスクを実行するリソースの種類です。

   例えば、Amazon EC2 互換インスタンスで実行するタスクには **/AWS::EC2::Instance** を、すべてのリソースタイプで実行するには **/** を指定できます。

1. **[Content]** (コンテンツ) セクションで **[YAML]** または **[JSON]** を選択し、タスクを実行するスクリプトを指定します。YAML 形式または JSON 形式の 2 つのオプションがあります。例については「[のタスク例 AWS OpsHub](#task-examples)」を参照してください。

1. **[作成]** を選択します。作成したタスクが [**タスク**] ページに表示されます。

**タスクを開始します。**

1. ダッシュボードの [**Launch tasks**] セクションで、[**Get started**] を選択して [**タスク**] ページを開きます。タスクが [**タスク**] の下に表示されます。

1. タスクを選択して、[**Start task**] ページを開きます。

1. ターゲットで実行するには、[**シンプルな実行**] を選択します。

   複数のターゲットで安全に実行し、同時実行性とエラーのしきい値を定義するには、[**レート制御**] を選択します。このオプションでは、[**レート制御**] セクションで追加のターゲットおよびエラーのしきい値情報を指定します。

1. 必要な入力パラメータを指定し、[**Start task**] を選択します。

   タスクの状態は [**Pending**] になり、タスクが正常に実行されると [**Success**] に変わります。

### のタスク例 AWS OpsHub
<a name="task-examples"></a>

次の例では、Amazon EC2 互換インスタンスを再起動します。これには、`endpoint` と `instance ID` の 2 つの入力パラメータが必要です。

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

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

## でのタスクの詳細の表示 AWS OpsHub
<a name="view-task"></a>

タスクの実行に必要な説明やパラメータなど、管理タスクの詳細を表示できます。

**タスクの詳細を表示するには**

1. ダッシュボードの [**Launch tasks**] セクションで、[**Get started**] を選択して [**タスク**] ページを開きます。

1. [**タスク**] ページで、詳細を表示するタスクを見つけて選択します。

1. [**詳細を表示**] を選択し、いずれかのタブを選択して詳細を表示します。たとえば、[**パラメータ**] タブには、スクリプトの入力パラメータが表示されます。

## でのタスクの削除 AWS OpsHub
<a name="delete-task"></a>

管理タスクを削除するには、次のステップに従います。

**タスクを削除するには**

1. ダッシュボードの [**Launch tasks**] セクションで、[**Get started**] を選択して [**タスク**] ページを開きます。

1. 削除するタスクを見つけます。タスクを選択し、[**削除**] を選択します。