Skip to main content

CloudFormation

Overview​

Infracost supports both YAML and JSON formats for CloudFormation (CFN). The following outlines support for the various CFN features:

FeatureSupport
Resources✅
Parameters✅
Mappings✅
Conditions✅
Transforms✅
Outputs✅
DependsOn✅
Rules✅
Modules❌
Intrinsic Functions✅
Nested stack support✅
Language extensions✅
Pseudo parameters✅
Dynamic references❌
Hooks❌
Stack/org tags❌

Transform support​

NameTypeSupport
AWS::Serverless-2016-10-31Native✅
AWS::IncludeNative✅
AWS::LanguageExtensionsNative✅
AWS::CodeDeployBlueGreenNative✅
CountCommunity✅
ExplodeCommunity✅
Boto3Community✅
ExecutionRoleBuilderCommunity✅
PyPlateCommunity❌
StringFunctionsCommunity✅
S3ObjectsCommunity✅
ShortHandCommunity✅
StackMetricsCommunity❌

Intrinsic support​

NameTypeSupport
Base64Native✅
EqualsNative✅
AndNative✅
OrNative✅
NotNative✅
ConditionNative✅
FindInMapNative✅
FindInMap (extended)LanguageExtensions✅
GetAttNative✅
GetAZsNative✅
IfNative✅
ImportValueNative❌
JoinNative✅
RefNative✅
SelectNative✅
SplitNative✅
SubNative✅
TransformNative✅
ForEachLanguageExtensions✅
LengthLanguageExtensions✅
ToJsonStringLanguageExtensions✅

Rain support​

NameTypeSupport
Rain:EmbedDirective❌
Rain:IncludeDirective❌
Rain:EnvDirective❌
Rain:S3HttpDirective❌
Rain:S3Directive❌
Fn::SelectIntrinsic❌
Fn::InsertFileIntrinsic❌
Fn::InvokeIntrinsic❌
ModulesEntrypoint❌
PackagingEntrypoint❌

Limitations​

Tagging policies​

Infracost tagging policies create issues for resources where tag values are invalid, but do not create issues for missing tags on CloudFormation resources. Tags can be defined directly in AWS (for example, as stack-level tags in the console or CLI), and since Infracost does not have access to those tags, missing tags are not checked in order to avoid false positives.