

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

# Step Functions 如何将执行与版本或别名相关联
<a name="execution-alias-version-associate"></a>

Step Functions 会根据用于调用 [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html) API 操作的 Amazon 资源名称 (ARN) 将执行与版本或别名关联起来。Step Functions 在执行开始时进行此操作。

您可以使用限定或非限定的 ARN 来启动状态机。
+ **限定 ARN** – 指状态机 ARN，后缀为版本号或别名。

  以下限定的 ARN 示例指的是名为 `myStateMachine` 的状态机的版本 `3`。

  ```
  arn:aws:states:region:account-id:stateMachine:myStateMachine:3
  ```

  以下限定的 ARN 示例指的是名为 `myStateMachine` 的状态机的 `PROD` 别名。

  ```
  arn:aws:states:region:account-id:stateMachine:myStateMachine:PROD
  ```
+ **非限定 ARN** – 指没有版本号或别名后缀的状态机 ARN。

  ```
  arn:aws:states:region:account-id:stateMachine:myStateMachine
  ```

例如，如果您的限定 ARN 指的是版本 `3`，则 Step Functions 会将执行与该版本相关联。它不会将执行与任何指向版本 `3` 的别名相关联。

如果您的限定 ARN 指的是别名，则 Step Functions 会将执行与该别名以及该别名指向的版本相关联。一次执行只能与一个别名关联。

**注意**  
如果您使用非限定的 ARN 启动执行，即使版本使用相同的状态机[revision](concepts-cd-aliasing-versioning.md#statemachinerev)，Step Functions 也不会将该执行与版本相关联。例如，如果版本 3 使用最新的修订版，但您使用非限定的 ARN 启动执行，则 Step Functions 不会将该执行与版本 3 相关联。

## 查看使用版本或别名启动的执行
<a name="view-version-alias-executions"></a>

Step Functions 提供了以下方式，您可以通过这些方式查看使用版本或别名启动的执行：

### 使用 API 操作
<a name="view-executions-api-actions"></a>

您可以通过调用 [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html) 和[ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html) API 操作来查看与版本或别名关联的所有执行。这些 API 操作会返回用于启动执行的版本或别名的 ARN。这些操作还会返回其他详细信息，包括执行的状态和 ARN。

您还可以提供状态机别名 ARN 或版本 ARN，以便列出与特定别名或版本关联的执行。

以下 [ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html) API 操作的示例响应显示了用于启动名为 *myFirstExecution* 的状态机执行的别名的 ARN。

以下代码段中的*斜体*文本表示特定于资源的信息。

```
{
    "executions": [
        {
            "executionArn": "arn:aws:states:region:account-id:execution:myStateMachine:myFirstExecution",
            "stateMachineArn": "arn:aws:states:region:account-id:stateMachine:myStateMachine",
            "stateMachineAliasArn": "arn:aws:states:region:account-id:stateMachine:myStateMachine:PROD",
            "name": "myFirstExecution",
            "status": "SUCCEEDED",
            "startDate": "2023-04-20T23:07:09.477000+00:00",
            "stopDate": "2023-04-20T23:07:09.732000+00:00"
        }
    ]
}
```

### 使用 Step Functions 控制台
<a name="view-executions-console"></a>

您还可以从 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)中查看由版本或别名启动的执行。以下步骤显示如何查看使用特定版本启动的执行：

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择一个已发布[版本](concepts-state-machine-version.md#procedure-create-versions)或创建[别名](concepts-state-machine-alias.md#procedure-create-aliases)的现有状态机。此示例说明如何查看使用特定状态机版本启动的执行。

1. 选择**版本**选项卡，然后从**版本**列表中选择一个版本。
**提示**  
按属性或值框筛选，搜索特定版本。

1. 在*版本详细信息页面*上，您可以看到使用所选版本启动的所有正在进行和过去的状态机执行列表。

下图显示了*版本详细信息* 控制台页面。该页面列出了由名为 `MathAddDemo` 的状态机版本 *4* 启动的执行。此列表还显示由名为 `PROD` 的别名启动的执行。此别名将执行流量路由到版本 *4*。

![\[状态机版本详细信息控制台页面的说明性屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/step-functions/latest/dg/images/view-version-executions.png)


### 使用 CloudWatch 指标
<a name="view-executions-metrics"></a>

对于使用[Qualified ARN](#qualifiedARN) 启动的每个状态机执行，Step Functions 都会发出与当前发出的指标具有相同名称和值的其他指标。这些其他指标包含启动执行时使用的每个版本标识符和别名的维度。利用这些指标，您可以监控版本级别的状态机执行，并确定何时可能需要回滚方案。您也可以根据这些指标[创建 Amazon CloudWatch 警报](procedure-cw-metrics.md#monitoring-using-cloudwatch-console-set-alarm)。

Step Functions 会针对您使用别名或版本启动的执行发出以下指标：
+ `ExecutionTime`
+ `ExecutionsAborted`
+ `ExecutionsFailed`
+ `ExecutionsStarted`
+ `ExecutionsSucceeded`
+ `ExecutionsTimedOut `

如果您使用版本 ARN 启动执行，Step Functions 会发布包含 `StateMachineArn` 的指标以及包含 `StateMachineArn` 和 `Version` 维度的第二个指标。

如果您使用别名 ARN 启动执行，Step Functions 会发出以下指标：
+ 非限定 ARN 和版本的两个指标。
+ 具有 `StateMachineArn` 和 `Alias` 维度的指标。