2014-12-16 3 views
15

Wir wollten firmenspezifische Tags für die Ressourcen verwenden, die wir in AWS für Abrechnungszwecke erstellen. Ich verwende eine Cloud-Formationsvorlage, um unsere Elasticbeanstalk-Instanz und andere projektabhängige Ressourcen hochzufahren. Wenn ich die CloudFormation-Konsole zum Erstellen eines Stapels verwende, werden Sie auf der Seite nach den Parametern nach Tags gefragt. Ich muss die Tags für diesen Stapel manuell eingeben. Gibt es jedoch eine Möglichkeit, diese Tags (Tags für den Stack) in der Cloud-Formationsvorlage selbst anzugeben? Auf diese Weise wird das Tag an die anderen Ressourcen weitergegeben? Ich weiß, dass die Cloud-Bildung automatisch die Ressourcen mit dem Stack-Namen kennzeichnet. Wir benötigen jedoch firmenspezifische Tags, um separate Abteilungen in Rechnung zu stellen.AWS-Cloud-Erstellung Template-Bereitstellung Tags für den Stack in der Vorlage

Antwort

12

Beim Start von AWS CloudFormation werden die angeforderten Tags auf den CloudFormation-Stack selbst angewendet und (wo möglich) auch an die vom Stack gestarteten Ressourcen weitergegeben.

Diese Tags können auf die CreateStack API-Aufruf übergeben werden, oder von der CLI:

diese Tags auf den gesamten Stapel angewendet werden und nicht in der mitgelieferten CloudFormationsvorlage

CloudFormation-Vorlagen können jedoch Tags für spezifische Ressourcen enthalten, die erstellt werden. Wenn Sie zum Beispiel Amazon EC2-Instanzen starten, können Tags in die Vorlage eingefügt werden:

"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" 
      } 
     ] 
    } 
} 
+0

Dank John:

Sie können Stack-Level-Tags auf die Ressource definieren. (wo möglich) ist der Hinweis, den ich brauchte. Das Markieren einer elastischen Beanstalk-Umgebung wird nicht durch Cloud-Formatierung unterstützt, Sie können sie jedoch manuell markieren. Ich ging davon aus, wenn es zu TAg über die Konsole unterstützt, sollte es in der Lage sein, durch Cloud-Bildung getan werden, und ich habe mich geirrt. – user2716913

+1

Tag Propagierung in CloudFormation war ein wenig unvorhersehbar in meiner Erfahrung. Es ist enttäuschend, da die Dokumentation behauptet, dass alle Tags auf Stapelebene, einschließlich automatisch erstellter Tags, an Ressourcen weitergegeben werden, die von AWS CloudFormation unterstützt werden. – Shannon

12

In der Vorlagenanatomie können Sie Tags auf Stapelebene nicht direkt festlegen. Allerdings können Sie eine Wrapper Vorlage, mit einer einzigen Ressource von AWS erstellen :: :: Cloudformation Stapel.

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

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

Ich wusste nicht einmal, das war eine Option ... das ist unglaublich hilfreich für mehr als nur Tag Vererbung. – VictorKilo