获取Cloudformation Template中所有AWS资源的输出参数

时间:2016-03-21 11:39:29

标签: amazon-web-services amazon-cloudformation

我有一个AWS Cloudformation模板,用于创建N个SQS队列。模板不包含任何其他类型的资源。

每个SQS队列格式如下:

"logical-name-of-queue": {
  "Type": "AWS::SQS::Queue",
  "Properties": {
    "QueueName": "queue-name",
    "DelaySeconds": "0",
    "MaximumMessageSize": "262144",
    "MessageRetentionPeriod": "345600",
    "ReceiveMessageWaitTimeSeconds": "20",
    "VisibilityTimeout": "300"
  }
}

模板应该输出" QueueName"所有队列。我可以在输出中包含每个队列的名称,如:

"Outputs" : {
    "name-of-queue-" : {
      "Value" : { "Fn::GetAtt" : [ "logical-name-of-queue", "QueueName" ]}
    }
}

但是,由于N可能很大,有没有办法指定输出块,这样就不需要为每个队列写这样的输出块了?

1 个答案:

答案 0 :(得分:1)

没有。截至目前,cloudformation并不支持任何类型的for loops

你可以做的是在其他地方创建一个JSON(python,ruby,java ...)。然后将结果加载到CloudFormation API。

这是一个用python编写的非常方便的库: troposphere