自动执行管理任务 - AWS Snowball
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本指南适用于 Snowball Edge。如果您正在查找 Snowball 的相关文档,请参阅 AWS Snowball 用户指南

自动执行管理任务

您可以使用 AWS OpsHub 自动执行您经常在 Snow Family Devices上执行的操作任务。您可以为您可能希望对资源执行的重复操作(例如重新启动虚拟服务器、停止 Amazon EC2 实例等)创建任务。您提供的自动化文档可以安全地执行操作任务并批量对 AWS 资源执行操作。您还可以安排常用的 IT 工作流程。

注意

在集群上不支持自动执行任务。

创建和启动任务

创建任务时,您可以指定任务运行应使用的资源类型,然后提供包含运行任务的说明的任务文档。任务文档采用 YAML 格式或 JSON 格式。然后,您提供任务所需的参数并启动任务。

创建任务

  1. 在控制面板的 Launch tasks (启动任务) 部分中,选择 Get started (开始) 以打开“Tasks (任务)”页面。如果您已创建任务,它们将显示在 Tasks (任务) 下。

  2. 选择 Create task (创建任务) 并提供任务的详细信息。

  3. 对于 Name (名称),输入任务的唯一名称。

    提示

    名称长度必须介于 3 到 128 个字符之间。有效字符为 a-zA-Z0-9._-

  4. 或者,您可以从 Target type-optional (目标类型-可选) 列表中选择目标类型。这是您希望任务运行所使用的资源类型。

    例如,您可以指定 /AWS::EC2::Instance 以便任务在 Amazon EC2 实例上运行,或指定 / 以便任务在所有资源类型上运行。

  5. Content (内容) 部分中,选择 YAMLJSON,然后提供执行任务的脚本。您有两个选项:YAML 或 JSON 格式。有关示例,请参阅 任务示例

  6. 选择创建。然后,您创建的任务将显示在 Tasks (任务) 页面上。

启动任务

  1. 在控制面板的 Launch tasks (启动任务) 部分中,选择 Get started (开始) 以打开 Tasks (任务) 页面。您的任务显示在 Tasks (任务) 下。

  2. 选择您的任务以打开 Start task (启动任务) 页面。

  3. 选择 Simple execution (简单执行) 以在目标上运行。

    选择 Rate control (速率控制) 可在多个目标上安全运行,并定义并发和错误阈值。对于此选项,您可以在 Rate control (速率控制) 部分中提供额外的目标和错误阈值信息。

  4. 提供所需的输入参数,然后选择 Start task (启动任务)

    任务的状态为 Pending (挂起),并在任务成功运行时更改为 Success (成功)

任务示例

以下示例重新启动 Amazon EC2 实例。它需要两个输入参数:endpointinstance ID

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

查看任务的详细信息

您可以查看管理任务的详细信息,例如描述和运行任务所需的参数。

查看任务的详细信息

  1. 在控制面板的 Launch tasks (启动任务) 部分中,选择 Get started (开始) 以打开 Tasks (任务) 页面。

  2. Tasks (任务) 页面上,找到并选择要查看其详细信息的任务。

  3. 选择 View details (查看详细信息),然后选择其中一个选项卡以查看详细信息。例如,Parameters (参数) 选项卡会显示脚本中的输入参数。

删除任务

请按照以下步骤删除管理任务。

删除任务

  1. 在控制面板的 Launch tasks (启动任务) 部分中,选择 Get started (开始) 以打开 Tasks (任务) 页面。

  2. 找到要删除的任务。选择任务,然后选择 Delete (删除)