CloudFormation
Template parsing, resource provisioning, stack management, custom resources.
fakecloud implements 90 of 90 CloudFormation operations at 100% Smithy conformance.
Supported features
- Stacks — CreateStack, UpdateStack, DeleteStack, DescribeStacks
- Template parsing — JSON and YAML, parameters, mappings, conditions, outputs
- Resource provisioning — creates underlying resources in other fakecloud services (S3 buckets, SQS queues, Lambda functions, etc.) where supported
- Change sets — CreateChangeSet, DescribeChangeSet, ExecuteChangeSet
- Stack sets — CRUD, instance management, operation tracking
- Stack events — real event generation during create/update/delete
- Stack resources — ListStackResources, DescribeStackResource
- Custom resources — invoke Lambda functions via
ServiceToken - Notifications — notify SNS via
NotificationARNson stack events - Drift detection — CRUD (always reports IN_SYNC)
- Type registry — Hooks and resource types (recorded)
Protocol
Query protocol. Form-encoded body, Action parameter, XML responses.
Cross-service delivery
- CloudFormation -> Lambda — Custom resources invoke via
ServiceToken - CloudFormation -> SNS — Stack events notify configured topics via
NotificationARNs
Gotchas
- Not every resource type provisions something. Common types (AWS::S3::Bucket, AWS::SQS::Queue, AWS::Lambda::Function) create real resources in fakecloud. Less common types are recorded but don't create backing state. If your stack references a resource type that isn't backed, your code will still see it as provisioned, but dependent operations may fail.