Skip to content

ManagingCloudFormationStacks

Brett Weaver edited this page Dec 12, 2012 · 4 revisions

Managing Cloud Formation Stacks

Simple Deploy can create, destroy, clone, update and read information about Cloud Formation stacks.

Create

Assuming we have the following Cloud Formation template save to ~/sqs.json:

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

  "Description" : "SQS Queue",

  "Parameters": {
    "Description": {
      "Type": "String",
      "Description": "What is the purpose of this queue"
    }
  },

  "Resources" : {
    "Queue" : {
      "Type" : "AWS::SQS::Queue"
    }
  },

  "Outputs" : {
    "QueueURL" : {
      "Description" : "URL of newly created SQS Queue",
      "Value" : { "Ref" : "Queue" }
    }
  }
}

Assuming you have setup credentials with a default account, Simple Deploy can be used to create the following stack:

# simple_deploy create -e default -n queue -t ~/sqs.json -a Description='My brand new SQS queue.'
2012-12-12 15:25:31 -0800 INFO : Read Description=My brand new SQS queue.
2012-12-12 15:25:32 -0800 INFO : Creating Cloud Formation stack queue.
2012-12-12 15:25:33 -0800 INFO : Cloud Formation stack creation completed.

Stack Information

This will create a stack named queue passing in the parameter Description using the ~/sqs.json template in the default environment.

We can view lots of information about this stack including:

  • attributes
  • outputs
  • parameters
  • resources
  • status
  • instances
  • template

For example, to view the outputs of this template we can run the following:

# simple_deploy outputs -e default -n queue

QueueURL: https://sqs.us-west-1.amazonaws.com/660217303193/queue-Queue-17Z22UR72TQJF

Clone

We can clone this stack. By default clone will take the current running template and attributes. Both can be overridden when cloning. For example:

# simple_deploy clone -e default -s queue -n new-queue -a Description="My new queue"

QueueURL: https://sqs.us-west-1.amazonaws.com/660217303193/queue-Queue-17Z22UR72TQJF

This creates a replicate replacing the description. We can view the new stack attributes:

# simple_deploy attributes -e default -n new-queue
CreatedAt=2012-12-12 23:31:14 UTC
Description=My new queue
Name=new-queue-us-west-1

Update

We can update the parameters for a given stack. For example:

# simple_deploy update -e default -n new-queue -a Description="My less new queue"
2012-12-12 15:33:17 -0800 INFO : Read Description=My less new queue
2012-12-12 15:33:19 -0800 INFO : Updating new-queue.
2012-12-12 15:33:22 -0800 INFO : Updating Cloud Formation stack new-queue.
2012-12-12 15:33:23 -0800 INFO : No updates are to be performed.
2012-12-12 15:33:24 -0800 INFO : Update complete for new-queue.

# simple_deploy attributes -e default -n new-queue
CreatedAt=2012-12-12 23:33:23 UTC
Description=My less new queue
Name=new-queue-us-west-1

Destroy

When finished, we can destroy both stacks.

# simple_deploy destroy -e default -n new-queue
2012-12-12 15:38:38 -0800 INFO : Cloud Formation stack destroy completed.
2012-12-12 15:38:38 -0800 INFO : Delete from SimpleDB successful.
2012-12-12 15:38:38 -0800 INFO : new-queue destroyed.

# simple_deploy destroy -e default -n queue
2012-12-12 15:38:47 -0800 INFO : Cloud Formation stack destroy completed.
2012-12-12 15:38:47 -0800 INFO : Delete from SimpleDB successful.
2012-12-12 15:38:47 -0800 INFO : queue destroyed.

More Features

There are a ton more features, for a full list commands, run -h on simple_deploy and -h on any subcommand for full list of options.

# simple_deploy -h
simple_deploy [attributes|clone|create|deploy|destroy|environments|events|execute|instances|list|outputs|parameters|protect|resources|ssh|status|template|update] [options]
Append -h for help on specific subcommand.

# simple_deploy instances -h

List instances for stack.

simple_deploy instances -n STACK_NAME -e ENVIRONMENT
             --help, -h:   Display Help
  --environment, -e <s>:   Set the target environment
         --name, -n <s>:   Stack name to manage
         --internal, -i:   Use internal IP for ssh commands
          --version, -v:   Print version and exit

Clone this wiki locally