

# 在事件源映射上使用标签
<a name="tags-esm"></a>

对事件源映射进行标记可以组织和管理资源。标签是与资源关联的自由格式键值对，在 AWS 服务中受支持。有关标签用例的更多信息，请参阅《Tagging AWS Resources and Tag Editor Guide》**中的 [Common tagging strategies](https://docs.aws.amazon.com//tag-editor/latest/userguide/best-practices-and-strats.html#tag-strategies)。

事件源映射与函数相关联，而函数也可以有自己的标签。事件源映射并不会自动继承函数的标签。可以使用 AWS Lambda API 来查看和更新标签。在 Lambda 控制台中管理特定事件源映射时，还可以查看和更新标签，包括将预置模式用于 Amazon SQS 的那些标签。

## 使用标签所需的权限
<a name="esm-tags-required-permissions"></a>

要允许 AWS Identity and Access Management（IAM）身份（用户、组或角色）读取资源或为其设置标签，请授予该身份相应的权限：
+ **lambda:ListTags** – 当资源有标签时，将此权限授予需要在其上调用 `ListTags` 的任何人。对于带标签的函数，`GetFunction` 也需要此权限。
+ **lambda:TagResource** – 将此权限授予需要调用 `TagResource` 或执行在创建时授予标记的操作的任何人。

或者，也可以考虑授予 **lambda:UntagResource** 权限以允许 `UntagResource` 调用该资源。

有关更多信息，请参阅 [Lambda 的基于身份的 IAM policy](access-control-identity-based.md)。

## 通过 Lambda 控制台使用标签
<a name="tags-esm-console"></a>

您可以使用 Lambda 控制台创建带标签的事件源映射、向现有事件源映射添加标签以及按标签筛选事件源映射，包括在预置模式中为 Amazon SQS 配置的那些映射。

使用 Lambda 控制台为支持的流服务和基于队列的服务添加触发器时，Lambda 会自动创建事件源映射。有关这些事件源的更多信息，请参阅 [Lambda 如何处理来自基于流和队列的事件源的记录](invocation-eventsourcemapping.md)。若要在控制台中创建事件源映射，必须满足以下先决条件：
+ 函数
+ 来自受影响服务的事件源

可在用于创建或更新触发器的同一用户界面中添加标签。

**在创建事件源映射时添加标签**

1. 打开 Lamba 控制台的[函数](https://console.aws.amazon.com/lambda/home#/functions)页面。

1. 选择函数的名称。

1. 在 **Function overview**（函数概览）下，选择 **Add trigger**（添加触发器）。

1. 在**触发器配置**下的下拉列表中，选择事件源所属服务的名称。

1. 为事件源提供核心配置。有关配置事件源的更多信息，请参阅 [使用来自其 AWS 他服务的事件调用 Lambda](lambda-services.md)中相关服务的部分。

1. 在**事件源映射配置**下选择**其他设置**。

1. 在**标签**下选择**添加新标签**。

1. 在**键**字段中输入标签键。有关标记限制的信息，请参阅《Tagging AWS Resources and Tag Editor Guide》中的 [Tag naming limits and requirements](https://docs.aws.amazon.com//tag-editor/latest/userguide/best-practices-and-strats.html#id_tags_naming_best_practices)。**

1. 选择**添加**。

**向现有事件源映射添加标签**

1. 在 Lambda 控制台中打开[事件源映射](https://console.aws.amazon.com/lambda/home#/event-source-mappings)。

1. 在资源列表中，选择与**函数**和**事件源 ARN** 对应的事件源映射的 **UUID**。

1. 从**常规配置**窗格下方的选项卡列表中选择**标签**。

1. 选择**管理标签**。

1. 选择 **Add new tag（添加新标签）**。

1. 在**键**字段中输入标签键。有关标记限制的信息，请参阅《Tagging AWS Resources and Tag Editor Guide》中的 [Tag naming limits and requirements](https://docs.aws.amazon.com//tag-editor/latest/userguide/best-practices-and-strats.html#id_tags_naming_best_practices)。**

1. 选择**保存**。

**按标签筛选事件源映射**

1. 在 Lambda 控制台中打开[事件源映射](https://console.aws.amazon.com/lambda/home#/event-source-mappings)。

1. 选择搜索框。

1. 在下拉列表中，从**标签**副标题下方选择标签键。

1. 选择**使用：“tag-name”**查看所有使用此键标记的事件源映射，或者选择一个**运算符**进一步按值筛选。

1. 选择标签值以按标签键和值的组合进行筛选。

搜索框还支持搜索标签键。输入键名称，即可在列表中查找该键。

## 通过 AWS CLI 使用标签
<a name="tags-esm-cli"></a>

可以使用 Lambda API 在现有 Lambda 资源（包括事件源映射）上添加和删除标签。还可以在创建事件源映射时添加标签，这样就可以在资源的整个生命周期中对其进行标记。

### 使用 Lambda 标签 API 更新标签
<a name="tags-esm-api-config"></a>

可以通过 [TagResource](https://docs.aws.amazon.com/lambda/latest/api/API_TagResource.html) 和 [UntagResource](https://docs.aws.amazon.com/lambda/latest/api/API_UntagResource.html) API 操作，添加和删除受支持 Lambda 资源的标签。

可以使用 AWS CLI 调用这些操作。要向现有资源添加标签，请使用 `tag-resource` 命令。此示例添加了两个标签，一个带有键 *Department*，另一个带有键 *CostCenter*。

```
aws lambda tag-resource \
--resource arn:aws:lambda:us-east-2:123456789012:resource-type:my-resource \
--tags Department=Marketing,CostCenter=1234ABCD
```

要删除标签，请使用 `untag-resource` 命令。此示例删除了键为 *Department* 的标签。

```
aws lambda untag-resource --resource arn:aws:lambda:us-east-1:123456789012:resource-type:resource-identifier \
--tag-keys Department
```

### 在创建事件源映射时添加标签
<a name="tags-esm-on-create"></a>

若要使用标签创建 Lambda 事件源映射，请使用 [CreateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html) API 操作。指定 `Tags` 参数。可以使用 `create-event-source-mapping` AWS CLI 命令和 `--tags` 选项调用此操作。有关使用此 CLI 命令的更多信息，请参阅《AWS CLI Command Reference》中的 [create-event-source-mapping](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-event-source-mapping.html)。**

在将 `Tags` 参数与 `CreateEventSourceMapping` 一起使用之前，请确保角色拥有标记资源的权限以及此操作所需的常规权限。有关标记权限的更多信息，请参阅 [使用标签所需的权限](#esm-tags-required-permissions)。

### 使用 Lambda 标签 API 查看标签
<a name="tags-esm-api-view"></a>

要查看应用于特定 Lambda 资源的标签，请使用 `ListTags` API 操作。有关更多信息，请参阅 [ListTags](https://docs.aws.amazon.com/lambda/latest/api/API_ListTags.html)。

可以提供 ARN（Amazon 资源名称），以使用 `list-tags` AWS CLI 命令调用此操作。

```
aws lambda list-tags --resource arn:aws:lambda:us-east-1:123456789012:resource-type:resource-identifier
```

### 按标签筛选资源
<a name="tags-esm-filtering"></a>

您可以使用 AWS Resource Groups Tagging API [GetResources](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html) API 操作按标签筛选资源。`GetResources` 操作最多可接收 10 个筛选条件，每个筛选条件包含一个标签键和最多 10 个标签值。提供具有 `ResourceType` 的 `GetResources`，可按特定资源类型进行筛选。

可以使用 `get-resources` AWS CLI 命令调用此操作。有关使用 `get-resources` 的示例，请参阅《AWS CLI Command Reference》**中的 [get-resources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resourcegroupstaggingapi/get-resources.html#examples)。