Develop a module using the CFN-CLI
Follow these basic steps to develop and register a module project.
-
In the CFN-CLI, use the
initcommand to create a new project. Theinitcommand creates afragmentsfolder containing a sample fragment file namedsample.json.Follow the prompts. Specify that you want to create a module(m), and enter the module name.
$cfn init Initializing new project Do you want to develop a new resource(r) a module(m) or a hook(h)? >>mWhat is the name of your module type? (<Organization>::<Service>::<Name>::MODULE) >>My::Sample::SampleBucket::MODULE -
Include your template fragment in the project.
In the
fragmentsfolder in the project, you should find a file namedsample.json. This is the template fragment file. Author your template fragment in this file and save.You can rename this file as necessary. The folder can only contain a single file.
For more information, see Creating a module template fragment.
-
Use
validateto validate your project. Fix any issues reported.The
validatecommand regenerates the module schema, based on the template fragment you included in thefragmentsfolder. The module schema is located in the root folder, and namedschema.json. -
Use
submitto register the module with CloudFormation, in the specified region. Registering a module makes it available for inclusion in CloudFormation templates.Note
When you register your module using
submit, CloudFormation regenerates your module schema based on the template fragment in your project. You can't specify a schema file directly. To specify a module schema file when registering a module, useRegisterTypein the CloudFormation API.
For information about using modules in CloudFormation templates, see Create reusable resource configurations with modules in the CloudFormation Users Guide.