メニュー
AWS Lambda
開発者ガイド

Lambda 関数へのタグ付け

Lambda 関数は、複数のアプリケーションを別々のリージョンにまたがって展開できます。各関数呼び出しの頻度とコストの追跡プロセスを単純化するために、タグを使用できます。タグは AWS リソースにアタッチするキーと値のペアであり、リソースをうまく整理できます。特に、同じタイプのリソース (AWS Lambda の場合は関数) が多い場合に便利です。タグを使用することで、何百もの Lambda 関数を使用していても、同じタグを持つものでフィルタリングすることで特定のセットに簡単にアクセスし、分析することができます。Lambda 関数にタグ付けする 2 つの主要なメリットは次のとおりです。

  • グループ化とフィルタリング: タグを適用することで、Lambda コンソールまたは CLI を使用して特定のアプリケーションまたは請求部門に含まれる Lambda 関数のリストを隔離できます。詳細については、「タグ付けされた Lambda 関数のフィルタリング」を参照してください。

  • コスト配分: Lambda のタグ付けのサポートは AWS の請求と統合されているため、請求書を動的カテゴリに明細化して関数を特定のコストセンターにマッピングできます。たとえば、すべての Lambda 関数に「Department」というキーでタグ付けすると、すべての AWS Lambda コストを部門別に明細化できます。その後、「Department 1」や「Department 2」など個別の部門の値を出し、関数呼び出しのコストを適切なコストセンターに振り分けることができます。コスト配分が請求明細レポートで明示されるため、より簡単に AWS のコストを分類して追跡できます。

請求用の Lambda 関数へのタグ付け

タグを使用して AWS 請求書を整理し、自分のコスト構造を反映することができます。これを行うには、コスト割り当てレポートに含まれる値を持つタグキーを追加します。選択したタグキーがレポートの明細項目として含まれるコスト配分レポートの設定の詳細については、AWS アカウント請求について月別コスト配分レポートを参照してください。

リソースを組み合わせたコストを確認するには、同じタグキー値を持つ関数に基づいて、請求情報を整理します。たとえば、複数の Lambda 関数に特定のアプリケーション名のタグを付け、請求情報を整理することで、複数のサービスを利用しているアプリケーションの合計コストを確認することができます。詳細については、AWS 請求とコスト管理ユーザーガイドコスト配分タグの使用を参照してください。

重要

AWS Lambda では、関数がタグ付けできる唯一のリソースです。エイリアスまたは特定の関数バージョンにタグを付けることはできません。関数のエイリアスまたはバージョンの呼び出しは、元の関数の呼び出しとして課金されます。

Lambda 関数へのタグの適用

Lambda 関数のタグ付け方法は、関数の作成方法によって異なります。以下のセクションで説明するように、Lambda コンソールまたは CLI を使用してタグを適用できます。

コンソールを使用した Lambda 関数へのタグの適用

新しい Lambda 関数を作成する際に、[Configure function] セクションの [Tags] セクションでタグを追加できます。

既存の関数にタグを適用または追加するには、関数を開き、[Tags] タブを選択してタグキーと値を入力します。

既存の関数からタグを削除するには、関数を開き、[Tags] タブを選択してキーと値のペアの隣にある X を選択します。

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] を含む一連の指定された関数の属性に基づいて関数のリストをフィルタ処理できます。[Department] という [Tags] キーを持っている 2 つの関数 [MyFunction] と [MyFunction2] があるとします。これらの関数を表示するには、検索フィールドを選択し、[Tags] キーのリストが含まれる自動フィルタリングを見つけます。

[Department] キーを選択します。Lambda からそのキーを含む関数が返されます。

ここで、[MyFunction] のタグのキー値が「Department A」であり、MyFunction2 のキー値が「Department B」であるとします。次のように、[Department] キーの値 (この場合は [Department A]) を選択することで、検索を絞り込むことができます。

これは、[MyFunction] だけを返します。

受け入れられる他の [Function attributes] ([Description]、[Function name]、[Runtime] など) を含めて、検索範囲をさらに絞り込むことができます。

注記

タグは 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 個のタグ値が含まれます。GetResources に「ResourceType」を指定することで、特定のリソースタイプでフィルタリングします。AWS Tagging Service の詳細については、リソースグループを使用するを参照してください。

タグの制限

タグには以下の制限があります。

  • リソースあたりのタグの最大数 – 50

  • キーの最大長 - 127 文字 (Unicode) (UTF-8)

  • 値の最大長 - 255 文字 (Unicode) (UTF-8)

  • タグのキーと値は大文字と小文字が区別されます。

  • タグの名前または値に aws: プレフィックスは使用しないでください。このプレフィックスは AWS 用に予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。

  • 複数のサービス間およびリソース間でタグ付けスキーマを使用する場合、他のサービスでも許可される文字に制限が適用されることがあるのでご注意ください。一般的に使用が許可される文字は、UTF-8 で表現できる文字、スペース、および数字と、+、-、=、.、_、:、/、@ などの特殊文字です。