The assert block
Use the assert block to allow code generation when a condition is true. It helps to catch mistakes in your configuration. You can use the assert block only when the generation context is of type stack. The assert block behaves hierarchically, meaning any assert blocks defined in a parent directory will apply to all stacks within that directory. For example, an assert block defined at the root of a project will apply to all stacks.
You can define assert blocks inside generate_hcl and generate_file blocks, where the assert block can access locally scoped data like the let namespace.
Arguments
| name | type | description |
|---|---|---|
assertion | boolean | any expression which results in a boolean |
message | string | error message that must evaluate as string |
warning (optional) | boolean | boolean attribute, defaults to false |
The assertion condition gets checked within the context of a stack. If it is false, no code gets generated for that stack, and an error appears in the message field.
To still generate code for a stack when the assertion is false, set the optional warning field to true. This setting will produce a warning message along with the generated code.
Syntax
assert{
assertion = <expression evaluating to boolean>
message = "assertion failure reason"
}Examples
assert {
assertion = global.a == global.b
message = "assertion failed, details: ${global.a} != ${global.b}"
}