This repository hosts registry extensions
that are published under the AwsCommunity::
namespace in AWS CloudFormation.
The CloudFormation Registry allows customers to create public and private
resources
types,
modules,
and
hooks.
Modules are authored as templates in either JSON or YAML. Resource types and
hooks can be authored in Java, Go, Python, or Typescript, using the
CloudFormation Command Line Interface (CFN
CLI)
for project setup and testing.
Join us on Discord! Connect & interact with CloudFormation developers & experts, find channels to discuss the CloudFormation registry, StackSets, cfn-lint, Guard and more:
This repository is part of an initiative to improve open source community engagement around Infrastructure as Code at AWS. We are still in early phases, so we would like community input on the direction we take.
- Linting. Hooks and resources can be authored in a variety of languages. Should we enforce a coding standard at the top level for all projects (for example, a single .pylintrc)? Or let each project dictate its own standards?
- What’s our “swim lane”? Do we allow contributions that patch gaps in CloudFormation resource coverage, which may later be handled by the AWS service team? Do we allow someone to basically re-write an AWS resource from scratch, for example AwsCommunity::S3::Bucket with different behavior from the original?
- Experimental extensions. Do we have a variation on the namespace to give people freedom to experiment? AwsCommunityAlpha:: ? There may be a registry feature coming soon to give a resource an ‘Alpha’ badge or ‘GA’ badge, and also another high level category in the middle of “AWS” and “3rd Party”. We want to avoid a situation where customers install experimental extensions in production and then get surprised by a breaking change because it wasn't obvious.
(Note that we are not yet actually publishing the extensions, pending approval of our release process)
Log in to your AWS account and go to the CloudFormation console. Under Registry in the menu, select Public extensions. Search under Third Party publishers for the AwsCommunity:: namespace. These extensions can be used from any template you author in a region where they are available and activated. Unlike public extensions under the AWS:: namespace, each of these community extensions must first be activated using the instructions here.
Name | Type | Version | Description |
---|---|---|---|
AwsCommunity::S3::BucketNotification | Resource | Alpha | Configure bucket notifications |
AwsCommunity::S3::DeleteBucketContents | Resource | Alpha | Delete all objects in a bucket |
AwsCommunity::S3::BucketVersioningEnabled | Hook | Alpha | Validate an AWS::S3::Bucket has versioning enabled |
See the contributer guide: ./CONTRIBUTING.md
Also check out how our release process works here: ./RELEASE.md