web-dev-qa-db-ja.com

AWSクラウド形成テンプレート-テンプレートのスタックにタグを提供

請求目的でAWSで作成したリソースに会社固有のタグを使用したかったのです。 Elasticbeanstalkインスタンスと他のプロジェクト依存リソースを起動するために、クラウド形成テンプレートを使用しています。 CloudFormationコンソールを使用してスタックを作成すると、ページのパラメーターの後のタグを要求されます。そのスタックのタグを手動で入力する必要があります。しかし、クラウド形成テンプレート自体でこれらのタグ(スタックのタグ)を指定する方法はありますか?そのようにタグは他のリソースに伝播されますか?クラウドの形成は自動的にリソースにスタック名のタグを付けることを知っています。ただし、個別の部門に請求するには、会社固有のタグが必要です。

24
user2716913

AWS CloudFormationを起動すると、リクエストされたタグはCloudFormationスタック自体に適用され、(可能な場合は)スタックによって起動されたリソースにも反映されます。

これらのタグは、CreateStack API呼び出しに渡すか、CLIから渡すことができます。

これらのタグはスタック全体に適用され、CloudFormationテンプレートには含まれません。

ただし、CloudFormationテンプレートには、作成中のspecificリソースのタグを含めることができます。たとえば、Amazon EC2インスタンスを起動するときに、タグをテンプレートに含めることができます。

"MyInstance" : {
    "Type" : "AWS::EC2::Instance",
    "Properties" : {
        "SecurityGroups" : [ { "Ref" : "MySecurityGroup" } ],
        "AvailabilityZone" : "us-east-1a",
        "ImageId" : "AMI-20b65349",
        "Volumes" : [
            { "VolumeId" : { "Ref" : "MyEBS" },
                       "Device" : "/dev/sdk" }
        ],
        "Tags" : [
            {
                "Key" : "Stage",
                "Value" : "QA"
            }
       ]
    }
}
23
John Rotenstein

テンプレートの構造では、スタックレベルのタグを直接設定することはできません。ただし、AWS :: CloudFormation :: Stackの単一のリソースを持つラッパーテンプレートを作成できます。

そのリソースにスタックレベルのタグを定義できます。

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "WrapperTemplate",

  "Resources": {
    "WrappedStackWithStackLevelTags": {
      "Type" : "AWS::CloudFormation::Stack",
      "Properties" : {
        "Tags" : [ { "Key" : "Stage", "Value" : "QA" } ],
        "TemplateURL" : "your-original-template-s3-url"
      }
    }
  }
}
40
lalyos