轮询作 Job 状态(Lambda,Amazon Batch) - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

轮询作 Job 状态(Lambda,Amazon Batch)

本示例项目将创建一个 Amazon Batch 作业轮询器。它将实现一台 Amazon Step Functions 状态机,该状态机使用 Amazon Lambda 创建在 Amazon Batch 作业上执行检查的 Wait 状态循环。

本示例项目将创建并配置所有资源,以便让您的 Step Functions 工作流程提交Amazon Batch作业,并等待该任务完成才成功结束。

注意

您也可以在不使用 Lambda 函数的情况下实现此模式。有关直接控制 Amazon Batch 的信息,请参阅 将 Amazon Step Functions 与其他服务一起使用

本示例项目将创建一台状态机、两个 Lambda 函数和一个Amazon Batch队列,并配置相关的 IAM 权限。

有关 Amazon Step Functions 如何控制其他 Amazon 服务的更多信息,请参阅将 Amazon Step Functions 与其他服务一起使用

创建状态机并预置资源

  1. 打开Step Functions 控制台,然后选择创建状态机

  2. 选择 Sample Projects (示例项目),然后选择 Job Status Poller (作业状态轮询器)

    此时将显示状态机 Code (代码)Visual Workflow (可视工作流程)

    
          作业轮询器可视工作流
    注意

    此状态机中的 Code (代码) 部分引用将为此示例项目创建的 Amazon 资源。

  3. 选择 Create Resources (创建资源)

    此时将显示 Create Project Resources (创建项目资源) 页面,其中列出了将创建的资源。对于本示例项目,资源包括:

    • ASubmitJobLambda 函数

    • ACheckJobLambda 函数

    • SampleJobQueue 批处理作业队列

    注意

    创建这些资源和相关 IAM 权限可能需要长达 10 分钟的时间。当 Create Project Resources (创建项目资源) 页面显示 Creating resources (正在创建资源) 时,您可打开 Stack ID (堆栈 ID) 链接以查看正在预置的资源。

    完成后,将显示 New execution (新执行) 页面,示例输入类似于以下内容。

    { "jobName": "my-job", "jobDefinition": "arn:aws:batch:us-east-2:123456789012:job-definition/SampleJobDefinition-343f54b445d5312:1", "jobQueue": "arn:aws:batch:us-east-2:123456789012:job-queue/SampleJobQueue-4d9d696031e1449", "wait_time": 60 }

开始执行

在创建您的状态机后,可以开始执行。

启动新的执行

  1. New execution 页面上,输入执行名称 (可选),然后选择 Start Execution (开始执行)

  2. (可选)为了帮助识别您的执行,您可以在输入执行名称。如果未输入 ID,Step Functions 将自动生成一个唯一 ID。

    注意

    Step Functions 允许您创建包含非 ASCII 字符的状态机、执行和活动名称。这些非 ASCII 名称不适用 Amazon CloudWatch。要确保您可以跟踪 CloudWatch 指标,请选择仅使用 ASCII 字符的名称。

  3. (可选)您可以转到 Step Functions 上新创建的状态机控制面板中,选择新执行,然后使用每个新创建资源的名称或 Amazon 资源名称 (ARN) 来输入输入代码。

    例如,仅使用资源名称的上述执行的输入将为以下内容。

    { "jobName": "my-job", "jobDefinition": "SampleJobDefinition-343f54b445d5312", "jobQueue": "SampleJobQueue-4d9d696031e1449", "wait_time": 60 }
    注意

    wait_time 指示 Wait 状态每 60 秒循环。

  4. 选择 Start Execution (开始执行)

    此时将启动新的状态机执行,并显示一个说明正在运行的执行的新页面。

  5. (可选) 在 Execution Details 部分中,选择 Info 以查看 Execution Status 以及 StartedClosed 时间戳。

  6. 要查看您的 Amazon Batch 作业的状态更改以及执行的循环结果,请选择 Output (输出)

    
              状态机执行。