2013-03-26 47 views
7

私はCFNスクリプトでタグを使用して、私のリソースにタグを付けています:CloudFormationスクリプトで現在の日付を取得するにはどうすればよいですか?

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

私は上記の例のように、現在の日付とタグを作成したいと思います。出来ますか?

+0

この値にタグは必要ありません。 describe-instanceコマンドから起動日を取得することができます。http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-DescribeInstances.html – Guy

答えて

5

@Guyによるアドバイスが正しい場合は、スタックのプロパティからスタックの作成タイムスタンプにアクセスできます。

タグをパラメータとして指定する必要がある場合は、次のようにすることができます。現在、JSONシンタックスは極端に制限されたset of functionsをサポートしています。このため、テンプレートを動的に変更する可能性はごくわずかです。あなたが望むタグをこのテンプレートに導入する唯一の方法は、別のパラメータをテンプレート自体に追加することです。スタックを初期化する方法に応じて、動的に指定するパラメータをスクリプト化するか、Webコンソールでパラメータを指定することができます。例えば

、あなたのテンプレートでは、この持っている場合:

"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" 
    } 
    }, 

を後でこのようなタグにREFキーワードを使用して、それを参照することができます。

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

それは自動的に簡単ではありませんAWSコンソールからスタックを作成する場合は現在の時間を割り当てますが、CLIツールを使用する場合は、次のようにcfn-create-stackを呼び出すことができます。

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

これが役に立ちます。

+1

これは単なるインスタンスではなく、このアプローチも有効です。ボリューム、AMI、タグ付けできるもの - ありがとう。 – chris

関連する問題