elias5000 / clouds-aws Goto Github PK
View Code? Open in Web Editor NEWclouds-aws is a tool that aims to ease the handling of Cloudformation stacks as code from the command line or scripts.
License: Apache License 2.0
clouds-aws is a tool that aims to ease the handling of Cloudformation stacks as code from the command line or scripts.
License: Apache License 2.0
Use identically named outputs of one stack as inputs for another stack.
Example: clouds update -c dependent -i existing
Dependent stack in the example has a parameter named vpcId and existing stack has an output named vpcId. The new stack doesn't specify vpcId in the parameters.yaml. Clouds when executed performs a describe action on the existing stack to get all outputs, identifies matching names and uses the values of those matches as inputs (if not present in the parameters.yaml).
The user may specify multiple existing stacks.
Hi, could you add Stack Tags when creating or updating a stack. It would make sense to use the AWS Parameter JSON Syntax in the Parameter File.
Example:
{
"Parameters": {
"BucketName": "MyBucket"
},
"Tags": {
"Environment": "Development"
}
}
AWS added YAML as supported format for templates. Clouds should be able to handle YAML based templates, too.
Scenario is as follows:
create a change set, execute the change set, create a new change set with the same name AND no changes in the template.
This will lead to a failure in cloud formation, reason: "FAILED - The submitted information didn't contain changes. Submit different information to create a change set."
clouds ends with the following output:
Uwes-MacBook-Pro:clouds uwes$ clouds change create -c PIM-QAS-NetworkLayer PIM-QAS-NetworkLayer-change-set
k e y s
the following screenshots might help to get a better understanding:
the command execution:
How it looks like in the CF dasboard, tab change set selected:
Change Set details view in the console:
Let me know if you need more information.
Hi elias,
I really like your tool, very handy and saves a lot of time.
Have you thought about adding a feature to handle CloudFormation change sets with clouds?
regards
Uwe
Hi,
I am getting the following Error when running 'clouds --help'
~ clouds --help Traceback (most recent call last): File "/home/tux/.local/bin/clouds", line 7, in <module> from clouds_aws import main File "/home/tux/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 8, in <module> from .cli import add_parsers File "/home/tux/.local/lib/python2.7/site-packages/clouds_aws/cli/__init__.py", line 5, in <module> import clouds_aws.cli.console File "/home/tux/.local/lib/python2.7/site-packages/clouds_aws/cli/console.py", line 5, in <module> from urllib.parse import urlencode ImportError: No module named parse
Thanks in advance.
Hi,
There is no argument option to create stacks? How do you create stacks using clouds?
Thanks
I've seen this approach on stacks generated by the Serverless framework, and I think it's a good idea to protect against stacks that fail to be created and then need to be deleted.
This way an unrecoverable creation failure becomes a successful creation followed by a failed update which is likely to be rolled back and can be iterated on until succeeding, without the need to delete the stack after each failed iteration.
When encountering an error when using clouds format --all
the application throws an exception that makes it really hard to figure out where did the error happen. I ran this on a dozen stacks at once, and this is the error:
clouds format --all
Traceback (most recent call last):
File "/home/magherus/.local/bin/clouds", line 11, in <module>
sys.exit(main())
File "/home/magherus/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 621, in main
args.func(args)
File "/home/magherus/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 451, in reformat
save_template(stack, load_template(stack))
File "/home/magherus/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 153, in load_template
return json.load(fp)
File "/usr/lib/python2.7/json/__init__.py", line 291, in load
**kw)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting ',' delimiter: line 175 column 33 (char 6063)
I would prefer not to get a stack trace at all, but to have a human-friendly error like this one:
Failed parsing stacks/stack_name/template.json, ValueError: Expecting ',' delimiter: line 175 column 33 (char 6063)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.