Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


cfn_custom_resource provides an abstract base class to make it easier to implement AWS CloudFormation custom resources. It was developed from Gene Wood's cfnlambda, which provides lower-level functions and decorators for the same purpose.

At its simplest, you subclass the CloudFormationCustomResource and implement three methods: create, update, and delete, for each of the respective CloudFormation actions. Indicate failure by raising an exception. If you want attributes available on the resource within CloudFormation, return them as a dictionary. Your subclass has a class method get_handler, which will return a Lambda handler function. Logging to CloudWatch is provided by the logger field.

from cfn_custom_resource import CloudFormationCustomResource

# For resources of type Custom::MyCustomResource
class MyCustomResource(CloudFormationCustomResource):
    def create(self):
        # Implement
        # For AWS SDKs, use:
        #   self.get_boto3_client(service_name)
        #   self.get_boto3_resource(service_name)
        # Set the name of what you are creating to the value in
        #   self.physical_resource_id
        # This id is autogenerated for you, but you can set it if you want or need
        # This id is what CloudFormation uses for Ref
        # The resource properties defined in the template are in
        #   self.resource_properties
        # Attributes can be set by returning a dictionary

    def update(self):
        # Implement
        # The name of what you previously created is
        #   self.physical_resource_id
        # The updated properties are in
        #   self.resource_properties
        # To check what's changed, compare with
        #   self.old_resource_properties
        # If you set attributes in create(), you need to set them here too  

    def delete(self):
        # implement

handler = MyCustomResource.get_handler()

See more details in the wiki

How to contribute

Feel free to open issues or fork and submit PRs.


Collection of tools to enable use of AWS Lambda with CloudFormation




No releases published


No packages published