Simplified Syntax
Attini simplified syntax lets you define your deployment plan using a
List
instead of Amazon state language. The steps will be executed in
the order of the list.
In addition to a simple list of States, the simplified syntax also supports Parallel and Choice.
DeploymentPlan:
- Name: String
Type: String
# Optional configuration based on State Type
Type: String
Name of the State. This has to be unique within the deployment plan.
Type: String
Any valid State type like Attini type, StateMachine Task, or other StateMachine States like Pass, Wait, Succeed and Fail.
Parallel and Choice are supported but have their own simplified syntax.
Example
DeploymentPlan:
- Name: ManualApproval
Type: AttiniManualApproval
- Name: MyDatabaseStack
Type: AttiniCfn
Properties:
StackName: database
Template: /database.yaml
Parallel
This is a simplified syntax for the Parallel State.
The Parallel State outputs a list of the outputs from all its branches, therefore, it’s often desirable to use the AttiniMergeOutput Type after the Parallel State. This is done automatically when using the simplified syntax, assuming that the merge step has not been added manually.
DeploymentPlan:
- Name: String
Type: Parallel
Branches:
- Name: String
Type: String
Example
DeploymentPlan:
- Name: MyParallelName
Type: Parallel
Branches:
-
- Name: Step_1_in_branch_1
Type: AttiniLambdaInvoke
Parameters:
FunctionName: my-function
- Name: Step_2_in_branch_1
Type: AttiniSam
Properties:
Project:
Path: /my-sam-app/
StackName: my-sam-stack
-
- Name: Step_1_in_branch_2
Type: AttiniRunnerJob
Commands:
- echo "hello world"
Choice
The Choice step will help you make choices depending on a condition. The condition can be based on data in the payload or CloudFormation configuration.
The simplified Choice differs from Amazon state language choice because the simplified syntax only allows for one comparison, while Amazon state language choice can have multiple.
DeploymentPlan:
- Name: String
Type: Choice
Condition:
Comparison
IsTrue:
- List<State>
IsFalse:
- List<State>
Type: Comparison
This Comparison
is a direct translation for
Amazon state language choice
but without “Next”.
Required: Yes
Type: List<State>
A List of States that will be executed if the Condition is true.
Required: Yes
Type: List<State>
A List of States that will be executed if the Condition is false.
If IsFalse is omitted, the deployment will continue to the next step if the Condition is false (or end if it is the last step).
Required: No
Example
DeploymentPlan:
- Name: IsDev?
Type: Choice
Condition:
Variable: $.deploymentOriginData.environment
StringEquals: dev
IsTrue:
- Name: RunLoadtest
Type: AttiniRunnerJob
Commands:
- autocannon --amount 100 --connections 1 --connectionRate 10 --renderStatusCodes --bailout 1 https://my-site.com