TransWikia.com

sam テンプレートの serverless function の tags の書き方

スタック・オーバーフロー Asked on November 25, 2021

lambda をデプロイする sam deploy コマンドのテンプレートにタグを設定したいのですが

Resources:
  LambdaTest:
    Type: AWS::Serverless::Function
    Properties:
        :
      Tags: 
        Name: name-test

のように書いても

CREATE_FAILED                                    AWS::Lambda::Function                            LambdaTest                                            Encountered unsupported property Tags

となってしまいます

https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-tags
ドキュメントを読むと

タイプ: マップ
CloudFormation の互換性: このプロパティは、AWS::Lambda::Function の Tags プロパティに似ています。SAM のタグプロパティは、キーと値のペアで構成されています。

となっていてどうも形式が違うみたいなんですが
タイプ: マップというのはどういう記述方法なんでしょうか

CloudFormation だと

Tags:
  Key: Name
  Value: name-test 

と書くみたいなのですがこれだともっと前の段階で sam deploy が失敗します

2 Answers

ソースのしたの方の
Event リソースの中の Tags というのがダメだったみたいで
CloudFormation では任意のリソースに Tags がかけるみたいなんですが
sam の場合は AWS::Serverless::Function の中しか Tags は使えないみたいで
これを消したところ成功しました

テンプレートソースの全文がかなり長かったので省略してしまったために
回答不可能な質問をしてしまって申し訳ありません

Answered by KTI on November 25, 2021

AWS::Serverless::Function の説明に

Tags

Lambda 関数に追加されるタグおよび対応する IAM 実行ロールを指定するマップ (文字列から文字列)。キーと値に使用できるのは英数字のみです。キーの長さは 1~127 文字の Unicode 文字です。「aws:」をプレフィックスとして使用することはできません。値の長さは 1~255 文字の Unicode 文字です。

とありますが、「name-test」だとハイフンを含むためエラーが起こるのではないでしょうか

Answered by hiropon on November 25, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP