有没有办法克隆同一区域的Cloudformation堆栈?

时间:2018-02-14 23:26:34

标签: amazon-web-services amazon-cloudformation

我想在同一区域克隆一个cloudformation堆栈。今天是否可以使用Cloudformation控制台?

我有一个包含大量参数的cloudformation模板。很多时候我想创建一个只有不同堆栈名称的相同堆栈。有没有使用AWS控制台快速完成此操作的方法?

我正在考虑EC2中“更像这样”的选项。

2 个答案:

答案 0 :(得分:0)

您可以创建输入文件并快速启动新堆栈。

例: 的命令:

aws cloudformation create-stack --stackname startmyinstance  
    --template-body file://startmyinstance.json 
    --parameters file://startmyinstance-parameters.json

参数文件:

[
  {
    "ParameterKey": "KeyPairName",
    "ParameterValue": "MyKey"
  }, 
  {
    "ParameterKey": "InstanceType",
    "ParameterValue": "m1.micro"
  }
]

参考:https://aws.amazon.com/blogs/devops/passing-parameters-to-cloudformation-stacks-with-the-aws-cli-and-powershell/

答案 1 :(得分:0)

我使用以下shell脚本

#!/bin/sh -x

# debug
if [ -z "$1" ] ; then
  STACK=jirithhu-monitorStack-1ALS8UFQP3SRV
else
  STACK="$1"
fi


set -e

# parameter 1: stack ID  : (example: hhu-monitorStack-1ALS8UFQP3SRV )

aws cloudformation  describe-stacks --stack-name $STACK | jq .Stacks[0].Parameters > /tmp/xx.$$.pars
aws cloudformation get-template  --stack-name $STACK | jq -rc .TemplateBody > /tmp/xx.$$.body

NEWNAME=`echo "COPY-$STACK"`

aws cloudformation create-stack --stack-name $NEWNAME \
    --template-body file:///tmp/xx.$$.body\
    --parameters "`cat /tmp/xx.$$.pars`" \
    --capabilities '[ "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND" ]'

rm /tmp/xx.$$*