CloudFormation supports lots of different AWS Resources with many parameters. Remembering all of them is a pain and slows down development dramatically.
To make this faster
Former lets you create a full CF resource example for any supported Resource. It parses
the CloudFormation Resource Specification
to get the definition for all resources.
former can be installed through pip:
pip install former
or install with Whalebrew and Docker:
whalebrew install flomotlik/former # For getting updates docker pull flomotlik/former
Alternatively you can clone this repository and run
python setup.py install
You can create an example for any aws resource by calling former with the service and resource name. In the following
example we’re creating an
root@e41871e1eb3e:/app# former iam user Resources: AWSIAMUser: Parameters: Groups: - String LoginProfile: Password: String - Required PasswordResetRequired: Boolean ManagedPolicyArns: - String Path: String Policies: - PolicyDocument: Json - Required PolicyName: String - Required UserName: String Type: AWS::IAM::User
Some Resources also have a subtype (e.g. LoginProfile for the IAM::User). If you only want to show the subtype you can add it as a third parameter:
root@e41871e1eb3e:/app# former iam user loginprofile Resources: AWSIAMUserLoginProfile: Parameters: Password: String - Required PasswordResetRequired: Boolean Type: AWS::IAM::User.LoginProfile
Of course this is not valid CloudFormation as the
LoginProfile is not a valid CF Resource. But it helps when you
want to get a quick overview for a subtype.
It often helps to open the docs page right with the resource and the
-d option will do that for you
and print the full resource to the shell as well.
root@e41871e1eb3e:/app# former iam user loginprofile -d Resources: AWSIAMUserLoginProfile: Parameters: Password: String - Required PasswordResetRequired: Boolean Type: AWS::IAM::User.LoginProfile
--jsonPrint output in json instead of yaml
-r) Only print required parameters
-d) Open the documentation page of the resource in your browser
--debugOpen the documentation page of the resource in your browser