AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

标记 Lambda 函数

Lambda 函数可跨越不同区域覆盖多个应用程序。为了在跟踪每个函数调用的频率和成本时简化流程,您可以使用标签。标签是您附加到 AWS 资源的键/值对,以更好地组织这些资源。如果您具有同一类型的许多资源 (对于 AWS Lambda 而言是函数),标签特别有用。通过使用标签,拥有数百个 Lambda 函数的客户可以筛选包含相同标签的函数,从而轻松地访问和分析一组特定函数。标记 Lambda 函数的两个主要优势是:

  • 分组和筛选:通过应用标签,您可以使用 Lambda 控制台或 CLI 分离一组特定应用程序或结算部门中包含的 Lambda 函数。有关更多信息,请参阅 筛选标记的 Lambda 函数

  • 成本分配: 由于 Lambda 对标记的支持已与 AWS Billing 相集成,您可以将账单细分为多个动态类别,并将函数与特定成本中心相对应。例如,如果您利用 "Department" 键标记所有 Lambda 函数,可以按部门细分所有 AWS Lambda 成本。然后,您可以提供单个部门值,例如 "Department 1" 或 "Department 2",将函数调用成本指向相应的成本中心。成本分配是以详细账单报告的形式呈现的,便于您对 AWS 成本进行分类和跟踪。

为账单标记 Lambda 函数

您可以使用标签来管理 AWS 账单,使其反映您的成本结构。要执行此操作,您可以添加标签键,其值将包含在成本分配报告中。有关设置成本分配报告,在报告中将选定标签键作为行项目的更多信息,请参阅 AWS Account Billing 简介中的月度成本分配报告

如需查看组合资源的成本,请按具有相同标签键值的函数组织您的账单信息。例如,您可以将特定的应用程序名称用作几个 Lambda 函数的标签,然后组织账单信息,以查看在数个服务中使用该应用程序的总成本。有关更多信息,请参阅 AWS 账单和成本管理用户指南中的使用成本分配标签

重要

在 AWS Lambda 中,函数是可以标记的唯一资源。无法标记别名或特定函数版本。对函数别名或版本的调用将作为对原始函数的调用进行计费。

对 Lambda 函数应用标签

对 Lambda 函数的标记方式取决于您创建函数的方式。您可以使用 Lambda 控制台或 CLI 应用标签,如以下部分所述:

使用控制台对 Lambda 函数应用标签

您可以在 configuration 选项卡中的 Tags 部分下面向函数添加标签。

要删除现有函数的标签,请打开函数,选择 Tags 部分,然后选择键-值对旁的 Remove 按钮。

使用 CLI 对 Lambda 函数应用标签

当您使用 CreateFunction 命令创建新的 Lambda 函数时,可以填充 Tags 参数来添加标签。要指定多个标签值,请用引号引起来,如下所示:

Copy
$ aws lambda create-function \ --region region \ --function-name function-name --role role-arn \ --handler handler-name \ --runtime runtime-value \ --runtime runtime \ --tags "DEPARTMENT=Department A, Department B" \ --profile adminuser \ --timeout 10 \ --memory-size 1024

要针对现有函数应用或添加更多标签,您可以使用 TagResource API,并提供 Lambda 函数 ARN (Amazon 资源名称) 和组成标签的键/值对。

Copy
$ aws lambda tag-resource \ --resource function arn \ --tags DEPARTMENT="Department C, Department D"

相反,如果您要删除 Lambda 函数的任意或所有标签,可以使用 UntagResource API 并再次提供函数 ARN (Amazon 资源名称),以及要从函数中删除的标签键列表。

Copy
$ aws lambda untag-resource \ --resource function arn \ --tagkeys list of tag keys to be removed

筛选标记的 Lambda 函数

使用标签将 Lambda 函数分组后,您即可利用 Lambda 控制台或 AWS CLI 提供的筛选功能,根据您的特定要求查看函数。

使用控制台筛选 Lambda 函数

Lambda 控制台中包含一个搜索字段,可以根据一组指定的函数属性 (包括 Tags) 筛选函数。假设您有两个函数,名为 MyFunctionMyFunction2,它们都有名为 DepartmentTags 键。要查看这些函数,请选择搜索字段,注意将自动筛选出包含 Tags 键的列表:

选择 Department 键。Lambda 将返回包含该键的所有函数。

现在,假设 MyFunction 标签的键值为“Department A”,MyFunction2 的键值为“Department B”。您可以通过选择 Department 键的值将搜索范围缩小,在本例中为 Department A,如下所示。

这样仅返回 MyFunction

您还可以包含其他接受的 Function attributes,如 DescriptionFunction nameRuntime,进一步缩小搜索范围。

注意

每个 Lambda 函数最多支持 50 个标签。如果您删除 Lambda 函数,关联的标签也将被删除。

使用 CLI 筛选 Lambda 函数

如果您要查看应用于特定的 Lambda 函数的标签,可以使用以下任一 Lambda API 命令:

  • ListTags:由您提供 Lambda 函数 ARN (Amazon 资源名称),以查看与该函数关联的标签列表:

    Copy
    $ aws lambda list-tags \ --resource function arn \ --region region \ --profile adminuser
  • GetFunction:由您提供 Lambda 函数的名称,以查看与该函数关联的标签列表:

    Copy
    $ aws lambda get-function \ --function-name function name \ --region region \ --profile adminuser

您还可以使用 AWS Tagging Service 的 GetResources API,根据标签筛选您的资源。GetResources API 最多可接收 10 个筛选条件,每个筛选条件包含一个标签键和最多 10 个标签值。提供具有 "ResourceType" 的 GetResources,可按特定资源类型进行筛选。有关 AWS Tagging Service 的更多信息,请参阅使用资源组

标签限制

以下限制适用于标签:

  • 每个资源的标签数上限 - 50

  • 最大密钥长度 - 127 个 Unicode 字符 (采用 UTF-8 格式)

  • 最大值长度 - 255 个 Unicode 字符 (采用 UTF-8 格式)

  • 标签键和值要区分大小写。

  • 请勿在标签名称或值中使用 aws: 前缀,因为它专为 AWS 使用预留。您无法编辑或删除带此前缀的标签名称或值。具有此前缀的标签不计入每个资源的标签数限制。

  • 如果您的标记方案将在多个服务和资源中使用,请记得其他服务可能对允许使用的字符有限制。通常允许使用的字符包括:可用 UTF-8 格式表示的字母、空格和数字以及特殊字符 + - = ._ : / @。