[ aws . fis ]

create-experiment-template

Description

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.

Synopsis

  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>]

Options

--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. Specify none 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.

Examples

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.

Output

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)