Creates an experiment template.
To create a template, specify the following information:
Targets : A target can be a specific resource in your AWS environment, or one or more resources that match criteria that you specify, for example, resources that have specific tags.
Actions : The actions to carry out on the target. You can specify multiple actions, the duration of each action, and when to start each action during an experiment.
Stop conditions : If a stop condition is triggered while an experiment is running, the experiment is automatically stopped. You can define a stop condition as a CloudWatch alarm.
For more information, see the AWS Fault Injection Simulator User Guide .
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
create-experiment-template
[--client-token <value>]
--description <value>
--stop-conditions <value>
[--targets <value>]
--actions <value>
--role-arn <value>
[--tags <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--client-token
(string)
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
--description
(string)
A description for the experiment template. Can contain up to 64 letters (A-Z and a-z).
--stop-conditions
(list)
The stop conditions.
(structure)
Specifies a stop condition for an experiment template.
source -> (string)
The source for the stop condition. Specify
aws:cloudwatch:alarm
if the stop condition is defined by a CloudWatch alarm. Specifynone
if there is no stop condition.value -> (string)
The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required if the source is a CloudWatch alarm.
Shorthand Syntax:
source=string,value=string ...
JSON Syntax:
[
{
"source": "string",
"value": "string"
}
...
]
--targets
(map)
The targets for the experiment.
key -> (string)
value -> (structure)
Specifies a target for an experiment. You must specify at least one Amazon Resource Name (ARN) or at least one resource tag. You cannot specify both ARNs and tags.
resourceType -> (string)
The AWS resource type. The resource type must be supported for the specified action.
resourceArns -> (list)
The Amazon Resource Names (ARNs) of the resources.
(string)
resourceTags -> (map)
The tags for the target resources.
key -> (string)
value -> (string)
filters -> (list)
The filters to apply to identify target resources using specific attributes.
(structure)
Describes a filter used for the target resource input in an experiment template.
path -> (string)
The attribute path for the filter.
values -> (list)
The attribute values for the filter.
(string)
selectionMode -> (string)
Scopes the identified resources to a specific count of the resources at random, or a percentage of the resources. All identified resources are included in the target.
ALL - Run the action on all identified targets. This is the default.
COUNT(n) - Run the action on the specified number of targets, chosen from the identified targets at random. For example, COUNT(1) selects one of the targets.
PERCENT(n) - Run the action on the specified percentage of targets, chosen from the identified targets at random. For example, PERCENT(25) selects 25% of the targets.
JSON Syntax:
{"string": {
"resourceType": "string",
"resourceArns": ["string", ...],
"resourceTags": {"string": "string"
...},
"filters": [
{
"path": "string",
"values": ["string", ...]
}
...
],
"selectionMode": "string"
}
...}
--actions
(map)
The actions for the experiment.
key -> (string)
value -> (structure)
Specifies an action for an experiment template.
actionId -> (string)
The ID of the action.
description -> (string)
A description for the action.
parameters -> (map)
The parameters for the action, if applicable.
key -> (string)
value -> (string)
targets -> (map)
The targets for the action.
key -> (string)
value -> (string)
startAfter -> (list)
The name of the action that must be completed before the current action starts. Omit this parameter to run the action at the start of the experiment.
(string)
Shorthand Syntax:
KeyName1=actionId=string,description=string,parameters={KeyName1=string,KeyName2=string},targets={KeyName1=string,KeyName2=string},startAfter=string,string,KeyName2=actionId=string,description=string,parameters={KeyName1=string,KeyName2=string},targets={KeyName1=string,KeyName2=string},startAfter=string,string
JSON Syntax:
{"string": {
"actionId": "string",
"description": "string",
"parameters": {"string": "string"
...},
"targets": {"string": "string"
...},
"startAfter": ["string", ...]
}
...}
--role-arn
(string)
The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.
--tags
(map)
The tags to apply to the experiment template.
key -> (string)
value -> (string)
Shorthand Syntax:
KeyName1=string,KeyName2=string
JSON Syntax:
{"string": "string"
...}
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To create an experiment template
The following create-experiment-template
example creates an experiment template in your AWS FIS account.
aws fis create-experiment-template \
--cli-input-json file://myfile.json
Contents of myfile.json
:
{
"description": "experimentTemplate",
"stopConditions": [
{
"source": "aws:cloudwatch:alarm",
"value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName"
}
],
"targets": {
"Instances-Target-1": {
"resourceType": "aws:ec2:instance",
"resourceArns": [
"arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012"
],
"selectionMode": "ALL"
}
},
"actions": {
"reboot": {
"actionId": "aws:ec2:reboot-instances",
"description": "reboot",
"parameters": {},
"targets": {
"Instances": "Instances-Target-1"
}
}
},
"roleArn": "arn:aws:iam::123456789012:role/myRole"
}
Output:
{
"experimentTemplate": {
"id": "ABCDE1fgHIJkLmNop",
"description": "experimentTemplate",
"targets": {
"Instances-Target-1": {
"resourceType": "aws:ec2:instance",
"resourceArns": [
"arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012"
],
"selectionMode": "ALL"
}
},
"actions": {
"reboot": {
"actionId": "aws:ec2:reboot-instances",
"description": "reboot",
"parameters": {},
"targets": {
"Instances": "Instances-Target-1"
}
}
},
"stopConditions": [
{
"source": "aws:cloudwatch:alarm",
"value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName"
}
],
"creationTime": 1616434850.659,
"lastUpdateTime": 1616434850.659,
"roleArn": "arn:aws:iam::123456789012:role/myRole",
"tags": {}
}
}
For more information, see Create an experiment template in the AWS Fault Injection Simulator User Guide.
experimentTemplate -> (structure)
Information about the experiment template.
id -> (string)
The ID of the experiment template.
description -> (string)
The description for the experiment template.
targets -> (map)
The targets for the experiment.
key -> (string)
value -> (structure)
Describes a target for an experiment template.
resourceType -> (string)
The resource type.
resourceArns -> (list)
The Amazon Resource Names (ARNs) of the targets.
(string)
resourceTags -> (map)
The tags for the target resources.
key -> (string)
value -> (string)
filters -> (list)
The filters to apply to identify target resources using specific attributes.
(structure)
Describes a filter used for the target resources in an experiment template.
path -> (string)
The attribute path for the filter.
values -> (list)
The attribute values for the filter.
(string)
selectionMode -> (string)
Scopes the identified resources to a specific count or percentage.
actions -> (map)
The actions for the experiment.
key -> (string)
value -> (structure)
Describes an action for an experiment template.
actionId -> (string)
The ID of the action.
description -> (string)
A description for the action.
parameters -> (map)
The parameters for the action.
key -> (string)
value -> (string)
targets -> (map)
The targets for the action.
key -> (string)
value -> (string)
startAfter -> (list)
The name of the action that must be completed before the current action starts.
(string)
stopConditions -> (list)
The stop conditions for the experiment.
(structure)
Describes a stop condition for an experiment template.
source -> (string)
The source for the stop condition.
value -> (string)
The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.
creationTime -> (timestamp)
The time the experiment template was created.
lastUpdateTime -> (timestamp)
The time the experiment template was last updated.
roleArn -> (string)
The Amazon Resource Name (ARN) of an IAM role.
tags -> (map)
The tags for the experiment template.
key -> (string)
value -> (string)