

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

# 在 Amazon SWF 中启动工作流程
<a name="swf-dg-start-workflow-exec"></a>

您可以利用 `StartWorkflowExecution` 操作从任何应用程序中启动已注册工作流程类型的工作流程执行。启动执行时，您将被称为 `workflowId` 标识符与执行相关联。`workflowId` 可以是适用于您的应用程序的任何字符串，如订单中处理应用程序的订单号码。同一个 `workflowId` 不能用于同一个域中多个已开启工作流程执行。例如，如果您用`workflowId` `Customer Order 01` 启动两个工作流程执行，则第二个工作流程执行不会启动且请求会失败。不过，您可以重复使用已关闭执行的 `workflowId`。Amazon SWF 还会将系统生成的唯一标识符（称为 `runId`）与每个工作流执行关联起来。

注册完工作流程和活动类型之后，通过调用 `StartWorkflowExecution` 操作启动工作流程。`input` 参数的值可以是启动工作流程所用应用程序指定的任何字符串。`executionStartToCloseTimeout` 是工作流程执行从启动到关闭所消耗的时长，以秒为单位。超出这个范围会导致工作流程执行超时。与 Amazon SWF 中的其他一些超时参数不同，该超时值不能指定为 `NONE`；工作流执行可运行的最大时长限制是一年。同样，*taskStartToCloseTimeout*是与该工作流程执行相关的决策任务在超时之前可能花费的时间（以秒为单位）。

```
https://swf.us-east-1.amazonaws.com
StartWorkflowExecution
{
  "domain" : "867530901",
  "workflowId" : "20110927-T-1",
  "workflowType" : {
    "name" : "customerOrderWorkflow", "version" : "1.1"
  },
  "taskList" : { "name" : "specialTaskList" },
  "input" : "arbitrary-string-that-is-meaningful-to-the-workflow",
  "executionStartToCloseTimeout" : "1800",
  "tagList" : [ "music purchase", "digital", "ricoh-the-dog" ],
  "taskStartToCloseTimeout" : "1800",
  "childPolicy" : "TERMINATE"
}
```

 如果 `StartWorkflowExecution` 操作成功，Amazon SWF 将返回工作流执行的 `runId`。工作流程执行的 `runId` 在特定区域内是唯一的。请保存 `runId` 以备日后需要在 Amazon SWF 调用中指定此工作流执行时使用。例如，如果您以后需要发送信号至工作流程执行中，您将使用 `runId`。

```
{"runId": "9ba33198-4b18-4792-9c15-7181fb3a8852"}
```