2013-03-26 19 views
7

tôi gắn thẻ các nguồn lực của tôi sử dụng Thẻ trong kịch bản CFN tôi:Tôi làm cách nào để có được ngày hiện tại trong tập lệnh CloudFormation?

"Tags" : [ { "Key" : "Owner",  "Value" : "my name" }, 
      { "Key" : "Name",  "Value" : "instance name" } 
      { "Key" : "DateCreated", "Value" : <something goes here> } 
     ], 

Tôi muốn tạo ra một thẻ với ngày hiện tại theo các ví dụ trên. Có thể không?

+0

Bạn không cần thẻ cho giá trị này; Bạn có thể lấy ngày khởi chạy từ lệnh mô tả ví dụ: http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-DescribeInstances.html – Guy

Trả lời

5

Lời khuyên của @Guy là chính xác, bạn có thể truy cập dấu thời gian tạo của ngăn xếp từ thuộc tính ngăn xếp.

Nếu bạn vẫn cần chỉ định thẻ làm thông số thì bạn có thể thực hiện theo cách sau. Hiện tại cú pháp JSON hỗ trợ một số cực kỳ hạn chế set of functions. Bởi vì điều này khả năng tự động sửa đổi các mẫu của bạn là rất nhỏ. Cách duy nhất tôi thấy để giới thiệu thẻ này bạn muốn là bằng cách thêm tham số khác vào chính mẫu đó. Tùy thuộc vào cách bạn khởi tạo ngăn xếp, bạn có thể tập lệnh tham số được chỉ định động hoặc cung cấp nó trong bảng điều khiển web.

Ví dụ, nếu bạn có điều này trong mẫu của bạn:

"Parameters" : { 
    "CreationDate" : { 
     "Description" : "Date", 
     "Type" : "String", 
     "Default" : "2013-03-20 21:15:00", 
     "AllowedPattern" : "^\\d{4}(-\\d{2}){2} (\\d{2}:){2}\\d{2}$", 
     "ConstraintDescription" : "Date and time of creation" 
    } 
    }, 

Bạn sau đó có thể tham khảo nó bằng cách sử dụng từ khóa Ref trong các thẻ như thế này:

"Tags" : [ { "Key" : "Owner",  "Value" : "my name" }, 
      { "Key" : "Name",  "Value" : "instance name" }, 
      { "Key" : "DateCreated", "Value" : { "Ref" : "CreationDate" } } 
      ], 

Nó không phải là tầm thường để tự động gán thời gian hiện tại nếu bạn tạo ngăn xếp từ bảng điều khiển AWS, nhưng nếu bạn sử dụng công cụ CLI, bạn có thể gọi cfn-create-stack như sau:

cfn-create-stack MyStack --template-file My.template --parameters "CreationDate=$(date +'%F %T')" 

Hy vọng điều này sẽ hữu ích!

+1

Nó không chỉ là trường hợp - cách tiếp cận này cũng sẽ hoạt động khối lượng, AMIs, bất kỳ điều gì khác mà bạn có thể gắn thẻ - cảm ơn. – chris

Các vấn đề liên quan