

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

# 亚马逊 SWF 中的标签
<a name="swf-dev-adv-tags"></a>

Amazon SWF 支持对工作流执行加标签。这在您拥有许多资源时尤其有用。

Amazon SWF 支持为一个工作流执行添加最多加五个标签。每个标签都是自由格式的字符串，长度最多为 256 个字符。如果您想使用标签，您必须在启动工作流执行时分配标签。工作流程执行启动之后不能向其增加标签，也不能编辑或删除已分配给工作流执行的标签。

IAM 支持根据标签控制对 Amazon SWF 域的访问。要基于标签控制访问，请在 IAM 策略的条件元素中提供有关您的标签的信息。

## 管理标签
<a name="manage-tags"></a>

使用 AWS SDKs 或直接与 Amazon SWF API 交互来管理亚马逊简单工作流程服务标签。通过使用 API，您可以在注册域时添加标签，列出现有域的标签，以及添加或删除现有域的标签。

**注意**  
每个资源最多有 50 个标签。请参阅 [Amazon SWF 的一般账户限额](swf-dg-limits.md#swf-dg-limits-general)。
+ [https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterDomain.html](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterDomain.html)
+ [https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListTagsForResource.html](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListTagsForResource.html)
+ [https://docs.aws.amazon.com/amazonswf/latest/apireference/API_TagResource.html](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_TagResource.html)
+ [https://docs.aws.amazon.com/amazonswf/latest/apireference/API_UntagResource.html](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_UntagResource.html)

有关更多信息，请参阅 [与亚马逊 SWF 合作 APIs](swf-dg-using-swf-api.md) 以及 [Amazon Simple Workflow Service API Reference](https://docs.aws.amazon.com/amazonswf/latest/apireference/)。

## 标记工作流程执行
<a name="swf-dg-tagging"></a>

借助 Amazon SWF，您可以将标签与工作流程执行关联起来，然后根据这些标签查询工作流程执行情况。当你使用可见性操作时，你可以筛选列表。通过仔细选择分配给执行的标签，您可以使用它们来提供有意义的清单。

举例来说，假设您在运行多个订单履行中心。使用标签，您可以列出特定运营中心发生的流程。或者，如果客户正在转换不同类型的媒体文件，则标签可能表示转换视频、音频和图像文件时的不同过程。

在您使用 `StartWorkflowExecution` 操作、`StartChildWorkflowExecution` 决策或者 `ContinueAsNewWorkflowExecution` 决策开始执行时，您最多可以将五个标签与工作流程执行关联起来。当您使用可见性操作列出或计算工作流程执行次数时，您可以根据标签筛选结果。

**若要使用加标签**

1. 修改加标签策略。考虑您的业务要求并创建一列对您有意义的标签。决定哪种执行获得哪种标签。虽然一种执行最多能分配五个标签，但您的标签库中可以有任何数量的标签。由于每种标签可以是长度最多为 256 个字符的任何字符串值，标签几乎可以描述所有的业务理念。

1. 在您创建执行时，给执行最多加上五个标签。

1. 用 *、*、`ListOpenWorkflowExecutions` 和 `ListClosedWorkflowExecutions` 操作指定 `CountOpenWorkflowExecutions`tagFilter`CountClosedWorkflowExecutions` 参数，从而列出或计数加有特定标签的执行。该操作将根据指定的标签筛选执行。

将标签与工作流执行关联时，标签与该执行永久关联，且不可删除。

您可以在带 `ListWorkflowExecutions` 的 `tagFilter` 参数中只指定一个标签。同时，标签匹配区分大小写，只有完全匹配才能返回结果。

假设您已经建立了两个加有以下标签的执行。


****  

| 执行名称 | 分配的标签 | 
| --- | --- | 
| 第一次执行 |  消费者，2011 年 2 月  | 
| 第二次执行 |  批发，2011 年 3 月  | 

您可以筛选由消费者标签上的 `ListOpenWorkflowExecutions` 返回的执行列表。`oldestDate` 和 `latestDate` 值被指定为 [Unix Time](https://en.wikipedia.org/wiki/Unix_time) 值。

```
https://swf.us-east-1.amazonaws.com
  RespondDecisionTaskCompleted
  {
    "domain":"867530901",
    "startTimeFilter":{
        "oldestDate":1262332800,
        "latestDate":1325348400
    },
    "tagFilter":{
      "tag":"Consumer"
      }
  }
```

## 使用标签控制对域名的访问权限
<a name="swf-dg-tagging-iam"></a>

您可以通过在 IAM 中引用与 Amazon SWF 域关联的标签来控制对 Amazon Simple Workflow Service 域的访问。

例如，您可以限制包含带有密钥`environment`和值的标签的 Amazon SWF 域名，`production`条件如下：

```
"Condition": {
    "StringEquals": {"aws:ResourceTag/environment": "production"}
}
```

有关更多信息，请参阅：
+ [使用 IAM 标签控制访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)
+ [基于标签的策略](tag-based-policies.md)